diff options
author | 2018-06-23 12:30:07 +0200 | |
---|---|---|
committer | 2018-07-03 19:32:56 +0200 | |
commit | 5013a09d75c533911889ec15cfb9001237e05131 (patch) | |
tree | 24d0c5331ead83f09d741a47b4891779e1d71755 /functest/core/tenantnetwork.py | |
parent | d5efbd5f0b8c4d6eb1cce507368e81b710903931 (diff) |
Fix user/project create operations
os_client_config creates a singleton which forbids the previous
processing. It also cleans remaining resources and allows
publishing public images (needed by Tempest)
Change-Id: I3a0ad8664b263d3ee8599efe2973465006d5750b
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit c717c43b1257e126296a4b1d697c8f6a72728855)
Diffstat (limited to 'functest/core/tenantnetwork.py')
-rw-r--r-- | functest/core/tenantnetwork.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/functest/core/tenantnetwork.py b/functest/core/tenantnetwork.py index 8e15b0b6f..e0325baa2 100644 --- a/functest/core/tenantnetwork.py +++ b/functest/core/tenantnetwork.py @@ -38,8 +38,8 @@ class NewProject(object): __logger = logging.getLogger(__name__) def __init__(self, cloud, case_name, guid): - self.orig_cloud = cloud self.cloud = None + self.orig_cloud = cloud self.case_name = case_name self.guid = guid self.project = None @@ -51,8 +51,7 @@ class NewProject(object): assert self.case_name password = str(uuid.uuid4()) domain = self.orig_cloud.get_domain( - name_or_id=self.orig_cloud.auth.get( - "project_domain_name", "Default")) + name_or_id="functest") self.project = self.orig_cloud.create_project( name='{}-project_{}'.format(self.case_name, self.guid), description="Created by OPNFV Functest: {}".format( @@ -62,15 +61,18 @@ class NewProject(object): self.user = self.orig_cloud.create_user( name='{}-user_{}'.format(self.case_name, self.guid), password=password, - default_project=self.project.id, domain_id=domain.id) self.__logger.debug("user: %s", self.user) - os.environ["OS_USERNAME"] = self.user.name - os.environ["OS_PROJECT_NAME"] = self.user.default_project_id - cloud_config = os_client_config.get_config() - self.cloud = shade.OpenStackCloud(cloud_config=cloud_config) - os.environ["OS_USERNAME"] = self.orig_cloud.auth["username"] - os.environ["OS_PROJECT_NAME"] = self.orig_cloud.auth["project_name"] + self.orig_cloud.grant_role( + "_member_", user=self.user.id, project=self.project.id, + domain=domain.id) + osconfig = os_client_config.config.OpenStackConfig() + osconfig.cloud_config[ + 'clouds']['envvars']['project_name'] = self.project.name + osconfig.cloud_config['clouds']['envvars']['username'] = self.user.name + osconfig.cloud_config['clouds']['envvars']['password'] = password + self.cloud = shade.OpenStackCloud( + cloud_config=osconfig.get_one_cloud()) def clean(self): """Remove projects/users""" @@ -81,7 +83,7 @@ class NewProject(object): self.orig_cloud.delete_user(self.user.id) self.orig_cloud.delete_project(self.project.id) except Exception: # pylint: disable=broad-except - self.__logger.exception("cannot clean all ressources") + self.__logger.exception("Cannot clean all ressources") class TenantNetwork1(testcase.TestCase): @@ -174,6 +176,7 @@ class TenantNetwork1(testcase.TestCase): assert self.cloud self.cloud.remove_router_interface(self.router, self.subnet.id) self.cloud.delete_router(self.router.id) + self.cloud.delete_subnet(self.subnet.id) self.cloud.delete_network(self.network.id) except Exception: # pylint: disable=broad-except self.__logger.exception("cannot clean all ressources") @@ -213,4 +216,4 @@ class TenantNetwork2(TenantNetwork1): assert self.project self.project.clean() except Exception: # pylint: disable=broad-except - self.__logger.exception("cannot clean all ressources") + self.__logger.exception("Cannot clean all ressources") |