)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19797,"name":"Hynek Mlnarik","email":"hmlnarik@redhat.com","username":"hmlnarik"},"change_message_id":"483c398f76f77986128b32ddf10fb9b67db55bf6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"before adding them. But the routine used to query the"},{"line_number":11,"context_line":"patch port\u0027s existence is get_port_ofport() which retries"},{"line_number":12,"context_line":"the opertation because of the @_ofport_retry decoration."},{"line_number":13,"context_line":"This creates an unwanted delay in the startup of the"},{"line_number":14,"context_line":"agent."},{"line_number":15,"context_line":"The port\u0027s existence can be checked with port_exists()"},{"line_number":16,"context_line":"call on the bridge with no retries."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_8991fb49","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":6},"updated":"2016-05-10 12:32:31.000000000","message":"If that is only if the ports do not exist, it should be part of the commit message.","commit_id":"6c79704dece33e96fe9c1de3a9c3d3a8ef7b3f7f"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"8f402ca48aa09c79a0ea8c523ca8c3881b8c16ea","unresolved":false,"context_lines":[{"line_number":10,"context_line":"before adding them. But the routine used to query the"},{"line_number":11,"context_line":"patch port\u0027s existence is get_port_ofport() which retries"},{"line_number":12,"context_line":"the opertation because of the @_ofport_retry decoration."},{"line_number":13,"context_line":"This creates an unwanted delay in the startup of the"},{"line_number":14,"context_line":"agent."},{"line_number":15,"context_line":"The port\u0027s existence can be checked with port_exists()"},{"line_number":16,"context_line":"call on the bridge with no retries."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_f1248861","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":6},"in_reply_to":"dab17558_8991fb49","updated":"2016-05-12 06:58:52.000000000","message":"Done","commit_id":"6c79704dece33e96fe9c1de3a9c3d3a8ef7b3f7f"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":19797,"name":"Hynek Mlnarik","email":"hmlnarik@redhat.com","username":"hmlnarik"},"change_message_id":"c1c865a58ae673d5c5ae336f520f89bfbee0f295","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"                    phys_ofport \u003d br.add_patch_port("},{"line_number":1149,"context_line":"                        phys_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"            self.int_ofports[physical_network] \u003d int_ofport"},{"line_number":1152,"context_line":"            self.phys_ofports[physical_network] \u003d phys_ofport"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"            # block all untranslated traffic between bridges"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_219c7e0e","line":1151,"range":{"start_line":1151,"start_character":49,"end_line":1151,"end_character":59},"updated":"2016-05-10 07:26:50.000000000","message":"Variable int_ofport might be uninitialized (if port exists). This causes several issues, see line 1155 for the first of them.","commit_id":"c36675e83207577fa5b320641aea97a2ee060643"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"2115b06d27df25b3c8bddea8aaac811e93bbc5bb","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"                    phys_ofport \u003d br.add_patch_port("},{"line_number":1149,"context_line":"                        phys_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"            self.int_ofports[physical_network] \u003d int_ofport"},{"line_number":1152,"context_line":"            self.phys_ofports[physical_network] \u003d phys_ofport"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"            # block all untranslated traffic between bridges"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_d2a3b4fe","line":1151,"range":{"start_line":1151,"start_character":49,"end_line":1151,"end_character":59},"in_reply_to":"dab17558_219c7e0e","updated":"2016-05-10 09:54:54.000000000","message":"Done. Didn\u0027t look forward, Sorry!","commit_id":"c36675e83207577fa5b320641aea97a2ee060643"},{"author":{"_account_id":19797,"name":"Hynek Mlnarik","email":"hmlnarik@redhat.com","username":"hmlnarik"},"change_message_id":"c1c865a58ae673d5c5ae336f520f89bfbee0f295","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"                        phys_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"            self.int_ofports[physical_network] \u003d int_ofport"},{"line_number":1152,"context_line":"            self.phys_ofports[physical_network] \u003d phys_ofport"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"            # block all untranslated traffic between bridges"},{"line_number":1155,"context_line":"            self.int_br.drop_port(in_port\u003dint_ofport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_c18bf2c1","line":1152,"range":{"start_line":1152,"start_character":50,"end_line":1152,"end_character":61},"updated":"2016-05-10 07:26:50.000000000","message":"Same for phys_ofport","commit_id":"c36675e83207577fa5b320641aea97a2ee060643"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"2115b06d27df25b3c8bddea8aaac811e93bbc5bb","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"                        phys_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"            self.int_ofports[physical_network] \u003d int_ofport"},{"line_number":1152,"context_line":"            self.phys_ofports[physical_network] \u003d phys_ofport"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"            # block all untranslated traffic between bridges"},{"line_number":1155,"context_line":"            self.int_br.drop_port(in_port\u003dint_ofport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_f2951887","line":1152,"range":{"start_line":1152,"start_character":50,"end_line":1152,"end_character":61},"in_reply_to":"dab17558_c18bf2c1","updated":"2016-05-10 09:54:54.000000000","message":"Done","commit_id":"c36675e83207577fa5b320641aea97a2ee060643"},{"author":{"_account_id":19797,"name":"Hynek Mlnarik","email":"hmlnarik@redhat.com","username":"hmlnarik"},"change_message_id":"483c398f76f77986128b32ddf10fb9b67db55bf6","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                # Setup int_br to physical bridge patches.  If they already"},{"line_number":1142,"context_line":"                # exist we leave them alone, otherwise we create them but don\u0027t"},{"line_number":1143,"context_line":"                # connect them until after the drop rules are in place."},{"line_number":1144,"context_line":"                if not self.int_br.port_exists(int_if_name):"},{"line_number":1145,"context_line":"                    int_ofport \u003d self.int_br.add_patch_port("},{"line_number":1146,"context_line":"                        int_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1147,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_c9db034e","line":1144,"range":{"start_line":1144,"start_character":18,"end_line":1144,"end_character":22},"updated":"2016-05-10 12:32:31.000000000","message":"Nit: for readability, prefer\n\n if self.int_br.port_exists(int_if_name):\n    ... [A]\n else:\n    ... [not-A]\n\nin place of:\n\n if not self.int_br.port_exists(int_if_name):\n    ... [not-A]\n else:\n    ... [not-not-A]","commit_id":"6c79704dece33e96fe9c1de3a9c3d3a8ef7b3f7f"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"8f402ca48aa09c79a0ea8c523ca8c3881b8c16ea","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                # Setup int_br to physical bridge patches.  If they already"},{"line_number":1142,"context_line":"                # exist we leave them alone, otherwise we create them but don\u0027t"},{"line_number":1143,"context_line":"                # connect them until after the drop rules are in place."},{"line_number":1144,"context_line":"                if not self.int_br.port_exists(int_if_name):"},{"line_number":1145,"context_line":"                    int_ofport \u003d self.int_br.add_patch_port("},{"line_number":1146,"context_line":"                        int_if_name, constants.NONEXISTENT_PEER)"},{"line_number":1147,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b1d16032","line":1144,"range":{"start_line":1144,"start_character":18,"end_line":1144,"end_character":22},"in_reply_to":"dab17558_c9db034e","updated":"2016-05-12 06:58:52.000000000","message":"Sure, Done.","commit_id":"6c79704dece33e96fe9c1de3a9c3d3a8ef7b3f7f"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"ae2faac73cedff82a61894ab3f4419c278ee8bcc","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"            self.assertFalse(int_br.set_db_attribute.called)"},{"line_number":1062,"context_line":"            self.assertFalse(int_br.drop_port.called)"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"    def _test_setup_physical_bridges(self, port_exists\u003dFalse):"},{"line_number":1065,"context_line":"        with mock.patch.object(ip_lib.IPDevice, \"exists\") as devex_fn,\\"},{"line_number":1066,"context_line":"                mock.patch.object(sys, \"exit\"),\\"},{"line_number":1067,"context_line":"                mock.patch.object(utils, \"execute\"),\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_11caec6e","line":1064,"range":{"start_line":1064,"start_character":31,"end_line":1064,"end_character":62},"updated":"2016-05-12 06:59:25.000000000","message":"Added test cases to cover the port exists scenario, which I missed out on the last PS.","commit_id":"d526e720f73cbd79e54bbed18fe3009cad1cee10"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"ae2faac73cedff82a61894ab3f4419c278ee8bcc","unresolved":false,"context_lines":[{"line_number":1175,"context_line":"                             self.agent.phys_ofports[\"physnet1\"])"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"    def _test_setup_physical_bridges_change_from_veth_to_patch_conf("},{"line_number":1178,"context_line":"            self, port_exists\u003dFalse):"},{"line_number":1179,"context_line":"        with mock.patch.object(sys, \"exit\"),\\"},{"line_number":1180,"context_line":"                mock.patch.object(utils, \"execute\"),\\"},{"line_number":1181,"context_line":"                mock.patch.object(self.agent, \u0027br_phys_cls\u0027) as phys_br_cls,\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_31945043","line":1178,"range":{"start_line":1178,"start_character":18,"end_line":1178,"end_character":36},"updated":"2016-05-12 06:59:25.000000000","message":"Added test cases to cover the port exists scenario, which I missed out on the last PS.","commit_id":"d526e720f73cbd79e54bbed18fe3009cad1cee10"}]}
