Refactor cross_tenant_connectivity for tenant isolation
Closes-Bug: #1262613
Fetch tenant creds from isolated_creds if needed to allow for parallel
execution
Change-Id: I507899fd0b4a0bec3312bfb394363d9591b38282
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index e2ff1a7..f084ff9 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -207,7 +207,7 @@
cls.isolated_creds = isolated_creds.IsolatedCreds(
__name__, tempest_client=False)
- username, tenant_name, password = cls.credentials()
+ username, password, tenant_name = cls.credentials()
cls.manager = OfficialClientManager(username, password, tenant_name)
cls.compute_client = cls.manager.compute_client
@@ -222,12 +222,12 @@
@classmethod
def _get_credentials(cls, get_creds, prefix):
if cls.config.compute.allow_tenant_isolation:
- return get_creds()
-
- username = getattr(cls.config.identity, prefix + 'username')
- password = getattr(cls.config.identity, prefix + 'password')
- tenant_name = getattr(cls.config.identity, prefix + 'tenant_name')
- return username, tenant_name, password
+ username, tenant_name, password = get_creds()
+ else:
+ username = getattr(cls.config.identity, prefix + 'username')
+ password = getattr(cls.config.identity, prefix + 'password')
+ tenant_name = getattr(cls.config.identity, prefix + 'tenant_name')
+ return username, password, tenant_name
@classmethod
def credentials(cls):
diff --git a/tempest/scenario/test_cross_tenant_connectivity.py b/tempest/scenario/test_cross_tenant_connectivity.py
index ad2c271..faba987 100644
--- a/tempest/scenario/test_cross_tenant_connectivity.py
+++ b/tempest/scenario/test_cross_tenant_connectivity.py
@@ -143,10 +143,9 @@
@classmethod
def setUpClass(cls):
super(TestNetworkCrossTenant, cls).setUpClass()
+ alt_creds = cls.alt_credentials()
cls.alt_tenant_id = cls.manager._get_identity_client(
- cls.config.identity.alt_username,
- cls.config.identity.alt_password,
- cls.config.identity.alt_tenant_name
+ *alt_creds
).tenant_id
cls.check_preconditions()
# TODO(mnewby) Consider looking up entities as needed instead
@@ -161,15 +160,11 @@
cls.tenants = {}
cls.demo_tenant = cls.TenantProperties(
cls.tenant_id,
- cls.config.identity.username,
- cls.config.identity.password,
- cls.config.identity.tenant_name
+ *cls.credentials()
)
cls.alt_tenant = cls.TenantProperties(
cls.alt_tenant_id,
- cls.config.identity.alt_username,
- cls.config.identity.alt_password,
- cls.config.identity.alt_tenant_name
+ *alt_creds
)
for tenant in [cls.demo_tenant, cls.alt_tenant]:
cls.tenants[tenant.tenant_id] = tenant