)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6f19c5e6d6e61a37fc6c4381cb1c59e506cc6ff9","unresolved":true,"context_lines":[{"line_number":21,"context_line":"The new name pattern is:"},{"line_number":22,"context_line":"\u0027ovnmeta-\u003cNeutron network uuid\u003e\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Please, note that with this patch, the old namespaces will"},{"line_number":25,"context_line":"be deleted and new ones will be recreated."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Signed-off-by: Daniel Alvarez \u003cdalvarez@redhat.com\u003e"},{"line_number":28,"context_line":"Change-Id: Ic8ffa9c4437aab6fb1878b3a1ebf2c3ab86e3d0c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d8359399_77ec70a3","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":42},"updated":"2020-12-24 11:05:54.000000000","message":"I don\u0027t see where this is happening. Actually if the neutron server is updated with this patch, the existing namespaces won\u0027t be deleted when \"teardown_datapath\" is called due to [1]\n\n[1]https://review.opendev.org/c/openstack/neutron/+/768462/1/neutron/agent/ovn/metadata/agent.py#337","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"b78bdfca0db2c66efd82bcc1654eacb8f48fd302","unresolved":true,"context_lines":[{"line_number":21,"context_line":"The new name pattern is:"},{"line_number":22,"context_line":"\u0027ovnmeta-\u003cNeutron network uuid\u003e\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Please, note that with this patch, the old namespaces will"},{"line_number":25,"context_line":"be deleted and new ones will be recreated."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Signed-off-by: Daniel Alvarez \u003cdalvarez@redhat.com\u003e"},{"line_number":28,"context_line":"Change-Id: Ic8ffa9c4437aab6fb1878b3a1ebf2c3ab86e3d0c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"78cb73b7_4e2bd064","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":42},"in_reply_to":"d8359399_77ec70a3","updated":"2020-12-24 13:35:36.000000000","message":"It happens here:\n\nhttps://review.opendev.org/c/openstack/neutron/+/768462/1/neutron/agent/ovn/metadata/agent.py#83\n\nWhen a namespace-\u003covn datapath uuid\u003e is found, it\u0027ll be torn down","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"}],"neutron/agent/ovn/metadata/agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6f19c5e6d6e61a37fc6c4381cb1c59e506cc6ff9","unresolved":true,"context_lines":[{"line_number":80,"context_line":"            return"},{"line_number":81,"context_line":"        with _SYNC_STATE_LOCK.read_lock():"},{"line_number":82,"context_line":"            try:"},{"line_number":83,"context_line":"                net_name \u003d row.datapath.external_ids[\u0027name\u0027].lstrip(\u0027neutron-\u0027)"},{"line_number":84,"context_line":"                LOG.info(self.LOG_MSG, row.logical_port, net_name)"},{"line_number":85,"context_line":"                self.agent.update_datapath(str(row.datapath.uuid), net_name)"},{"line_number":86,"context_line":"            except ConfigException:"}],"source_content_type":"text/x-python","patch_set":1,"id":"b3c01a61_8489c7f1","line":83,"range":{"start_line":83,"start_character":16,"end_line":83,"end_character":79},"updated":"2020-12-24 11:05:54.000000000","message":"1) IMPORTANT: use replace, not lstrip --\u003e https://review.opendev.org/c/openstack/neutron/+/743577\n\n2) I would implement a method in neutron.common.ovn.utils to retrieve this info, something like \"get_network_name_from_datapath(datapath)\"","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"b78bdfca0db2c66efd82bcc1654eacb8f48fd302","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            return"},{"line_number":81,"context_line":"        with _SYNC_STATE_LOCK.read_lock():"},{"line_number":82,"context_line":"            try:"},{"line_number":83,"context_line":"                net_name \u003d row.datapath.external_ids[\u0027name\u0027].lstrip(\u0027neutron-\u0027)"},{"line_number":84,"context_line":"                LOG.info(self.LOG_MSG, row.logical_port, net_name)"},{"line_number":85,"context_line":"                self.agent.update_datapath(str(row.datapath.uuid), net_name)"},{"line_number":86,"context_line":"            except ConfigException:"}],"source_content_type":"text/x-python","patch_set":1,"id":"8d79a3ba_f6782777","line":83,"range":{"start_line":83,"start_character":16,"end_line":83,"end_character":79},"in_reply_to":"b3c01a61_8489c7f1","updated":"2020-12-24 13:35:36.000000000","message":"Right, thanks!\nI\u0027m adding it to this same module as it is not used outside this agent. We can move it at some point but we\u0027ll need to make sure we use the datapath object as a Row object or convert it somehow later on.","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6f19c5e6d6e61a37fc6c4381cb1c59e506cc6ff9","unresolved":true,"context_lines":[{"line_number":523,"context_line":"        # Retrieve all VIF ports in our Chassis"},{"line_number":524,"context_line":"        ports \u003d self.sb_idl.get_ports_on_chassis(self.chassis)"},{"line_number":525,"context_line":"        nets \u003d {(str(p.datapath.uuid),"},{"line_number":526,"context_line":"            p.datapath.external_ids[\u0027name\u0027].lstrip(\u0027neutron-\u0027))"},{"line_number":527,"context_line":"            for p in self._vif_ports(ports)}"},{"line_number":528,"context_line":"        namespaces \u003d []"},{"line_number":529,"context_line":"        # Make sure that all those datapaths are serving metadata"}],"source_content_type":"text/x-python","patch_set":1,"id":"cdc00684_b5086c30","line":526,"range":{"start_line":526,"start_character":12,"end_line":526,"end_character":62},"updated":"2020-12-24 11:05:54.000000000","message":"ditto","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"b78bdfca0db2c66efd82bcc1654eacb8f48fd302","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        # Retrieve all VIF ports in our Chassis"},{"line_number":524,"context_line":"        ports \u003d self.sb_idl.get_ports_on_chassis(self.chassis)"},{"line_number":525,"context_line":"        nets \u003d {(str(p.datapath.uuid),"},{"line_number":526,"context_line":"            p.datapath.external_ids[\u0027name\u0027].lstrip(\u0027neutron-\u0027))"},{"line_number":527,"context_line":"            for p in self._vif_ports(ports)}"},{"line_number":528,"context_line":"        namespaces \u003d []"},{"line_number":529,"context_line":"        # Make sure that all those datapaths are serving metadata"}],"source_content_type":"text/x-python","patch_set":1,"id":"5e5c9b64_6e926dcd","line":526,"range":{"start_line":526,"start_character":12,"end_line":526,"end_character":62},"in_reply_to":"cdc00684_b5086c30","updated":"2020-12-24 13:35:36.000000000","message":"done, thanks!","commit_id":"e495744c18332d7054fef40bca3ee646b2bd9386"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0953bfef74a4a5886109d38fd536c5bade649cdc","unresolved":true,"context_lines":[{"line_number":299,"context_line":"        chassis are serving metadata. Also, it will tear down those namespaces"},{"line_number":300,"context_line":"        which were serving metadata but are no longer needed."},{"line_number":301,"context_line":"        \"\"\""},{"line_number":302,"context_line":"        metadata_namespaces \u003d self.ensure_all_networks_provisioned()"},{"line_number":303,"context_line":"        system_namespaces \u003d tuple("},{"line_number":304,"context_line":"            ns.decode(\u0027utf-8\u0027) if isinstance(ns, bytes) else ns"},{"line_number":305,"context_line":"            for ns in ip_lib.list_network_namespaces())"}],"source_content_type":"text/x-python","patch_set":3,"id":"f628fc05_b8ffa83a","line":302,"updated":"2020-12-24 14:29:21.000000000","message":"Now I see this method will remove any exiting metadata namespace (beginning with NS_PREFIX) but not provisioned (L302), and this method is called at least once when restarted.","commit_id":"d9dfabe9c6e2414834b42c62ae7b036ddb407a85"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"30e385de15117034f429ed4f41ebd0b01ca94c72","unresolved":true,"context_lines":[{"line_number":304,"context_line":"            ns.decode(\u0027utf-8\u0027) if isinstance(ns, bytes) else ns"},{"line_number":305,"context_line":"            for ns in ip_lib.list_network_namespaces())"},{"line_number":306,"context_line":"        unused_namespaces \u003d [ns for ns in system_namespaces if"},{"line_number":307,"context_line":"                             ns.startswith(NS_PREFIX) and"},{"line_number":308,"context_line":"                             ns not in metadata_namespaces]"},{"line_number":309,"context_line":"        for ns in unused_namespaces:"},{"line_number":310,"context_line":"            self.teardown_datapath(self._get_datapath_name(ns))"}],"source_content_type":"text/x-python","patch_set":4,"id":"b1c48b91_8771389f","line":307,"updated":"2021-01-04 19:33:59.000000000","message":"Does this need an update?  NS_PREFIX\u003d\u0027ovnmeta-\u0027 above","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"7e3ccdb2f80c9503c11c312a26f422c3558967e3","unresolved":true,"context_lines":[{"line_number":304,"context_line":"            ns.decode(\u0027utf-8\u0027) if isinstance(ns, bytes) else ns"},{"line_number":305,"context_line":"            for ns in ip_lib.list_network_namespaces())"},{"line_number":306,"context_line":"        unused_namespaces \u003d [ns for ns in system_namespaces if"},{"line_number":307,"context_line":"                             ns.startswith(NS_PREFIX) and"},{"line_number":308,"context_line":"                             ns not in metadata_namespaces]"},{"line_number":309,"context_line":"        for ns in unused_namespaces:"},{"line_number":310,"context_line":"            self.teardown_datapath(self._get_datapath_name(ns))"}],"source_content_type":"text/x-python","patch_set":4,"id":"f4ff285d_cda80e70","line":307,"in_reply_to":"b1c48b91_8771389f","updated":"2021-01-08 13:24:14.000000000","message":"I don\u0027t think it does. The intent of the patch is not changing the prefix but what follows it.","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e27f119398530f8f353899c024188b47e41c74b4","unresolved":true,"context_lines":[{"line_number":820,"context_line":"                if (r.mac and ("},{"line_number":821,"context_line":"                    str(r.datapath.uuid) \u003d\u003d network or"},{"line_number":822,"context_line":"                    utils.get_network_name_from_datapath("},{"line_number":823,"context_line":"                        r.datapath) \u003d\u003d network)) and"},{"line_number":824,"context_line":"                ip_address in r.mac[0].split(\u0027 \u0027)]"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"    def set_port_cidrs(self, name, cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1e2c02db_5103dedf","line":823,"updated":"2021-01-08 13:30:53.000000000","message":"shouldn\u0027t You add TODO to remove it in Y also?","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"6739a23fc5e8c7dc6047157c5ff6f8bed2bf4671","unresolved":true,"context_lines":[{"line_number":820,"context_line":"                if (r.mac and ("},{"line_number":821,"context_line":"                    str(r.datapath.uuid) \u003d\u003d network or"},{"line_number":822,"context_line":"                    utils.get_network_name_from_datapath("},{"line_number":823,"context_line":"                        r.datapath) \u003d\u003d network)) and"},{"line_number":824,"context_line":"                ip_address in r.mac[0].split(\u0027 \u0027)]"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"    def set_port_cidrs(self, name, cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"e5e10717_ac411d90","line":823,"in_reply_to":"1e2c02db_5103dedf","updated":"2021-01-08 13:32:29.000000000","message":"good point thanks!","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"e10382abd245df11d1636ff13b591895a86d60e1","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                if (r.mac and ("},{"line_number":821,"context_line":"                    str(r.datapath.uuid) \u003d\u003d network or"},{"line_number":822,"context_line":"                    utils.get_network_name_from_datapath("},{"line_number":823,"context_line":"                        r.datapath) \u003d\u003d network)) and"},{"line_number":824,"context_line":"                ip_address in r.mac[0].split(\u0027 \u0027)]"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"    def set_port_cidrs(self, name, cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"84dd11f6_525d2c2b","line":823,"in_reply_to":"e5e10717_ac411d90","updated":"2021-01-08 13:37:11.000000000","message":"Done","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"}],"releasenotes/notes/ovnmeta-namespaces-include-network-name-e6e4e5f6ff69e7ed.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"30e385de15117034f429ed4f41ebd0b01ca94c72","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``OVN Metadata Agent`` creates now the network namespaces including the"},{"line_number":5,"context_line":"    Neutron network UUID in its name. Previously, the OVN datapath UUID was used"},{"line_number":6,"context_line":"    and it was not obvious for operators and during debugging to figure out which"},{"line_number":7,"context_line":"    namespace corresponded to what Neutron network."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"10cf6413_4f6e19d1","line":4,"range":{"start_line":4,"start_character":31,"end_line":4,"end_character":46},"updated":"2021-01-04 19:33:59.000000000","message":"s/now creates","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"7e3ccdb2f80c9503c11c312a26f422c3558967e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``OVN Metadata Agent`` creates now the network namespaces including the"},{"line_number":5,"context_line":"    Neutron network UUID in its name. Previously, the OVN datapath UUID was used"},{"line_number":6,"context_line":"    and it was not obvious for operators and during debugging to figure out which"},{"line_number":7,"context_line":"    namespace corresponded to what Neutron network."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"42f187fd_23641de8","line":4,"range":{"start_line":4,"start_character":31,"end_line":4,"end_character":46},"in_reply_to":"10cf6413_4f6e19d1","updated":"2021-01-08 13:24:14.000000000","message":"Ack","commit_id":"5c8bdb1c243cb9415a8b8de6f7484022177e745e"}]}
