Fix iteration in floatingip's add dependencies method
port.Port.FIXED_IPS can be None and we can't iterate by None. Closes bug: #1608973 Change-Id: I273c6383ab77adfbc5c51b94a2f3b2fa7cdbafc0
This commit is contained in:
parent
deb4031023
commit
432e240270
|
@ -330,9 +330,9 @@ class FloatingIPAssociation(neutron.NeutronResource):
|
|||
def port_on_subnet(resource, subnet):
|
||||
if not resource.has_interface('OS::Neutron::Port'):
|
||||
return False
|
||||
for fixed_ip in resource.properties.get(
|
||||
port.Port.FIXED_IPS):
|
||||
|
||||
fixed_ips = resource.properties.get(
|
||||
port.Port.FIXED_IPS) or []
|
||||
for fixed_ip in fixed_ips:
|
||||
port_subnet = (
|
||||
fixed_ip.get(port.Port.FIXED_IP_SUBNET)
|
||||
or fixed_ip.get(port.Port.FIXED_IP_SUBNET_ID))
|
||||
|
|
|
@ -730,3 +730,35 @@ class NeutronFloatingIPTest(common.HeatTestCase):
|
|||
scheduler.TaskRunner(p.delete)()
|
||||
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_add_dependencies(self):
|
||||
t = template_format.parse(neutron_floating_template)
|
||||
stack = utils.parse_stack(t)
|
||||
fipa = stack['floating_ip_assoc']
|
||||
port = stack['port_floating']
|
||||
r_int = stack['router_interface']
|
||||
deps = mock.MagicMock()
|
||||
dep_list = []
|
||||
|
||||
def iadd(obj):
|
||||
dep_list.append(obj[1])
|
||||
deps.__iadd__.side_effect = iadd
|
||||
deps.graph.return_value = {fipa: [port]}
|
||||
fipa.add_dependencies(deps)
|
||||
self.assertEqual([r_int], dep_list)
|
||||
|
||||
def test_add_dependencies_without_fixed_ips_in_port(self):
|
||||
t = template_format.parse(neutron_floating_template)
|
||||
del t['resources']['port_floating']['properties']['fixed_ips']
|
||||
stack = utils.parse_stack(t)
|
||||
fipa = stack['floating_ip_assoc']
|
||||
port = stack['port_floating']
|
||||
deps = mock.MagicMock()
|
||||
dep_list = []
|
||||
|
||||
def iadd(obj):
|
||||
dep_list.append(obj[1])
|
||||
deps.__iadd__.side_effect = iadd
|
||||
deps.graph.return_value = {fipa: [port]}
|
||||
fipa.add_dependencies(deps)
|
||||
self.assertEqual([], dep_list)
|
||||
|
|
Loading…
Reference in New Issue