'A client that abstracts v2 and v3 identity operations.
This can be used for creating and tearing down projects in tests. It
should not be used for testing identity features.'

@property
def identity_utils(self):

    if (CONF.identity.auth_version == 'v2'):
        client = self.os_admin.identity_client
        users_client = self.os_admin.users_client
        project_client = self.os_admin.tenants_client
        roles_client = self.os_admin.roles_client
        domains_client = None
    else:
        client = self.os_admin.identity_v3_client
        users_client = self.os_admin.users_v3_client
        project_client = self.os_admin.projects_client
        roles_client = self.os_admin.roles_v3_client
        domains_client = self.os_admin.domains_client
    try:
        domain = client.auth_provider.credentials.project_domain_name
    except AttributeError:
        domain = 'Default'
    return cred_client.get_creds_client(client, project_client, users_client, roles_client, domains_client, project_domain_name=domain)
