diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-12-15 13:04:29 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-12-15 13:04:29 +0000 |
commit | 0079fb7cf4544ab79d789e0329bdc27c8aac17dc (patch) | |
tree | 47c8e1e62a739d3ae17bda24cda2c370f47efa5d /heat/tests/openstack/neutron/test_neutron_port.py | |
parent | f84d2ea7952aefdcc23fbed7b6ff685eb6e32906 (diff) | |
parent | 3a82e0cd59f8d4bb9308969109dead0d7887c2f3 (diff) | |
download | heat-0079fb7cf4544ab79d789e0329bdc27c8aac17dc.tar.gz |
Merge "Neutron port, tolerate switching network name/id"
Diffstat (limited to 'heat/tests/openstack/neutron/test_neutron_port.py')
-rw-r--r-- | heat/tests/openstack/neutron/test_neutron_port.py | 75 |
1 files changed, 74 insertions, 1 deletions
diff --git a/heat/tests/openstack/neutron/test_neutron_port.py b/heat/tests/openstack/neutron/test_neutron_port.py index 0335ee4fb..c03011403 100644 --- a/heat/tests/openstack/neutron/test_neutron_port.py +++ b/heat/tests/openstack/neutron/test_neutron_port.py @@ -571,6 +571,79 @@ class NeutronPortTest(common.HeatTestCase): self.m.VerifyAll() + def test_port_needs_update_network(self): + props = {'network': u'net1234', + 'name': utils.PhysName('test_stack', 'port'), + 'admin_state_up': True, + 'device_owner': u'network:dhcp'} + neutronV20.find_resourceid_by_name_or_id( + mox.IsA(neutronclient.Client), + 'network', + 'net1234', + cmd_resource=None, + ).MultipleTimes().AndReturn('net1234') + neutronV20.find_resourceid_by_name_or_id( + mox.IsA(neutronclient.Client), + 'network', + 'old_network', + cmd_resource=None, + ).MultipleTimes().AndReturn('net1234') + create_props = props.copy() + create_props['network_id'] = create_props.pop('network') + neutronclient.Client.create_port( + {'port': create_props} + ).AndReturn({'port': { + "status": "BUILD", + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + }}) + neutronclient.Client.show_port( + 'fc68ea2c-b60b-4b4f-bd82-94ec81110766' + ).AndReturn({'port': { + "status": "ACTIVE", + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "fixed_ips": { + "subnet_id": "d0e971a6-a6b4-4f4c-8c88-b75e9c120b7e", + "ip_address": "10.0.0.2" + } + }}) + neutronV20.find_resourceid_by_name_or_id( + mox.IsA(neutronclient.Client), + 'network', + 'new_network', + cmd_resource=None, + ).AndReturn('net5678') + + self.m.ReplayAll() + + # create port + t = template_format.parse(neutron_port_template) + t['resources']['port']['properties'].pop('fixed_ips') + stack = utils.parse_stack(t) + + port = stack['port'] + scheduler.TaskRunner(port.create)() + + new_props = props.copy() + + # test no replace, switch ID for name of same network + new_props = props.copy() + new_props['network'] = 'old_network' + + update_snippet = rsrc_defn.ResourceDefinition(port.name, port.type(), + new_props) + self.assertTrue(port._needs_update(update_snippet, + port.frozen_definition(), + new_props, props, None)) + + new_props['network'] = 'new_network' + update_snippet = rsrc_defn.ResourceDefinition(port.name, port.type(), + new_props) + self.assertRaises(exception.UpdateReplace, port._needs_update, + update_snippet, port.frozen_definition(), + new_props, props, None) + + self.m.VerifyAll() + def test_get_port_attributes(self): subnet_dict = {'name': 'test-subnet', 'enable_dhcp': True, 'network_id': 'net1234', 'dns_nameservers': [], @@ -719,7 +792,7 @@ class NeutronPortTest(common.HeatTestCase): 'network', 'net1234', cmd_resource=None, - ).AndReturn('net1234') + ).MultipleTimes().AndReturn('net1234') neutronV20.find_resourceid_by_name_or_id( mox.IsA(neutronclient.Client), 'subnet', |