)]}'
{"neutron/agent/linux/ip_lib.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"444a3c3904d842d136fa9a864d26dc1dd7f91b4e","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self._as_root(\u0027\u0027, \u0027link\u0027, cmd)"},{"line_number":179,"context_line":"        return (IPDevice(name, self.root_helper, self.namespace))"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def add_rule_from(self, cidr, table, priority\u003dNone):"},{"line_number":182,"context_line":"        args \u003d [\u0027add\u0027, \u0027from\u0027, cidr, \u0027lookup\u0027, table]"},{"line_number":183,"context_line":"        if priority:"},{"line_number":184,"context_line":"            args +\u003d [\u0027priority\u0027, priority]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_856681eb","line":181,"updated":"2014-06-05 07:15:05.000000000","message":"this should be part of the rule command and not of IPWrapper","commit_id":"16212ddac65afb33ed35669b0b81749a1fef68cf"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b765e32017727e4b070bc8711a16f006dce2c276","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"class IpRule(IPWrapper):"},{"line_number":189,"context_line":"    def __init__(self, root_helper\u003dNone, namespace\u003dNone):"},{"line_number":190,"context_line":"        super(IpRule, self).__init__(root_helper\u003droot_helper,"},{"line_number":191,"context_line":"                                     namespace\u003dnamespace)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def add_rule_from(self, ip, table, rule_pr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_64b24e4a","line":190,"updated":"2014-06-13 07:08:29.000000000","message":"remove this __init__ method. It\u0027s not doing anything.","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"9b26486f3e92d0dc42797f6f0edf92f1995b8f47","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"class IpRule(IPWrapper):"},{"line_number":189,"context_line":"    def __init__(self, root_helper\u003dNone, namespace\u003dNone):"},{"line_number":190,"context_line":"        super(IpRule, self).__init__(root_helper\u003droot_helper,"},{"line_number":191,"context_line":"                                     namespace\u003dnamespace)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def add_rule_from(self, ip, table, rule_pr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_9665be46","line":190,"in_reply_to":"1ae5cdf2_64b24e4a","updated":"2014-06-13 16:54:33.000000000","message":"Done","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"f608b0ae2c3bc2a963e435c5c6ca2c87e0197b14","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def add_route(self, cidr, ip, table\u003dNone):"},{"line_number":479,"context_line":"        args \u003d [\u0027replace\u0027, cidr, \u0027via\u0027, ip]"},{"line_number":480,"context_line":"        args +\u003d [\u0027dev\u0027, self.name]"},{"line_number":481,"context_line":"        if table:"},{"line_number":482,"context_line":"            args +\u003d [\u0027table\u0027, table]"},{"line_number":483,"context_line":"        self._as_root(*args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_897bf3f3","line":480,"updated":"2014-06-13 06:40:29.000000000","message":"why using +\u003d ?  please make this similar to delete_route.","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"9b26486f3e92d0dc42797f6f0edf92f1995b8f47","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def add_route(self, cidr, ip, table\u003dNone):"},{"line_number":479,"context_line":"        args \u003d [\u0027replace\u0027, cidr, \u0027via\u0027, ip]"},{"line_number":480,"context_line":"        args +\u003d [\u0027dev\u0027, self.name]"},{"line_number":481,"context_line":"        if table:"},{"line_number":482,"context_line":"            args +\u003d [\u0027table\u0027, table]"},{"line_number":483,"context_line":"        self._as_root(*args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d65bc683","line":480,"in_reply_to":"1ae5cdf2_448e327a","updated":"2014-06-13 16:54:33.000000000","message":"Done","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b765e32017727e4b070bc8711a16f006dce2c276","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def add_route(self, cidr, ip, table\u003dNone):"},{"line_number":479,"context_line":"        args \u003d [\u0027replace\u0027, cidr, \u0027via\u0027, ip]"},{"line_number":480,"context_line":"        args +\u003d [\u0027dev\u0027, self.name]"},{"line_number":481,"context_line":"        if table:"},{"line_number":482,"context_line":"            args +\u003d [\u0027table\u0027, table]"},{"line_number":483,"context_line":"        self._as_root(*args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_448e327a","line":480,"in_reply_to":"1ae5cdf2_897bf3f3","updated":"2014-06-13 07:08:29.000000000","message":"+1","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"9b26486f3e92d0dc42797f6f0edf92f1995b8f47","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def add_route(self, cidr, ip, table\u003dNone):"},{"line_number":479,"context_line":"        args \u003d [\u0027replace\u0027, cidr, \u0027via\u0027, ip]"},{"line_number":480,"context_line":"        args +\u003d [\u0027dev\u0027, self.name]"},{"line_number":481,"context_line":"        if table:"},{"line_number":482,"context_line":"            args +\u003d [\u0027table\u0027, table]"},{"line_number":483,"context_line":"        self._as_root(*args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_b658fa8a","line":480,"in_reply_to":"1ae5cdf2_897bf3f3","updated":"2014-06-13 16:54:33.000000000","message":"Done","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"}],"neutron/tests/unit/test_linux_ip_lib.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b765e32017727e4b070bc8711a16f006dce2c276","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        super(TestIpRule, self).setUp()"},{"line_number":412,"context_line":"        self.execute_p \u003d mock.patch.object(ip_lib.IpRule, \u0027_execute\u0027)"},{"line_number":413,"context_line":"        self.execute \u003d self.execute_p.start()"},{"line_number":414,"context_line":"        self.addCleanup(self.execute_p.stop)"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def test_add_rule_from(self):"},{"line_number":417,"context_line":"        ip_lib.IpRule(\u0027sudo\u0027).add_rule_from(\u0027192.168.45.100\u0027, 2, 100)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_a4ee1620","line":414,"updated":"2014-06-13 07:08:29.000000000","message":"Remove this. The base cleanup method stops all patches.","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"9b26486f3e92d0dc42797f6f0edf92f1995b8f47","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        super(TestIpRule, self).setUp()"},{"line_number":412,"context_line":"        self.execute_p \u003d mock.patch.object(ip_lib.IpRule, \u0027_execute\u0027)"},{"line_number":413,"context_line":"        self.execute \u003d self.execute_p.start()"},{"line_number":414,"context_line":"        self.addCleanup(self.execute_p.stop)"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def test_add_rule_from(self):"},{"line_number":417,"context_line":"        ip_lib.IpRule(\u0027sudo\u0027).add_rule_from(\u0027192.168.45.100\u0027, 2, 100)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_1651ae61","line":414,"in_reply_to":"1ae5cdf2_a4ee1620","updated":"2014-06-13 16:54:33.000000000","message":"Done","commit_id":"60e12ad1c414799dc59841b3b436a15e594b5b86"}]}
