)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"12182cbed8a85ec3942c86a6ba2522ed796b131d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     gao yu \u003cgaoyublack@163.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-06-15 16:50:20 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix flows l2 population related on br-tun being cleaned after RabbitMQ cluster has experienced a network partition"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add function get_net_uuid_by_vlan to vlanmanager.py,modify function cleanup_flows in ofswitch.py and add funcion check_and_cleanup_table to it."},{"line_number":10,"context_line":"The three function ensure flows in table 22 which are in use will not be cleaned."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bf51134e_95cbf3a3","line":7,"updated":"2020-06-15 09:09:47.000000000","message":"Please make each line fit 80 chars","commit_id":"715dc22700870aa758084d2ee9c58c9915e4c98b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"906af272c37c825cf54ad51cf870433c0a3d2886","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-06-15 17:40:27 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix flows l2 population related on br-tun being cleaned after"},{"line_number":8,"context_line":"RabbitMQ cluster has experienced a network partition"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Add function get_net_uuid_by_vlan to vlanmanager.py,modify fun-"},{"line_number":11,"context_line":"ction cleanup_flows in ofswitch.py and add funcion check_and_c-"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf51134e_f844e6b9","line":8,"updated":"2020-06-15 10:08:06.000000000","message":"As Oleg commented before, title should be limited to 50 chars (although this is not a hard condition) and one single line.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"44f91c4067526908184d43645ed30079aa25d007"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"12182cbed8a85ec3942c86a6ba2522ed796b131d","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            matches \u003d dict(flow.match.items())"},{"line_number":193,"context_line":"            if matches.get(\u0027vlan_vid\u0027):"},{"line_number":194,"context_line":"                vlan \u003d matches[\u0027vlan_vid\u0027] \u0026 0x0fff"},{"line_number":195,"context_line":"                if not self.vlan_manager.get_net_uuid_by_vlan(vlan):"},{"line_number":196,"context_line":"                    self.uninstall_flows(table_id\u003d22, match\u003dflow.match)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_d5e56b0c","line":195,"range":{"start_line":195,"start_character":22,"end_line":195,"end_character":40},"updated":"2020-06-15 09:09:47.000000000","message":"where is self.vlan_manager being filled?","commit_id":"715dc22700870aa758084d2ee9c58c9915e4c98b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"906af272c37c825cf54ad51cf870433c0a3d2886","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            matches \u003d dict(flow.match.items())"},{"line_number":193,"context_line":"            if matches.get(\u0027vlan_vid\u0027):"},{"line_number":194,"context_line":"                vlan \u003d matches[\u0027vlan_vid\u0027] \u0026 0x0fff"},{"line_number":195,"context_line":"                if not self.vlan_manager.get_net_uuid_by_vlan(vlan):"},{"line_number":196,"context_line":"                    self.uninstall_flows(table_id\u003d22, match\u003dflow.match)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_d8f8027e","line":195,"range":{"start_line":195,"start_character":22,"end_line":195,"end_character":40},"in_reply_to":"bf51134e_d5e56b0c","updated":"2020-06-15 10:08:06.000000000","message":"Same question here","commit_id":"715dc22700870aa758084d2ee9c58c9915e4c98b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"906af272c37c825cf54ad51cf870433c0a3d2886","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                 self.reserved_cookies)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        for table_id in self.of_tables:"},{"line_number":183,"context_line":"            if table_id \u003d\u003d 22:"},{"line_number":184,"context_line":"                self.check_and_cleanup_table(table_id)"},{"line_number":185,"context_line":"            else:"},{"line_number":186,"context_line":"                self._dump_and_clean(table_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_7839f63f","line":183,"range":{"start_line":183,"start_character":26,"end_line":183,"end_character":29},"updated":"2020-06-15 10:08:06.000000000","message":"What is table 22? I don\u0027t see it in https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/common/constants.py","commit_id":"44f91c4067526908184d43645ed30079aa25d007"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"215fb79e6e516f637855ac53913482fbd436f2fd","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            if matches.get(\u0027vlan_vid\u0027):"},{"line_number":195,"context_line":"                vlan \u003d matches[\u0027vlan_vid\u0027] \u0026 0x0fff"},{"line_number":196,"context_line":"                if not self.vlan_manager.get_net_uuid_by_vlan(vlan):"},{"line_number":197,"context_line":"                    self.uninstall_flows(table_id\u003dconstants.FLOOD_TO_TUN, match\u003dflow.match)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def install_goto_next(self, table_id, active_bundle\u003dNone):"},{"line_number":200,"context_line":"        self.install_goto(table_id\u003dtable_id, dest_table_id\u003dtable_id + 1,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_44bc0bbb","line":197,"updated":"2020-06-15 14:12:20.000000000","message":"pep8: E501 line too long (91 \u003e 79 characters)","commit_id":"dab8231b02f87606511ed8fb9d4c9a126f3ff312"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"215fb79e6e516f637855ac53913482fbd436f2fd","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            # It is possible the bundle is kept open, but this must be"},{"line_number":340,"context_line":"            # cleared or all subsequent __enter__ will fail."},{"line_number":341,"context_line":"            self.active_bundle \u003d None"},{"line_number":342,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_a4b1a7e4","line":342,"updated":"2020-06-15 14:12:20.000000000","message":"pep8: W391 blank line at end of file","commit_id":"dab8231b02f87606511ed8fb9d4c9a126f3ff312"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fc2a7e01332c909e02159af6fb4f9db706fa42a1","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                self._dump_and_clean(table_id)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def check_and_cleanup_table(self, table_id):"},{"line_number":190,"context_line":"        LOG.debug(\u0027check and cleanup table %s\u0027, table_id)"},{"line_number":191,"context_line":"        flows \u003d self.dump_flows(table_id)"},{"line_number":192,"context_line":"        for flow in flows:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_36edbbef","line":189,"updated":"2020-06-16 09:20:00.000000000","message":"Let me ask you to understand this. The purpose of this change (and this specific method) is to keep in the OVS switch (in the flood_to_tun table) the flows defined by a previous OVS agent instance. T hat means you\u0027ll keep stale flows in OVS; this is not how it should work. When \"cleanup_stale_flows\" is called from the OVS agent, any flow without a reserved cookie must be deleted, that\u0027s why we implemented the OF control via cookies [1].\n\nWhat will happen in this compute node if the OVS is restarted and all flows are deleted? OVS agent won\u0027t be able to restore those \"missing\" flows you need.\n\nI don\u0027t think this is the correct approach for the problem you describe in LP#1883071.\n\n[1]I7cb61f30689dff2d7895d444060dedc1532a63ec","commit_id":"7cd4ce57fc8091c42c99230ce479e51ece2c94fe"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"766a7fddcc3d52a801d159f8aa8e3716b605e084","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            matches \u003d dict(flow.match.items())"},{"line_number":194,"context_line":"            if matches.get(\u0027vlan_vid\u0027):"},{"line_number":195,"context_line":"                vlan \u003d matches[\u0027vlan_vid\u0027] \u0026 0x0fff"},{"line_number":196,"context_line":"                if not self.vlan_manager.get_net_uuid_by_vlan(vlan):"},{"line_number":197,"context_line":"                    self.uninstall_flows(table_id\u003dconstants.FLOOD_TO_TUN,"},{"line_number":198,"context_line":"                                         match\u003dflow.match)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_b58ee924","line":196,"range":{"start_line":196,"start_character":41,"end_line":196,"end_character":68},"updated":"2020-07-27 14:49:59.000000000","message":"What if the local vlan is re-asigned during the agent init ?","commit_id":"fb39ad07e07e69e32bfabbbb8e9c95bcc727d687"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_vlanmanager.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"84e900223134217302439e37badfac4dec303db1","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        net_id \u003d 1"},{"line_number":105,"context_line":"        self.vlan_manager.add(net_id, *vlan_data)"},{"line_number":106,"context_line":"        obtained_net_id \u003d self.vlan_manager.get_net_uuid_by_vlan(vlan)"},{"line_number":107,"context_line":"        self.assertEqual(None, obtained_net_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_add_and_get(self):"},{"line_number":110,"context_line":"        vlan_data \u003d (2, 3, 4, 5, 6)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a5d1975a","line":107,"updated":"2020-06-16 04:30:16.000000000","message":"pep8: H203: Use assertIs(Not)None to check for None","commit_id":"5431f1abd88371ef8e704c0c53e8678156ad1d23"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"84e900223134217302439e37badfac4dec303db1","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        net_id \u003d 1"},{"line_number":105,"context_line":"        self.vlan_manager.add(net_id, *vlan_data)"},{"line_number":106,"context_line":"        obtained_net_id \u003d self.vlan_manager.get_net_uuid_by_vlan(vlan)"},{"line_number":107,"context_line":"        self.assertEqual(None, obtained_net_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_add_and_get(self):"},{"line_number":110,"context_line":"        vlan_data \u003d (2, 3, 4, 5, 6)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_45e35b34","line":107,"updated":"2020-06-16 04:30:16.000000000","message":"pep8: N536: Use assertIsNone rather than assertEqual to check for None values","commit_id":"5431f1abd88371ef8e704c0c53e8678156ad1d23"}]}
