Explicitly handle baremetal ports when checking if they are active
Currently we rely on [service_available]ironic which 1) will give incorrect results in a mixed environment 2) doesn't work in grenade jobs This change only allows ports to be DOWN when they have VNIC type of baremetal. Change-Id: If24913b7097c5252a214bb780fc786aa0c3f983b
This commit is contained in:
parent
3d13f07ed6
commit
5c191faae7
|
@ -966,18 +966,21 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
# A port can have more than one IP address in some cases.
|
# A port can have more than one IP address in some cases.
|
||||||
# If the network is dual-stack (IPv4 + IPv6), this port is associated
|
# If the network is dual-stack (IPv4 + IPv6), this port is associated
|
||||||
# with 2 subnets
|
# with 2 subnets
|
||||||
p_status = ['ACTIVE']
|
|
||||||
# NOTE(vsaienko) With Ironic, instances live on separate hardware
|
def _is_active(port):
|
||||||
# servers. Neutron does not bind ports for Ironic instances, as a
|
# NOTE(vsaienko) With Ironic, instances live on separate hardware
|
||||||
# result the port remains in the DOWN state.
|
# servers. Neutron does not bind ports for Ironic instances, as a
|
||||||
# TODO(vsaienko) remove once bug: #1599836 is resolved.
|
# result the port remains in the DOWN state. This has been fixed
|
||||||
if getattr(CONF.service_available, 'ironic', False):
|
# with the introduction of the networking-baremetal plugin but
|
||||||
p_status.append('DOWN')
|
# it's not mandatory (and is not used on all stable branches).
|
||||||
|
return (port['status'] == 'ACTIVE' or
|
||||||
|
port.get('binding:vnic_type') == 'baremetal')
|
||||||
|
|
||||||
port_map = [(p["id"], fxip["ip_address"])
|
port_map = [(p["id"], fxip["ip_address"])
|
||||||
for p in ports
|
for p in ports
|
||||||
for fxip in p["fixed_ips"]
|
for fxip in p["fixed_ips"]
|
||||||
if (netutils.is_valid_ipv4(fxip["ip_address"]) and
|
if (netutils.is_valid_ipv4(fxip["ip_address"]) and
|
||||||
p['status'] in p_status)]
|
_is_active(p))]
|
||||||
inactive = [p for p in ports if p['status'] != 'ACTIVE']
|
inactive = [p for p in ports if p['status'] != 'ACTIVE']
|
||||||
if inactive:
|
if inactive:
|
||||||
LOG.warning("Instance has ports that are not ACTIVE: %s", inactive)
|
LOG.warning("Instance has ports that are not ACTIVE: %s", inactive)
|
||||||
|
|
Loading…
Reference in New Issue