diff options
author | Zuul <zuul@review.opendev.org> | 2023-04-25 20:06:03 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2023-04-25 20:06:03 +0000 |
commit | 4c8d855798778f4d678c5a90de13af019c27cd42 (patch) | |
tree | cbb6ea7707dfa4e08b293c89c974297b08b16800 /neutron/plugins | |
parent | 853dc2570d1e110793a37ffdd6d9a52da75d67e4 (diff) | |
parent | d67d1c273668ad4bb0d6906b7684f4a7b095c8d4 (diff) | |
download | neutron-4c8d855798778f4d678c5a90de13af019c27cd42.tar.gz |
Merge "[ovn] Drop use of OVN_GW_PORT_EXT_ID_KEY"
Diffstat (limited to 'neutron/plugins')
3 files changed, 18 insertions, 15 deletions
diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py index 10cdc3f031..b3a7bdca80 100644 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py @@ -836,19 +836,8 @@ class DeleteLRouterExtGwCommand(command.BaseCommand): lrouter.delvalue('nat', nat) nat.delete() - lrouter_ext_ids = getattr(lrouter, 'external_ids', {}) - gw_port_id = lrouter_ext_ids.get(ovn_const.OVN_GW_PORT_EXT_ID_KEY) - if not gw_port_id: - return - - try: - lrouter_port = idlutils.row_by_value( - self.api.idl, 'Logical_Router_Port', 'name', - utils.ovn_lrouter_port_name(gw_port_id)) - except idlutils.RowNotFound: - return - - lrouter.delvalue('ports', lrouter_port) + for gw_port in self.api.get_lrouter_gw_ports(lrouter.name): + lrouter.delvalue('ports', gw_port) class SetLSwitchPortToVirtualTypeCommand(command.BaseCommand): diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py index be5e7db367..8c74661c15 100644 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py @@ -785,6 +785,22 @@ class OvsdbNbOvnIdl(nb_impl_idl.OvnNbApiIdlImpl, Backend): result = lrp.execute(check_error=True) return result[0] if result else None + def get_lrouter_gw_ports(self, lrouter_name): + lr = self.get_lrouter(lrouter_name) + gw_ports = [] + for lrp in getattr(lr, 'ports', []): + lrp_ext_ids = getattr(lrp, 'external_ids', {}) + if (ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY not in lrp_ext_ids or + utils.ovn_name(lrp_ext_ids[ + ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY]) != lr.name): + continue + lrp_ha_cfg = (getattr(lrp, 'gateway_chassis', None) or + getattr(lrp, 'options', {}).get( + ovn_const.OVN_GATEWAY_CHASSIS_KEY)) + if lrp_ha_cfg: + gw_ports.append(lrp) + return gw_ports + def delete_lrouter_ext_gw(self, lrouter_name, if_exists=True): return cmd.DeleteLRouterExtGwCommand(self, lrouter_name, if_exists) diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py index 0e2603919d..54373e8b83 100644 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py @@ -1371,8 +1371,6 @@ class OVNClient(object): return { ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY: router.get('name', 'no_router_name'), - ovn_const.OVN_GW_PORT_EXT_ID_KEY: - router.get('gw_port_id') or '', ovn_const.OVN_REV_NUM_EXT_ID_KEY: str(utils.get_revision_number( router, ovn_const.TYPE_ROUTERS)), ovn_const.OVN_AZ_HINTS_EXT_ID_KEY: |