Add tests for server-group Nova V2 APIs
This patch adds the JSON tests for following server-group Nova V2 APIs
1. server-group create
2. server-group delete
3. server-group list
4. server-group get
It Also adds the clients for JSON
Closes-Bug: 1297933
Change-Id: Iee2717872d58a715f9e012218a67bf040d2abe80
diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py
index edeb2fc..65ef4f0 100644
--- a/tempest/api/compute/base.py
+++ b/tempest/api/compute/base.py
@@ -54,6 +54,7 @@
cls.images = []
cls.multi_user = cls.get_multi_user()
cls.security_groups = []
+ cls.server_groups = []
if cls._api_version == 2:
cls.servers_client = cls.os.servers_client
@@ -191,11 +192,24 @@
pass
@classmethod
+ def clear_server_groups(cls):
+ for server_group_id in cls.server_groups:
+ try:
+ cls.client.delete_server_group(server_group_id)
+ except exceptions.NotFound:
+ # The server-group may have already been deleted which is OK.
+ pass
+ except Exception:
+ LOG.exception('Exception raised deleting server-group %s',
+ server_group_id)
+
+ @classmethod
def tearDownClass(cls):
cls.clear_images()
cls.clear_servers()
cls.clear_security_groups()
cls.clear_isolated_creds()
+ cls.clear_server_groups()
super(BaseComputeTest, cls).tearDownClass()
@classmethod
@@ -249,6 +263,16 @@
return resp, body
+ @classmethod
+ def create_test_server_group(cls, name="", policy=[]):
+ if not name:
+ name = data_utils.rand_name(cls.__name__ + "-Server-Group")
+ if not policy:
+ policy = ['affinity']
+ resp, body = cls.servers_client.create_server_group(name, policy)
+ cls.server_groups.append(body)
+ return resp, body
+
def wait_for(self, condition):
"""Repeatedly calls condition() until a timeout."""
start_time = int(time.time())