From 0de13fc6067a659db34453a0f095b9001df95a83 Mon Sep 17 00:00:00 2001 From: liangcui Date: Mon, 10 Apr 2017 17:00:33 +0800 Subject: [PATCH] Fix the choice of default_role When there are two similiar roles in the context, such as "baremetal_admin", "admin", the rally will chose baremetal_admin rather than admin in create_user. To fix this, use "==" instead of "in". Change-Id: I6db08e0cd1b2ecfcc258298642dfe3208e00373e --- .../services/identity/keystone_v3.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/rally/plugins/openstack/services/identity/keystone_v3.py b/rally/plugins/openstack/services/identity/keystone_v3.py index f466b0c008..e2bce6582e 100644 --- a/rally/plugins/openstack/services/identity/keystone_v3.py +++ b/rally/plugins/openstack/services/identity/keystone_v3.py @@ -104,15 +104,22 @@ class KeystoneV3Service(service.Service, keystone_common.KeystoneMixin): if project_id: # we can't setup role without project_id - for role in self.list_roles(): - if default_role in role.name.lower(): + roles = self.list_roles() + for role in roles: + if default_role == role.name.lower(): self.add_role(role_id=role.id, user_id=user.id, project_id=project_id) - break - else: - LOG.warning("Unable to set %s role to created user." % - default_role) + return user + for role in roles: + if default_role == role.name.lower().strip("_"): + self.add_role(role_id=role.id, + user_id=user.id, + project_id=project_id) + return user + + LOG.warning("Unable to set %s role to created user." % + default_role) return user @atomic.action_timer("keystone_v3.create_users")