Merge "Disable neutron inventory src if no ctlplane ports" into stable/wallaby

This commit is contained in:
Zuul 2021-06-03 03:53:30 +00:00 committed by Gerrit Code Review
commit 527b9b8c77
1 changed files with 20 additions and 4 deletions

View File

@ -129,7 +129,6 @@ class NeutronData(object):
def _ports_by_role_and_host(self):
mandatory_tags = {'tripleo_role'}
ignore_tags = {'tripleo_vip_net', 'tripleo_service_vip'}
ports_by_role_and_host = {}
for port in self.ports:
@ -138,9 +137,6 @@ class NeutronData(object):
continue
tags = self._tags_to_dict(port.tags)
# Ignore non host ports by looking for the tags
if ignore_tags.intersection(tags):
continue
# In case of missing required tags, raise an error.
# neutron is useless as a inventory source in this case.
@ -474,6 +470,26 @@ class TripleoInventory(object):
if not ports:
return None
# Filter tripleo_service_vip and tripleo_vip_net ports
ports = [p for p in ports
if not any("tripleo_service_vip" in tag for tag in p.tags)
and not any("tripleo_vip_net" in tag for tag in p.tags)]
# NOTE(hjensas): ctlplane ports created by THT Heat Server
# resources, or nova less without --network-ports/--network-config
# enabled, does not have the 'tripleo_stack_name' tag. We
# shouldn't use neutron as a source if no ctlplane ports are
# tagged with the 'tripleo_stack_name'.
# See bug: https://bugs.launchpad.net/tripleo/+bug/1928926
found_ctlplane_port = False
ctlplane_net = conn.network.find_network(self.host_network)
for p in ports:
if p.network_id == ctlplane_net.id:
found_ctlplane_port = True
break
if not found_ctlplane_port:
return None
networks = [conn.network.find_network(p.network_id)
for p in ports]
subnets = []