diff options
Diffstat (limited to 'heat/tests/openstack/nova/test_server.py')
-rw-r--r-- | heat/tests/openstack/nova/test_server.py | 145 |
1 files changed, 93 insertions, 52 deletions
diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py index 794081481..216f1d433 100644 --- a/heat/tests/openstack/nova/test_server.py +++ b/heat/tests/openstack/nova/test_server.py @@ -446,42 +446,48 @@ class ServersTest(common.HeatTestCase): ip='5.6.9.8'), create_fake_iface(port='1013', mac='fa:16:3e:8c:44:cc', - ip='10.13.12.13')] + ip='10.13.12.13', + subnet='private_subnet_id')] + ports = [dict(id=interfaces[0].port_id, + mac_address=interfaces[0].mac_addr, + fixed_ips=interfaces[0].fixed_ips, + network_id='public_id'), + dict(id=interfaces[1].port_id, + mac_address=interfaces[1].mac_addr, + fixed_ips=interfaces[1].fixed_ips, + network_id='public_id'), + dict(id=interfaces[2].port_id, + mac_address=interfaces[2].mac_addr, + fixed_ips=interfaces[2].fixed_ips, + network_id='private_id')] + public_net = dict(id='public_id', + name='public', + mtu=1500, + subnets=['public_subnet_id']) + private_net = dict(id='private_id', + name='private', + mtu=1500, + subnets=['private_subnet_id']) + private_subnet = dict(id='private_subnet_id', + name='private_subnet', + cidr='private_cidr', + allocation_pools=[{'start': 'start_addr', + 'end': 'end_addr'}], + gateway_ip='private_gateway', + network_id='private_id') self.patchobject(self.fc.servers, 'get', return_value=return_server) - self.patchobject(return_server, 'interface_list', - return_value=interfaces) + self.patchobject(neutronclient.Client, 'list_ports', + return_value={'ports': ports}) + self.patchobject(neutronclient.Client, 'list_networks', + side_effect=[{'networks': [public_net]}, + {'networks': [public_net]}, + {'networks': [private_net]}]) + self.patchobject(neutronclient.Client, 'list_floatingips', + return_value={'floatingips': []}) self.patchobject(self.fc.servers, 'tag_list', return_value=['test']) - - self.port_show.return_value = { - 'port': {'id': '1234', - 'network_id': 'the_network', - 'fixed_ips': [{ - 'ip_address': '4.5.6.7', - 'subnet_id': 'the_subnet'}] - } - } - subnet_dict = { - 'subnet': { - 'name': 'subnet_name', - 'cidr': '10.0.0.0/24', - 'allocation_pools': [{'start': '10.0.0.2', - 'end': u'10.0.0.254'}], - 'gateway_ip': '10.0.0.1', - 'id': 'the_subnet', - 'network_id': 'the_network' - } - } - network_dict = { - 'network': { - 'name': 'network_name', - 'mtu': 1500, - 'subnets': [subnet_dict['subnet']['id']], - 'id': 'the_network' - } - } - self.subnet_show.return_value = subnet_dict - self.network_show.return_value = network_dict + self.subnet_show.return_value = {'subnet': private_subnet} + self.network_show.return_value = {'network': private_net} public_ip = return_server.networks['public'][0] self.assertEqual('1234', @@ -498,9 +504,9 @@ class ServersTest(common.HeatTestCase): server.FnGetAtt('addresses')['private'][0]['port']) self.assertEqual(private_ip, server.FnGetAtt('addresses')['private'][0]['addr']) - self.assertEqual([subnet_dict['subnet']], + self.assertEqual([private_subnet], server.FnGetAtt('addresses')['private'][0]['subnets']) - self.assertEqual(network_dict['network'], + self.assertEqual(private_net, server.FnGetAtt('addresses')['private'][0]['network']) self.assertEqual(private_ip, server.FnGetAtt('networks')['private'][0]) @@ -521,21 +527,6 @@ class ServersTest(common.HeatTestCase): self.assertIsNone(server.FnGetAtt('tags')) self.assertEqual({}, server.FnGetAtt('os_collect_config')) - def test_server_network_subnet_address_attr_port_not_found(self): - return_server = self.fc.servers.list()[1] - server_name = 'network-subnet-attr-server' - server = self._create_test_server(return_server, server_name) - interfaces = [create_fake_iface(port='1234', - mac='fa:16:3e:8c:22:aa', - ip='4.5.6.7')] - self.patchobject(return_server, 'interface_list', - return_value=interfaces) - self.port_show.side_effect = neutron.exceptions.NotFound() - self.assertEqual(None, - server.FnGetAtt('addresses')['private'][0]['subnets']) - self.assertEqual(None, - server.FnGetAtt('addresses')['private'][0]['network']) - def test_server_create_metadata(self): stack_name = 'create_metadata_test_stack' self.patchobject(nova.NovaClientPlugin, 'client', @@ -642,10 +633,30 @@ class ServersTest(common.HeatTestCase): create_fake_iface(port='1013', mac='fa:16:3e:8c:44:cc', ip='10.13.12.13')] + ports = [dict(id=interfaces[0].port_id, + mac_address=interfaces[0].mac_addr, + fixed_ips=interfaces[0].fixed_ips, + network_id='public_id'), + dict(id=interfaces[1].port_id, + mac_address=interfaces[1].mac_addr, + fixed_ips=interfaces[1].fixed_ips, + network_id='public_id'), + dict(id=interfaces[2].port_id, + mac_address=interfaces[2].mac_addr, + fixed_ips=interfaces[2].fixed_ips, + network_id='private_id')] + public_net = dict(id='public_id', name='public') + private_net = dict(id='private_id', name='private') self.patchobject(self.fc.servers, 'get', return_value=return_server) - self.patchobject(return_server, 'interface_list', - return_value=interfaces) + self.patchobject(neutronclient.Client, 'list_ports', + return_value={'ports': ports}) + self.patchobject(neutronclient.Client, 'list_networks', + side_effect=[{'networks': [public_net]}, + {'networks': [public_net]}, + {'networks': [private_net]}]) + self.patchobject(neutronclient.Client, 'list_floatingips', + return_value={'floatingips': []}) self.patchobject(return_server, 'interface_detach') self.patchobject(return_server, 'interface_attach') @@ -2089,20 +2100,42 @@ class ServersTest(common.HeatTestCase): server.properties.data['networks'] = [{'network': 'public_id', 'fixed_ip': '5.6.9.8'}] + public_net = dict(id='public_id', name='public') + private_net = dict(id='private_id', name='private') iface0 = create_fake_iface(port='aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', net='public', ip='5.6.9.8', mac='fa:16:3e:8c:33:aa') + port0 = dict(id=iface0.port_id, + network_id=iface0.net_id, + mac_address=iface0.mac_addr, + fixed_ips=iface0.fixed_ips) iface1 = create_fake_iface(port='bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', net='public', ip='4.5.6.7', mac='fa:16:3e:8c:22:aa') + port1 = dict(id=iface1.port_id, + network_id=iface1.net_id, + mac_address=iface1.mac_addr, + fixed_ips=iface1.fixed_ips) iface2 = create_fake_iface(port='cccccccc-cccc-cccc-cccc-cccccccccccc', net='private', ip='10.13.12.13', mac='fa:16:3e:8c:44:cc') + port2 = dict(id=iface2.port_id, + network_id=iface2.net_id, + mac_address=iface2.mac_addr, + fixed_ips=iface2.fixed_ips) self.patchobject(return_server, 'interface_list', return_value=[iface0, iface1, iface2]) + self.patchobject(neutronclient.Client, 'list_ports', + return_value={'ports': [port0, port1, port2]}) + self.patchobject(neutronclient.Client, 'list_networks', + side_effect=[{'networks': [public_net]}, + {'networks': [public_net]}, + {'networks': [private_net]}]) + self.patchobject(neutronclient.Client, 'list_floatingips', + return_value={'floatingips': []}) self.patchobject(neutron.NeutronClientPlugin, 'find_resourceid_by_name_or_id', @@ -2725,6 +2758,14 @@ class ServersTest(common.HeatTestCase): self.patchobject(neutron.NeutronClientPlugin, 'find_resourceid_by_name_or_id', return_value=None) + self.patchobject(neutronclient.Client, 'list_ports', + return_value={'ports': [{'id': 'p_id', + 'name': 'p_name', + 'fixed_ips': [], + 'network_id': 'n_id'}]}) + self.patchobject(neutronclient.Client, 'list_networks', + return_value={'networks': [{'id': 'n_id', + 'name': 'empty_net'}]}) self.patchobject(self.fc.servers, 'get', return_value=return_server) self.patchobject(return_server, 'interface_list', return_value=[]) mock_detach = self.patchobject(return_server, 'interface_detach') |