diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-10-14 20:52:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-10-14 20:52:09 +0000 |
commit | 74cbeaad1383bcf1c3d63f4aef8d16f56c7fa035 (patch) | |
tree | 5315506dd93999db03240cb4abb7657c10a65b2c | |
parent | 92de785fdb43d90ec3b8e3e471ffc5b1a1c7f465 (diff) | |
parent | 38edc05036e6129eefbfbe1e0193e45803fe7b83 (diff) | |
download | tempest-74cbeaad1383bcf1c3d63f4aef8d16f56c7fa035.tar.gz |
Merge "Verify network interfaces are in requested order"
-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: |