Reuse the right detected role name 19/59719/2
authorCédric Ollivier <cedric.ollivier@orange.com>
Wed, 11 Jul 2018 18:58:04 +0000 (20:58 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Wed, 11 Jul 2018 19:26:25 +0000 (21:26 +0200)
It completes "Try to get Member or member role" [1][2].

[1] https://gerrit.opnfv.org/gerrit/#/c/59661/
[2] https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-master/144/console

Change-Id: Ib38b513906b08d6f85834e03f5415e83b66b733b
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 1222e8c0f3699c5d74c54df11e5cdf00fd468b59)

functest/core/tenantnetwork.py

index 328fb33..7b838c0 100644 (file)
@@ -47,6 +47,7 @@ class NewProject(object):
         self.password = None
         self.domain = None
         self.role = None
+        self.role_name = None
 
     def create(self):
         """Create projects/users"""
@@ -68,16 +69,19 @@ class NewProject(object):
             domain_id=self.domain.id)
         self.__logger.debug("user: %s", self.user)
         try:
-            if not self.orig_cloud.get_role(
-                    self.default_member) and not self.orig_cloud.get_role(
-                        self.default_member.lower()):
+            if self.orig_cloud.get_role(self.default_member):
+                self.role_name = self.default_member
+            elif self.orig_cloud.get_role(self.default_member.lower()):
+                self.role_name = self.default_member.lower()
+            else:
                 raise Exception("Cannot detect {}".format(self.default_member))
         except Exception:  # pylint: disable=broad-except
             self.__logger.info("Creating default role %s", self.default_member)
             self.role = self.orig_cloud.create_role(self.default_member)
+            self.role_name = self.role.name
             self.__logger.debug("role: %s", self.role)
         self.orig_cloud.grant_role(
-            self.default_member, user=self.user.id, project=self.project.id,
+            self.role_name, user=self.user.id, project=self.project.id,
             domain=self.domain.id)
         osconfig = os_client_config.config.OpenStackConfig()
         osconfig.cloud_config[