From 68f1e5e8cd00b896815c4ca5dbebb78965220eff Mon Sep 17 00:00:00 2001 From: Artom Lifshitz Date: Fri, 3 Apr 2020 13:12:36 -0400 Subject: [PATCH] Pass clients to compute base's create_test_server Previously, create_test_server() in the base compute test class did not provide a way to create a server with admin privileges. This can be necessary when using APIs that are admin-only by default, for example the `host` parameter when creating a server in Nova microversion 2.74. This patch adds a clients kwarg to create_test_server(). This kwarg is then passed to compute.common's create_test_server() instead of the cls.os_primary clients that was harcoded previously. Change-Id: Ic47e6a4ced54739de9325bb14e332ba15cdb210f --- tempest/api/compute/base.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py index 8d0962ddd7..9cbdd1455e 100644 --- a/tempest/api/compute/base.py +++ b/tempest/api/compute/base.py @@ -226,7 +226,7 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, @classmethod def create_test_server(cls, validatable=False, volume_backed=False, - validation_resources=None, **kwargs): + validation_resources=None, clients=None, **kwargs): """Wrapper utility that returns a test server. This wrapper utility calls the common create test server and @@ -238,6 +238,7 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, :param volume_backed: Whether the instance is volume backed or not. :param validation_resources: Dictionary of validation resources as returned by `get_class_validation_resources`. + :param clients: Client manager, defaults to os_primary. :param kwargs: Extra arguments are passed down to the `compute.create_test_server` call. """ @@ -254,8 +255,11 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, not tenant_network): kwargs['networks'] = 'none' + if clients is None: + clients = cls.os_primary + body, servers = compute.create_test_server( - cls.os_primary, + clients, validatable, validation_resources=validation_resources, tenant_network=tenant_network, @@ -266,11 +270,11 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, # and then wait for all for server in servers: cls.addClassResourceCleanup(waiters.wait_for_server_termination, - cls.servers_client, server['id']) + clients.servers_client, server['id']) for server in servers: cls.addClassResourceCleanup( test_utils.call_and_ignore_notfound_exc, - cls.servers_client.delete_server, server['id']) + clients.servers_client.delete_server, server['id']) return body