Refactor Tempest to be parallel-test friendly
* Allows a tenant/user to be created by the base test
class, allowing isolation of the tests. The base
compute test case class now controls what users
and tenants get created for the test case
* Moves identity admin stuff into appropriate directory
* Removes _multiprocess_shared_ to force setUpClass to
run for every test case.
* Adds setup.cfg for use with openstack.nose_plugin
* run_test.sh refactoring to make running smoketests easier
Change-Id: I3ea4c44a8c194d7ae2833b5443df7678924bcd5d
diff --git a/tempest/config.py b/tempest/config.py
index 08e90fd..ce79044 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -90,11 +90,41 @@
return self.get("strategy", 'keystone')
+class IdentityAdminConfig(BaseConfig):
+
+ SECTION_NAME = "identity-admin"
+
+ @property
+ def username(self):
+ """Username to use for Identity Admin API requests"""
+ return self.get("username", "admin")
+
+ @property
+ def tenant_name(self):
+ """Tenant name to use for Identity Admin API requests"""
+ return self.get("tenant_name", "admin")
+
+ @property
+ def password(self):
+ """API key to use for Identity Admin API requests"""
+ return self.get("password", "pass")
+
+
class ComputeConfig(BaseConfig):
SECTION_NAME = "compute"
@property
+ def allow_tenant_isolation(self):
+ """
+ Allows test cases to create/destroy tenants and users. This option
+ enables isolated test cases and better parallel execution,
+ but also requires that OpenStack Identity API admin credentials
+ are known.
+ """
+ return self.get("allow_tenant_isolation", 'false').lower() != 'false'
+
+ @property
def username(self):
"""Username to use for Nova API requests."""
return self.get("username", "demo")
@@ -323,6 +353,7 @@
self.compute = ComputeConfig(self._conf)
self.compute_admin = ComputeAdminConfig(self._conf)
self.identity = IdentityConfig(self._conf)
+ self.identity_admin = IdentityAdminConfig(self._conf)
self.images = ImagesConfig(self._conf)
self.network = NetworkConfig(self._conf)