Full response for v3 IdentityClient methods
Provide the entire response object for all methods of the v3 IdentityClient
partially implements: blueprint method-return-value-and-move-service-clients-to-lib
Change-Id: Idf3a09252dc3c7f71e1841ebd46223603a3bd285
diff --git a/tempest/common/isolated_creds.py b/tempest/common/isolated_creds.py
index 7888811..6dca3a3 100644
--- a/tempest/common/isolated_creds.py
+++ b/tempest/common/isolated_creds.py
@@ -45,6 +45,8 @@
def create_user(self, username, password, project, email):
user = self.identity_client.create_user(
username, password, project['id'], email)
+ if 'user' in user:
+ user = user['user']
return user
@abc.abstractmethod
@@ -113,7 +115,7 @@
# Domain names must be unique, in any case a list is returned,
# selecting the first (and only) element
self.creds_domain = self.identity_client.list_domains(
- params={'name': domain_name})[0]
+ params={'name': domain_name})['domains'][0]
except lib_exc.NotFound:
# TODO(andrea) we could probably create the domain on the fly
msg = "Configured domain %s could not be found" % domain_name
@@ -122,7 +124,7 @@
def create_project(self, name, description):
project = self.identity_client.create_project(
name=name, description=description,
- domain_id=self.creds_domain['id'])
+ domain_id=self.creds_domain['id'])['project']
return project
def get_credentials(self, user, project, password):
@@ -136,6 +138,10 @@
def delete_project(self, project_id):
self.identity_client.delete_project(project_id)
+ def _list_roles(self):
+ roles = self.identity_client.list_roles()['roles']
+ return roles
+
def get_creds_client(identity_client, project_domain_name=None):
if isinstance(identity_client, v2_identity.IdentityClient):
@@ -206,6 +212,8 @@
email = data_utils.rand_name(root) + suffix + "@example.com"
user = self.creds_client.create_user(
username, user_password, project, email)
+ if 'user' in user:
+ user = user['user']
role_assigned = False
if admin:
self.creds_client.assign_user_role(user, project,