)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":11,"context_line":"of other minor tests."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I809711de8292ff7610b3fdb496c6bd043e7b6031"},{"line_number":14,"context_line":"Implements: blueprint quantum-unittests"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAM3%2F%2FJN0%3D","line":14,"updated":"2013-02-05 18:47:29.000000000","message":"nit: this line should be above change id","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"of other minor tests."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I809711de8292ff7610b3fdb496c6bd043e7b6031"},{"line_number":14,"context_line":"Implements: blueprint quantum-unittests"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAM3%2F%2FH%2F8%3D","line":14,"in_reply_to":"AAAAM3%2F%2FJN0%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"}],"quantum/tests/unit/openvswitch/test_ovs_quantum_agent.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                \u0027admin_state_up\u0027: True}"},{"line_number":154,"context_line":"        with mock.patch.object(self.agent.int_br, \u0027get_vif_port_by_id\u0027,"},{"line_number":155,"context_line":"                               return_value\u003d\u00272\u0027):"},{"line_number":156,"context_line":"            with mock.patch.object(self.agent, \u0027port_bound\u0027) as func:"},{"line_number":157,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":158,"context_line":"                self.assertTrue(func.called)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNs%3D","line":156,"updated":"2013-02-05 18:47:29.000000000","message":"func is too generic name, could you use more informative name here for code readability?","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                \u0027admin_state_up\u0027: True}"},{"line_number":154,"context_line":"        with mock.patch.object(self.agent.int_br, \u0027get_vif_port_by_id\u0027,"},{"line_number":155,"context_line":"                               return_value\u003d\u00272\u0027):"},{"line_number":156,"context_line":"            with mock.patch.object(self.agent, \u0027port_bound\u0027) as func:"},{"line_number":157,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":158,"context_line":"                self.assertTrue(func.called)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAA%3D","line":156,"in_reply_to":"AAAAM3%2F%2FJNs%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":158,"context_line":"                self.assertTrue(func.called)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"            with mock.patch.object(self.agent, \u0027port_dead\u0027) as func2:"},{"line_number":161,"context_line":"                port[\u0027admin_state_up\u0027] \u003d False"},{"line_number":162,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":163,"context_line":"                self.assertTrue(func2.called)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNk%3D","line":160,"updated":"2013-02-05 18:47:29.000000000","message":"ditto","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":158,"context_line":"                self.assertTrue(func.called)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"            with mock.patch.object(self.agent, \u0027port_dead\u0027) as func2:"},{"line_number":161,"context_line":"                port[\u0027admin_state_up\u0027] \u003d False"},{"line_number":162,"context_line":"                self.agent.port_update(mock.Mock(), port\u003dport)"},{"line_number":163,"context_line":"                self.assertTrue(func2.called)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAE%3D","line":160,"in_reply_to":"AAAAM3%2F%2FJNk%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                 \u0027removed\u0027: set([\u0027eth0\u0027]),"},{"line_number":168,"context_line":"                 \u0027added\u0027: set([\u0027eth1\u0027])}"},{"line_number":169,"context_line":"        with mock.patch.object(self.agent, \u0027treat_devices_added\u0027,"},{"line_number":170,"context_line":"                               return_value\u003dFalse) as func1:"},{"line_number":171,"context_line":"            with mock.patch.object(self.agent, \u0027treat_devices_removed\u0027,"},{"line_number":172,"context_line":"                                   return_value\u003dFalse) as func2:"},{"line_number":173,"context_line":"                self.assertFalse(self.agent.process_network_ports(reply))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNg%3D","line":170,"updated":"2013-02-05 18:47:29.000000000","message":"ditto","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                 \u0027removed\u0027: set([\u0027eth0\u0027]),"},{"line_number":168,"context_line":"                 \u0027added\u0027: set([\u0027eth1\u0027])}"},{"line_number":169,"context_line":"        with mock.patch.object(self.agent, \u0027treat_devices_added\u0027,"},{"line_number":170,"context_line":"                               return_value\u003dFalse) as func1:"},{"line_number":171,"context_line":"            with mock.patch.object(self.agent, \u0027treat_devices_removed\u0027,"},{"line_number":172,"context_line":"                                   return_value\u003dFalse) as func2:"},{"line_number":173,"context_line":"                self.assertFalse(self.agent.process_network_ports(reply))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAI%3D","line":170,"in_reply_to":"AAAAM3%2F%2FJNg%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"}],"quantum/tests/unit/openvswitch/test_ovs_tunnel.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c49334ddcaabffe2c1ca71ff44d98cef92cea6d9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import mox"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from quantum.agent.linux import ovs_lib"},{"line_number":24,"context_line":"from quantum.agent.linux import ip_lib"},{"line_number":25,"context_line":"from quantum.agent.linux import utils"},{"line_number":26,"context_line":"from quantum.plugins.openvswitch.agent import ovs_quantum_agent"},{"line_number":27,"context_line":"from quantum.openstack.common import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FKC8%3D","line":24,"updated":"2013-02-05 10:39:04.000000000","message":"this should be above line 23. Please see the HACKING.rst","commit_id":"6559208c4dee7025ab547904d2c7fcb3688fe29b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c49334ddcaabffe2c1ca71ff44d98cef92cea6d9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from quantum.agent.linux import ip_lib"},{"line_number":25,"context_line":"from quantum.agent.linux import utils"},{"line_number":26,"context_line":"from quantum.plugins.openvswitch.agent import ovs_quantum_agent"},{"line_number":27,"context_line":"from quantum.openstack.common import cfg"},{"line_number":28,"context_line":"from quantum.plugins.openvswitch.common import constants"},{"line_number":29,"context_line":"import quantum.agent.rpc"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FKC4%3D","line":27,"updated":"2013-02-05 10:39:04.000000000","message":"this should be above line 26","commit_id":"6559208c4dee7025ab547904d2c7fcb3688fe29b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c49334ddcaabffe2c1ca71ff44d98cef92cea6d9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from quantum.plugins.openvswitch.agent import ovs_quantum_agent"},{"line_number":27,"context_line":"from quantum.openstack.common import cfg"},{"line_number":28,"context_line":"from quantum.plugins.openvswitch.common import constants"},{"line_number":29,"context_line":"import quantum.agent.rpc"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Useful global dummy variables."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FKC0%3D","line":29,"updated":"2013-02-05 10:39:04.000000000","message":"this too","commit_id":"6559208c4dee7025ab547904d2c7fcb3688fe29b"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        self.mox.StubOutWithMock("},{"line_number":357,"context_line":"            quantum.openstack.common.log.ContextAdapter, \u0027exception\u0027)"},{"line_number":358,"context_line":"        quantum.openstack.common.log.ContextAdapter.exception("},{"line_number":359,"context_line":"            _(\"Error in agent event loop\")).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        self.mox.StubOutWithMock("},{"line_number":362,"context_line":"            ovs_quantum_agent.OVSQuantumAgent, \u0027update_ports\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNY%3D","line":359,"updated":"2013-02-05 18:47:29.000000000","message":"nit:I prefer fake here than asdf","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        self.mox.StubOutWithMock("},{"line_number":357,"context_line":"            quantum.openstack.common.log.ContextAdapter, \u0027exception\u0027)"},{"line_number":358,"context_line":"        quantum.openstack.common.log.ContextAdapter.exception("},{"line_number":359,"context_line":"            _(\"Error in agent event loop\")).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        self.mox.StubOutWithMock("},{"line_number":362,"context_line":"            ovs_quantum_agent.OVSQuantumAgent, \u0027update_ports\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAM%3D","line":359,"in_reply_to":"AAAAM3%2F%2FJNY%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        ovs_quantum_agent.OVSQuantumAgent.process_network_ports("},{"line_number":373,"context_line":"            {\u0027current\u0027: set([\u0027tap0\u0027]),"},{"line_number":374,"context_line":"             \u0027removed\u0027: set([]),"},{"line_number":375,"context_line":"             \u0027added\u0027: set([])}).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":376,"context_line":"        self.mox.ReplayAll()"},{"line_number":377,"context_line":"        a \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":378,"context_line":"                                              self.TUN_BRIDGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNU%3D","line":375,"updated":"2013-02-05 18:47:29.000000000","message":"ditto","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        ovs_quantum_agent.OVSQuantumAgent.process_network_ports("},{"line_number":373,"context_line":"            {\u0027current\u0027: set([\u0027tap0\u0027]),"},{"line_number":374,"context_line":"             \u0027removed\u0027: set([]),"},{"line_number":375,"context_line":"             \u0027added\u0027: set([])}).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":376,"context_line":"        self.mox.ReplayAll()"},{"line_number":377,"context_line":"        a \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":378,"context_line":"                                              self.TUN_BRIDGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAQ%3D","line":375,"in_reply_to":"AAAAM3%2F%2FJNU%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":374,"context_line":"             \u0027removed\u0027: set([]),"},{"line_number":375,"context_line":"             \u0027added\u0027: set([])}).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":376,"context_line":"        self.mox.ReplayAll()"},{"line_number":377,"context_line":"        a \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":378,"context_line":"                                              self.TUN_BRIDGE,"},{"line_number":379,"context_line":"                                              \u002710.0.0.1\u0027, self.NET_MAPPING,"},{"line_number":380,"context_line":"                                              \u0027sudo\u0027, 2, True)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FJNc%3D","line":377,"updated":"2013-02-05 18:47:29.000000000","message":"nit: please use more informative variable name here","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":374,"context_line":"             \u0027removed\u0027: set([]),"},{"line_number":375,"context_line":"             \u0027added\u0027: set([])}).AndRaise(Exception(\u0027asdf\u0027))"},{"line_number":376,"context_line":"        self.mox.ReplayAll()"},{"line_number":377,"context_line":"        a \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":378,"context_line":"                                              self.TUN_BRIDGE,"},{"line_number":379,"context_line":"                                              \u002710.0.0.1\u0027, self.NET_MAPPING,"},{"line_number":380,"context_line":"                                              \u0027sudo\u0027, 2, True)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FIAU%3D","line":377,"in_reply_to":"AAAAM3%2F%2FJNc%3D","updated":"2013-02-08 18:18:21.000000000","message":"Done","commit_id":"18729f0eab96e3a62923dbef6f0d8f5d6088e673"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":"from quantum.agent.linux import ip_lib"},{"line_number":24,"context_line":"from quantum.agent.linux import ovs_lib"},{"line_number":25,"context_line":"from quantum.agent.linux import utils"},{"line_number":26,"context_line":"import quantum.agent.rpc"},{"line_number":27,"context_line":"from quantum.openstack.common import cfg"},{"line_number":28,"context_line":"from quantum.plugins.openvswitch.agent import ovs_quantum_agent"},{"line_number":29,"context_line":"from quantum.plugins.openvswitch.common import constants"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FH04%3D","line":26,"updated":"2013-02-06 15:25:16.000000000","message":"please use from quantum.agent import rpc","commit_id":"ee4528f350094fe73dfc208aeede74767e793bd1"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"cb81e3aa679c932808c75f5e72c4fc8203087bc6","unresolved":false,"context_lines":[{"line_number":376,"context_line":"             \u0027added\u0027: set([])}).AndRaise("},{"line_number":377,"context_line":"                 Exception(\u0027Fake exception to get out of the loop\u0027))"},{"line_number":378,"context_line":"        self.mox.ReplayAll()"},{"line_number":379,"context_line":"        QAgent \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":380,"context_line":"                                                   self.TUN_BRIDGE,"},{"line_number":381,"context_line":"                                                   \u002710.0.0.1\u0027,"},{"line_number":382,"context_line":"                                                   self.NET_MAPPING,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FHXM%3D","line":379,"updated":"2013-02-06 18:54:34.000000000","message":"nit:this should be q_agent. QAgent looks a class","commit_id":"57237a04d8ee7d6cbee650787a6e5600a3219e54"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"dfb7c7a67d11e03ebd758e4bc8f1ef95530e62f5","unresolved":false,"context_lines":[{"line_number":376,"context_line":"             \u0027added\u0027: set([])}).AndRaise("},{"line_number":377,"context_line":"                 Exception(\u0027Fake exception to get out of the loop\u0027))"},{"line_number":378,"context_line":"        self.mox.ReplayAll()"},{"line_number":379,"context_line":"        QAgent \u003d ovs_quantum_agent.OVSQuantumAgent(self.INT_BRIDGE,"},{"line_number":380,"context_line":"                                                   self.TUN_BRIDGE,"},{"line_number":381,"context_line":"                                                   \u002710.0.0.1\u0027,"},{"line_number":382,"context_line":"                                                   self.NET_MAPPING,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FFs8%3D","line":379,"in_reply_to":"AAAAM3%2F%2FHXM%3D","updated":"2013-02-08 18:17:39.000000000","message":"Done","commit_id":"57237a04d8ee7d6cbee650787a6e5600a3219e54"}]}
