)]}'
{"ironic_discoverd/firewall.py":[{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"c2345972862cc26616cf9e0a7c956bbb12fa62a1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_bd8aab61","line":40,"updated":"2014-12-12 14:16:30.000000000","message":"hmm, I think the original message here makes more sense","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"4aeb7a117221ebf407d1e34a796e333d1d921cf2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_88704f73","line":40,"in_reply_to":"3a961159_5d7f0715","updated":"2014-12-12 14:38:54.000000000","message":"ignoring iptables failure?","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a333cb8fd58e6a586bc06bab0c6192cc430bbe25","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_c829779c","line":40,"in_reply_to":"3a961159_68b32398","updated":"2014-12-12 15:00:27.000000000","message":"Aaaah :)\n\nI spell it like that because of substitution:\n\n ignoring failed iptables [\u0027-N\u0027, \u0027discovery\u0027]:\n ... blah-blah...\n\nso it looks like a command","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"07e4857e262c7d0861f69de01d336c8a5f6688f4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_e898f31d","line":40,"in_reply_to":"3a961159_88704f73","updated":"2014-12-12 14:54:59.000000000","message":"yeah. these calls are optional, they may fail.","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d984a7a0d4c1bf59dd6792cbfae2abc57f493842","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_5d7f0715","line":40,"in_reply_to":"3a961159_bd8aab61","updated":"2014-12-12 14:22:25.000000000","message":"the problem is it did confused a guy with debug enabled, he tried to report these as real errors to me. so my idea is to clearly state that this error is supposed to be ignored.\n\nany ideas how to express it better?","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"d45a76ca12c0a9ceabe71ff2c8809281d32dc7f8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subprocess.check_output(cmd, **kwargs)"},{"line_number":38,"context_line":"    except subprocess.CalledProcessError as exc:"},{"line_number":39,"context_line":"        if ignore:"},{"line_number":40,"context_line":"            LOG.debug(\u0027ignoring failed iptables %s:\\n%s\u0027, args, exc.output)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            LOG.error(\u0027iptables %s failed:\\n%s\u0027, args, exc.output)"},{"line_number":43,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_68b32398","line":40,"in_reply_to":"3a961159_e898f31d","updated":"2014-12-12 14:56:49.000000000","message":"haha, that was a suggestion, not a question :-) \n\nbut if you still disagree, go ahead and merge it, it\u0027s not that crucial.","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"c2345972862cc26616cf9e0a7c956bbb12fa62a1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    with LOCK:"},{"line_number":86,"context_line":"        macs_active \u003d set(p.address for p in ironic.port.list(limit\u003d0))"},{"line_number":87,"context_line":"        to_blacklist \u003d macs_active - node_cache.macs_on_discovery()"},{"line_number":88,"context_line":"        LOG.debug(\u0027Blacklisting active MAC\\\u0027s %s\u0027, to_blacklist)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Clean up a bit to account for possible troubles on previous run"},{"line_number":91,"context_line":"        _clean_up(NEW_CHAIN)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_5dc70796","line":88,"updated":"2014-12-12 14:16:30.000000000","message":"s/MAC\u0027s/MACs/","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d984a7a0d4c1bf59dd6792cbfae2abc57f493842","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    with LOCK:"},{"line_number":86,"context_line":"        macs_active \u003d set(p.address for p in ironic.port.list(limit\u003d0))"},{"line_number":87,"context_line":"        to_blacklist \u003d macs_active - node_cache.macs_on_discovery()"},{"line_number":88,"context_line":"        LOG.debug(\u0027Blacklisting active MAC\\\u0027s %s\u0027, to_blacklist)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Clean up a bit to account for possible troubles on previous run"},{"line_number":91,"context_line":"        _clean_up(NEW_CHAIN)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_dde057cf","line":88,"in_reply_to":"3a961159_5dc70796","updated":"2014-12-12 14:22:25.000000000","message":"Judging by http://www.grammar-monster.com/lessons/abbreviations_forming_plurals.htm both are acceptable and this form is used everywhere in discoverd, so I guess I\u0027ll leave it for now.","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"4aeb7a117221ebf407d1e34a796e333d1d921cf2","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    with LOCK:"},{"line_number":86,"context_line":"        macs_active \u003d set(p.address for p in ironic.port.list(limit\u003d0))"},{"line_number":87,"context_line":"        to_blacklist \u003d macs_active - node_cache.macs_on_discovery()"},{"line_number":88,"context_line":"        LOG.debug(\u0027Blacklisting active MAC\\\u0027s %s\u0027, to_blacklist)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Clean up a bit to account for possible troubles on previous run"},{"line_number":91,"context_line":"        _clean_up(NEW_CHAIN)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_a8bd0b04","line":88,"in_reply_to":"3a961159_dde057cf","updated":"2014-12-12 14:38:54.000000000","message":"wow, thanks! I didn\u0027t know that!","commit_id":"bdaf0f4d15e13bb16688a26ecafb639a78fd4ef8"}]}
