fix the CI error 01/50201/3
authordongwenjuan <dong.wenjuan@zte.com.cn>
Mon, 8 Jan 2018 06:42:03 +0000 (14:42 +0800)
committerdongwenjuan <dong.wenjuan@zte.com.cn>
Tue, 9 Jan 2018 01:45:55 +0000 (09:45 +0800)
Change-Id: I0b60e6f1e15cbe556c7555186352d28490b98acc
Signed-off-by: dongwenjuan <dong.wenjuan@zte.com.cn>
doctor_tests/user.py

index 5598a2d..a6f58d9 100644 (file)
@@ -13,6 +13,7 @@ from oslo_config import cfg
 from doctor_tests.identity_auth import get_session
 from doctor_tests.os_clients import keystone_client
 from doctor_tests.os_clients import nova_client
+from keystoneclient import exceptions as ks_exceptions
 
 
 OPTS = [
@@ -136,12 +137,15 @@ class User(object):
         roles_for_user = self.roles_for_admin \
             if is_admin else self.roles_for_user
 
-        if not self.keystone.roles.check(role, user=user, project=project):
+        try:
+            self.keystone.roles.check(role, user=user, project=project)
+            self.log.info('Already grant a role:%s to user: %s on'
+                          ' project: %s'
+                          % (role_name, user_name,
+                             self.conf.doctor_project))
+        except ks_exceptions.NotFound:
             self.keystone.roles.grant(role, user=user, project=project)
             roles_for_user[role_name] = role
-        else:
-            self.log.info('Already grant a role:%s to user: %s on project: %s'
-                          % (role_name, user_name, self.conf.doctor_project))
 
     def delete(self):
         """delete the test user, project and role"""