)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"a1a1993f3eeddda381a6da1cdd86b6f991705fba","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVS agent add functional tests of OVS status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add two functional tests to vefiry that the agent"},{"line_number":10,"context_line":"behaves correctly when OVS restart and when OVS is"},{"line_number":11,"context_line":"not running."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_af2ae17c","line":9,"updated":"2015-07-24 13:06:17.000000000","message":"vefiry \u003d\u003e verify","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c66ffe1199c37aefea439464c1fcfd61cdec95e7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVS agent add functional tests of OVS status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add two functional tests to vefiry that the agent"},{"line_number":10,"context_line":"behaves correctly when OVS restart and when OVS is"},{"line_number":11,"context_line":"not running."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a4dcd0f_a1526c33","line":9,"in_reply_to":"3a50d1a3_af2ae17c","updated":"2015-08-12 10:50:13.000000000","message":"Done","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"2bfec080feb907c2c7c925c834e8846d3de1410b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"behaves correctly when OVS restart and when OVS is"},{"line_number":11,"context_line":"not running."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ifeb0f2f6a06baead93df2c016ea26bfea990734d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a4dcd0f_1098ad69","line":13,"updated":"2015-08-15 01:10:20.000000000","message":"Do you have either a bp or bug to associate this commit?","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"}],"neutron/tests/functional/agent/test_l2_ovs_agent.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"a1a1993f3eeddda381a6da1cdd86b6f991705fba","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        def _ovs_dead_then_ok():"},{"line_number":281,"context_line":"            if agent.check_ovs_status.call_count \u003c 5:"},{"line_number":282,"context_line":"                # verify the agent doesn\u0027t enter the processing loop"},{"line_number":283,"context_line":"                self.assertFalse(agent._agent_has_updates.called)"},{"line_number":284,"context_line":"                return constants.OVS_DEAD"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_6f805947","line":281,"updated":"2015-07-24 13:06:17.000000000","message":"Could you clarify where 5 could from?","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c66ffe1199c37aefea439464c1fcfd61cdec95e7","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        def _ovs_dead_then_ok():"},{"line_number":281,"context_line":"            if agent.check_ovs_status.call_count \u003c 5:"},{"line_number":282,"context_line":"                # verify the agent doesn\u0027t enter the processing loop"},{"line_number":283,"context_line":"                self.assertFalse(agent._agent_has_updates.called)"},{"line_number":284,"context_line":"                return constants.OVS_DEAD"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_47329811","line":281,"in_reply_to":"3a50d1a3_6f805947","updated":"2015-08-12 10:50:13.000000000","message":"added a named variable, hope that helps","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"90701bb203c78d8a28789e51d121ae0645d7864d","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        # OVS restarted"},{"line_number":309,"context_line":"        agent_utils.wait_until_true("},{"line_number":310,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":311,"context_line":"                agent.plugin_rpc.update_device_up, up_ports_ids))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def test_port_vlan_tags(self):"},{"line_number":314,"context_line":"        agent \u003d self.create_agent()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_fcc10e30","line":311,"updated":"2015-08-11 21:34:10.000000000","message":"call_args_list of mocked agent.plugin_rpc.update_device_up is not reset between L.305 and L.309, so I am afraid L.310 returns True immediately.","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c66ffe1199c37aefea439464c1fcfd61cdec95e7","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        # OVS restarted"},{"line_number":309,"context_line":"        agent_utils.wait_until_true("},{"line_number":310,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":311,"context_line":"                agent.plugin_rpc.update_device_up, up_ports_ids))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def test_port_vlan_tags(self):"},{"line_number":314,"context_line":"        agent \u003d self.create_agent()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_673794ff","line":311,"in_reply_to":"1a4dcd0f_fcc10e30","updated":"2015-08-12 10:50:13.000000000","message":"very good point!","commit_id":"d2879feedffe8053458cb43f79001d5b4dbe17bd"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"49958a7aef3dd561ff625935f98854579a912ba5","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":324,"context_line":"        devices_all_up \u003d False"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        def _ovs_restarted_once():"},{"line_number":327,"context_line":"            if devices_all_up:"},{"line_number":328,"context_line":"                return constants.OVS_RESTARTED"},{"line_number":329,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_f5973338","line":326,"updated":"2015-08-15 00:19:28.000000000","message":"it seems a bit strange to define devices_all_up, _ovs_restarted_once when you can do:\n\n  agent._agent_has_updates.return_value \u003d True\n  agent.check_ovs_status.return_value \u003d constants.OVS_NORMAL\n  ...\n  agent._agent_has_updates.reset_mock()\n  agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED\n\nAm i missing something?","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c666c2a70a5765bd8c92e3717d840001d384eeac","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":324,"context_line":"        devices_all_up \u003d False"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        def _ovs_restarted_once():"},{"line_number":327,"context_line":"            if devices_all_up:"},{"line_number":328,"context_line":"                return constants.OVS_RESTARTED"},{"line_number":329,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_756f2afc","line":326,"in_reply_to":"1a4dcd0f_f5973338","updated":"2015-08-20 16:09:21.000000000","message":"The idea is to return constants.OVS_RESTARTED after the agent has reported to the server all devices as UP to make sure that if OVS restarts, the agent sync all the devices again. The code you suggests doesn\u0027t accomplish that...shall I add a comment or something to make it more clear?","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c8ec51ae4aa56485e73618245be3f603f2b5e0b1","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":324,"context_line":"        devices_all_up \u003d False"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        def _ovs_restarted_once():"},{"line_number":327,"context_line":"            if devices_all_up:"},{"line_number":328,"context_line":"                return constants.OVS_RESTARTED"},{"line_number":329,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_db1f47b5","line":326,"in_reply_to":"fa1b9901_756f2afc","updated":"2015-08-20 16:34:48.000000000","message":"After reading again I see what you mean. I tried something similar and it was not working but I was not resetting the mock for check_ovs_status, will check again.","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"49958a7aef3dd561ff625935f98854579a912ba5","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # OVS restarted, up_ports_ids needs to be filled again since it was"},{"line_number":344,"context_line":"        # emptied by self._expected_plugin_rpc_call"},{"line_number":345,"context_line":"        up_ports_ids \u003d [p[\u0027id\u0027] for p in ports]"},{"line_number":346,"context_line":"        agent_utils.wait_until_true("},{"line_number":347,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":348,"context_line":"                agent.plugin_rpc.update_device_list, up_ports_ids))"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_15009f65","line":346,"updated":"2015-08-15 00:19:28.000000000","message":"The same test is done for devices_all_up \u003d False/True","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"c666c2a70a5765bd8c92e3717d840001d384eeac","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # OVS restarted, up_ports_ids needs to be filled again since it was"},{"line_number":344,"context_line":"        # emptied by self._expected_plugin_rpc_call"},{"line_number":345,"context_line":"        up_ports_ids \u003d [p[\u0027id\u0027] for p in ports]"},{"line_number":346,"context_line":"        agent_utils.wait_until_true("},{"line_number":347,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":348,"context_line":"                agent.plugin_rpc.update_device_list, up_ports_ids))"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_f529fa9b","line":346,"in_reply_to":"1a4dcd0f_15009f65","updated":"2015-08-20 16:09:21.000000000","message":"not sure what you mean here...devices_all_up is set at line 342 after the agent has sent an update_device_list for all the devices.","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"22f2dfc1fc2f1a37e2ece8b4e6b848aecdad659f","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # OVS restarted, up_ports_ids needs to be filled again since it was"},{"line_number":344,"context_line":"        # emptied by self._expected_plugin_rpc_call"},{"line_number":345,"context_line":"        up_ports_ids \u003d [p[\u0027id\u0027] for p in ports]"},{"line_number":346,"context_line":"        agent_utils.wait_until_true("},{"line_number":347,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":348,"context_line":"                agent.plugin_rpc.update_device_list, up_ports_ids))"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_eb9d67bc","line":346,"in_reply_to":"fa1b9901_a9ac7b8c","updated":"2015-08-21 12:45:57.000000000","message":"the goal of the test is to ensure that the same code is executed again when ovs restarts, that is when the agent detects that ovs restarted it will reprocess all the ports again. Hope next PS will make it more clear","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b1ed8650f049e41f08ae17e82b414a1b45e736f8","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # OVS restarted, up_ports_ids needs to be filled again since it was"},{"line_number":344,"context_line":"        # emptied by self._expected_plugin_rpc_call"},{"line_number":345,"context_line":"        up_ports_ids \u003d [p[\u0027id\u0027] for p in ports]"},{"line_number":346,"context_line":"        agent_utils.wait_until_true("},{"line_number":347,"context_line":"            lambda: self._expected_plugin_rpc_call("},{"line_number":348,"context_line":"                agent.plugin_rpc.update_device_list, up_ports_ids))"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_a9ac7b8c","line":346,"in_reply_to":"fa1b9901_f529fa9b","updated":"2015-08-20 22:45:58.000000000","message":"we wait for the same rpc call (L338 and L346) for devices_all_up \u003d False/True so what ensures we don\u0027t re-execute the same code when devices_all_up \u003d False/True","commit_id":"989ba6656023a96f1992f5d4d4c9d693df74261e"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"6a8504aeab565e7f1c474304e03993e850225bb1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.setup_agent_and_ports("},{"line_number":66,"context_line":"            port_dicts\u003dself.create_test_ports())"},{"line_number":67,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":68,"context_line":"        self.agent.check_ovs_status.reset_mock()"},{"line_number":69,"context_line":"        self.agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED"},{"line_number":70,"context_line":"        # OVS restarted, the agent should reprocess all the ports"},{"line_number":71,"context_line":"        self.agent.plugin_rpc.update_device_list.reset_mock()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_23f14395","line":68,"updated":"2015-08-21 13:37:30.000000000","message":"according to self.wait_until_ports_state implementation, self.agent.check_ovs_status.reset_mock() seems useless?","commit_id":"57e57e85d33e3b3c1fc7a4d54807f346f4b6a3af"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"2e88d095f58bb38cff7d4944505b3af9f66ef891","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.setup_agent_and_ports("},{"line_number":66,"context_line":"            port_dicts\u003dself.create_test_ports())"},{"line_number":67,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":68,"context_line":"        self.agent.check_ovs_status.reset_mock()"},{"line_number":69,"context_line":"        self.agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED"},{"line_number":70,"context_line":"        # OVS restarted, the agent should reprocess all the ports"},{"line_number":71,"context_line":"        self.agent.plugin_rpc.update_device_list.reset_mock()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_78e0f6cc","line":68,"in_reply_to":"fa1b9901_23f14395","updated":"2015-08-24 15:59:02.000000000","message":"good catch","commit_id":"57e57e85d33e3b3c1fc7a4d54807f346f4b6a3af"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"503b018f371d4e8b8216ecd4ba970ca19b37df50","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            trigger_resync\u003dTrue)"},{"line_number":71,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_ovs_dead(self):"},{"line_number":74,"context_line":"        agent \u003d self.create_agent()"},{"line_number":75,"context_line":"        agent.check_ovs_status \u003d mock.Mock()"},{"line_number":76,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_2c00abaa","line":73,"updated":"2015-08-26 03:37:18.000000000","message":"this test only confirms the flow in rpc_loop.\nisn\u0027t a unit test more appropriate?","commit_id":"a68b01497f5594d21ac8b1e280a2549a9d5e9204"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"93c2777b55e79809c8c1ea02aaaaff68e6172c07","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            trigger_resync\u003dTrue)"},{"line_number":71,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_ovs_dead(self):"},{"line_number":74,"context_line":"        agent \u003d self.create_agent()"},{"line_number":75,"context_line":"        agent.check_ovs_status \u003d mock.Mock()"},{"line_number":76,"context_line":"        agent._agent_has_updates \u003d mock.Mock(return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d5d76b21","line":73,"in_reply_to":"fa1b9901_2c00abaa","updated":"2015-08-28 10:52:01.000000000","message":"thinking more about it, having a functional test doesn\u0027t add much","commit_id":"a68b01497f5594d21ac8b1e280a2549a9d5e9204"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"503b018f371d4e8b8216ecd4ba970ca19b37df50","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                return constants.OVS_NORMAL"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        agent.check_ovs_status.side_effect \u003d _ovs_dead_then_ok"},{"line_number":89,"context_line":"        self.start_agent(agent)"},{"line_number":90,"context_line":"        agent_utils.wait_until_true(lambda:"},{"line_number":91,"context_line":"            agent._agent_has_updates.called)"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_8cc8d756","line":89,"updated":"2015-08-26 03:37:18.000000000","message":"start_agent seems to overwrite agent.check_ovs_status.","commit_id":"a68b01497f5594d21ac8b1e280a2549a9d5e9204"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"7e9423d2b32fa16d1dbc921d9275e42c2b392d00","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":75,"context_line":"        self.agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED"},{"line_number":76,"context_line":"        # OVS restarted, the agent should reprocess all the ports"},{"line_number":77,"context_line":"        self.agent.plugin_rpc.update_device_list.reset_mock()"},{"line_number":78,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_port_vlan_tags(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_43dd206f","line":77,"updated":"2015-09-02 09:17:51.000000000","message":"although i don\u0027t think there\u0027s an actual race,\nhow about swapping L75 and L77 to make the intent clear?","commit_id":"c5d182da588d8dcf107d22735eb37250362043c0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"ad57523ea64023fb3c006b3ba50ea119491d2a6e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":75,"context_line":"        self.agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED"},{"line_number":76,"context_line":"        # OVS restarted, the agent should reprocess all the ports"},{"line_number":77,"context_line":"        self.agent.plugin_rpc.update_device_list.reset_mock()"},{"line_number":78,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_port_vlan_tags(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_9ff1096d","line":77,"in_reply_to":"da20952f_43dd206f","updated":"2015-09-03 14:53:03.000000000","message":"+1","commit_id":"c5d182da588d8dcf107d22735eb37250362043c0"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"0a122c407e6d35031d704fdf494d0a87eb3639d1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":75,"context_line":"        self.agent.check_ovs_status.return_value \u003d constants.OVS_RESTARTED"},{"line_number":76,"context_line":"        # OVS restarted, the agent should reprocess all the ports"},{"line_number":77,"context_line":"        self.agent.plugin_rpc.update_device_list.reset_mock()"},{"line_number":78,"context_line":"        self.wait_until_ports_state(self.ports, up\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_port_vlan_tags(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_5e836156","line":77,"in_reply_to":"da20952f_9ff1096d","updated":"2015-09-03 20:55:21.000000000","message":"we better get this in the gate now to make it for L3","commit_id":"c5d182da588d8dcf107d22735eb37250362043c0"}]}
