summaryrefslogtreecommitdiff
path: root/neutron/plugins
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-04-25 20:06:03 +0000
committerGerrit Code Review <review@openstack.org>2023-04-25 20:06:03 +0000
commit4c8d855798778f4d678c5a90de13af019c27cd42 (patch)
treecbb6ea7707dfa4e08b293c89c974297b08b16800 /neutron/plugins
parent853dc2570d1e110793a37ffdd6d9a52da75d67e4 (diff)
parentd67d1c273668ad4bb0d6906b7684f4a7b095c8d4 (diff)
downloadneutron-4c8d855798778f4d678c5a90de13af019c27cd42.tar.gz
Merge "[ovn] Drop use of OVN_GW_PORT_EXT_ID_KEY"
Diffstat (limited to 'neutron/plugins')
-rw-r--r--neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py15
-rw-r--r--neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py16
-rw-r--r--neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py2
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: