diff options
author | Joseph Lanoux <joseph.lanoux@hp.com> | 2014-09-18 14:25:46 +0000 |
---|---|---|
committer | Joseph Lanoux <joseph.lanoux@hp.com> | 2014-10-14 09:14:04 +0000 |
commit | 38edc05036e6129eefbfbe1e0193e45803fe7b83 (patch) | |
tree | 22ae4cec5dac29faadd6ce8da85f7d17455a89f0 | |
parent | 41d6aa233bf9c76734d443e023bb88a448f6ed59 (diff) | |
download | tempest-38edc05036e6129eefbfbe1e0193e45803fe7b83.tar.gz |
Verify network interfaces are in requested order
There is no Tempest test verifying that the order of multiple networks passed
to an instance during its creation is preserved within the instance
(https://review.openstack.org/#/c/85711/). This change introduces a new test
in test_create_server to verify this feature.
Change-Id: I3622b9e8dfbbf73eb9a0a69d2094b75e4934fe17
-rw-r--r-- | tempest/api/compute/servers/test_create_server.py | 35 | ||||
-rw-r--r-- | tempest/services/compute/xml/servers_client.py | 7 |
2 files changed, 40 insertions, 2 deletions
diff --git a/tempest/api/compute/servers/test_create_server.py b/tempest/api/compute/servers/test_create_server.py index 5df8d8263..25dc87d00 100644 --- a/tempest/api/compute/servers/test_create_server.py +++ b/tempest/api/compute/servers/test_create_server.py @@ -42,6 +42,7 @@ class ServersTestJSON(base.BaseV2ComputeTest): personality = [{'path': '/test.txt', 'contents': base64.b64encode(file_contents)}] cls.client = cls.servers_client + cls.network_client = cls.os.network_client cli_resp = cls.create_test_server(name=cls.name, meta=cls.meta, accessIPv4=cls.accessIPv4, @@ -124,6 +125,40 @@ class ServersTestJSON(base.BaseV2ComputeTest): self.assertEqual(200, resp.status) self.assertIn(server['id'], server_group['members']) + @testtools.skipUnless(CONF.service_available.neutron, + 'Neutron service must be available.') + def test_verify_multiple_nics_order(self): + # Verify that the networks order given at the server creation is + # preserved within the server. + name_net1 = data_utils.rand_name(self.__class__.__name__) + _, net1 = self.network_client.create_network(name=name_net1) + name_net2 = data_utils.rand_name(self.__class__.__name__) + _, net2 = self.network_client.create_network(name=name_net2) + + _, subnet1 = self.network_client.create_subnet( + network_id=net1['network']['id'], + cidr='19.80.0.0/24', + ip_version=4) + _, subnet2 = self.network_client.create_subnet( + network_id=net2['network']['id'], + cidr='19.86.0.0/24', + ip_version=4) + + networks = [{'uuid': net1['network']['id']}, + {'uuid': net2['network']['id']}] + + _, server_multi_nics = self.create_test_server( + networks=networks, wait_until='ACTIVE') + + _, addresses = self.client.list_addresses(server_multi_nics['id']) + + expected_addr = ['19.80.0.2', '19.86.0.2'] + + addr = [addresses[name_net1][0]['addr'], + addresses[name_net2][0]['addr']] + + self.assertEqual(expected_addr, addr) + class ServersWithSpecificFlavorTestJSON(base.BaseV2ComputeAdminTest): disk_config = 'AUTO' diff --git a/tempest/services/compute/xml/servers_client.py b/tempest/services/compute/xml/servers_client.py index 156d889e0..06f1b8301 100644 --- a/tempest/services/compute/xml/servers_client.py +++ b/tempest/services/compute/xml/servers_client.py @@ -349,8 +349,11 @@ class ServersClientXML(rest_client.RestClient): networks = xml_utils.Element("networks") server.append(networks) for network in kwargs['networks']: - s = xml_utils.Element("network", uuid=network['uuid'], - fixed_ip=network['fixed_ip']) + if 'fixed_ip' in network: + s = xml_utils.Element("network", uuid=network['uuid'], + fixed_ip=network['fixed_ip']) + else: + s = xml_utils.Element("network", uuid=network['uuid']) networks.append(s) if 'meta' in kwargs: |