Merge "Multi-server handling in base.py"
diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py
index 9883c00..48ef296 100644
--- a/tempest/api/compute/base.py
+++ b/tempest/api/compute/base.py
@@ -186,15 +186,24 @@
flavor = kwargs.get('flavor', cls.flavor_ref)
image_id = kwargs.get('image_id', cls.image_ref)
- resp, server = cls.servers_client.create_server(
+ resp, body = cls.servers_client.create_server(
name, image_id, flavor, **kwargs)
- cls.servers.append(server)
+
+ # handle the case of multiple servers
+ servers = [body]
+ if 'min_count' in kwargs or 'max_count' in kwargs:
+ # Get servers created which name match with name param.
+ r, b = cls.servers_client.list_servers()
+ servers = [s for s in b['servers'] if s['name'].startswith(name)]
+
+ cls.servers.extend(servers)
if 'wait_until' in kwargs:
- cls.servers_client.wait_for_server_status(
- server['id'], kwargs['wait_until'])
+ for server in servers:
+ cls.servers_client.wait_for_server_status(
+ server['id'], kwargs['wait_until'])
- return resp, server
+ return resp, body
def wait_for(self, condition):
"""Repeatedly calls condition() until a timeout."""
diff --git a/tempest/api/compute/servers/test_multiple_create.py b/tempest/api/compute/servers/test_multiple_create.py
index 63bb86d..9fde618 100644
--- a/tempest/api/compute/servers/test_multiple_create.py
+++ b/tempest/api/compute/servers/test_multiple_create.py
@@ -25,16 +25,6 @@
_interface = 'json'
_name = 'multiple-create-test'
- def _get_created_servers(self, name):
- """Get servers created which name match with name param."""
- resp, body = self.servers_client.list_servers()
- servers = body['servers']
- servers_created = []
- for server in servers:
- if server['name'].startswith(name):
- servers_created.append(server)
- return servers_created
-
def _generate_name(self):
return rand_name(self._name)
@@ -45,18 +35,6 @@
"""
kwargs['name'] = kwargs.get('name', self._generate_name())
resp, body = self.create_server(**kwargs)
- created_servers = self._get_created_servers(kwargs['name'])
- # NOTE(maurosr): append it to cls.servers list from base.BaseCompute
- # class.
- self.servers.extend(created_servers)
- # NOTE(maurosr): get a server list, check status of the ones with names
- # that match and wait for them become active. At a first look, since
- # they are building in parallel, wait inside the for doesn't seem be
- # harmful to the performance
- if wait_until is not None:
- for server in created_servers:
- self.servers_client.wait_for_server_status(server['id'],
- wait_until)
return resp, body