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