Move get_tenant_by_name to common part
get_tenant_by_name of keystone service client is just wrapper method
and it should be moved from the client for implementing it as library.
Partially implements blueprint consistent-service-method-names
Change-Id: Ic3f6c7aa4d69e296271c936f5ab9b188a29a2107
diff --git a/tempest/cmd/account_generator.py b/tempest/cmd/account_generator.py
index a90b0ce..c23b668 100755
--- a/tempest/cmd/account_generator.py
+++ b/tempest/cmd/account_generator.py
@@ -89,6 +89,7 @@
from oslo_log import log as logging
import yaml
+from tempest.common import identity
from tempest import config
from tempest import exceptions as exc
from tempest.services.identity.v2.json import identity_client
@@ -188,7 +189,7 @@
LOG.info('Tenants created')
for u in resources['users']:
try:
- tenant = identity_admin.get_tenant_by_name(u['tenant'])
+ tenant = identity.get_tenant_by_name(identity_admin, u['tenant'])
except tempest_lib.exceptions.NotFound:
LOG.error("Tenant: %s - not found" % u['tenant'])
continue
@@ -209,7 +210,7 @@
LOG.info('Users created')
if neutron_iso_networks:
for u in resources['users']:
- tenant = identity_admin.get_tenant_by_name(u['tenant'])
+ tenant = identity.get_tenant_by_name(identity_admin, u['tenant'])
network_name, router_name = create_network_resources(
network_admin, networks_admin, subnets_admin, tenant['id'],
u['name'])
@@ -218,7 +219,7 @@
LOG.info('Networks created')
for u in resources['users']:
try:
- tenant = identity_admin.get_tenant_by_name(u['tenant'])
+ tenant = identity.get_tenant_by_name(identity_admin, u['tenant'])
except tempest_lib.exceptions.NotFound:
LOG.error("Tenant: %s - not found" % u['tenant'])
continue
diff --git a/tempest/cmd/cleanup.py b/tempest/cmd/cleanup.py
index 239b4e9..09e3c9d 100644
--- a/tempest/cmd/cleanup.py
+++ b/tempest/cmd/cleanup.py
@@ -59,6 +59,7 @@
from tempest import clients
from tempest.cmd import cleanup_service
from tempest.common import credentials_factory as credentials
+from tempest.common import identity
from tempest import config
SAVED_STATE_JSON = "saved_state.json"
@@ -177,7 +178,8 @@
def _init_admin_ids(self):
id_cl = self.admin_mgr.identity_client
- tenant = id_cl.get_tenant_by_name(CONF.auth.admin_tenant_name)
+ tenant = identity.get_tenant_by_name(id_cl,
+ CONF.auth.admin_tenant_name)
self.admin_tenant_id = tenant['id']
user = id_cl.get_user_by_username(self.admin_tenant_id,
diff --git a/tempest/cmd/cleanup_service.py b/tempest/cmd/cleanup_service.py
index d2f6c03..4bed0d9 100644
--- a/tempest/cmd/cleanup_service.py
+++ b/tempest/cmd/cleanup_service.py
@@ -17,6 +17,7 @@
from oslo_log import log as logging
from tempest.common import credentials_factory as credentials
+from tempest.common import identity
from tempest import config
from tempest import test
@@ -87,7 +88,7 @@
id_cl = am.identity_client
networks = net_cl.list_networks()
- tenant = id_cl.get_tenant_by_name(tenant_name)
+ tenant = identity.get_tenant_by_name(id_cl, tenant_name)
t_id = tenant['id']
n_id = None
for net in networks['networks']:
diff --git a/tempest/cmd/javelin.py b/tempest/cmd/javelin.py
index 97d431a..c2feb23 100755
--- a/tempest/cmd/javelin.py
+++ b/tempest/cmd/javelin.py
@@ -120,6 +120,7 @@
from tempest_lib.services.compute import flavors_client
import yaml
+from tempest.common import identity
from tempest.common import waiters
from tempest import config
from tempest.services.compute.json import floating_ips_client
@@ -295,7 +296,7 @@
def destroy_tenants(tenants):
admin = keystone_admin()
for tenant in tenants:
- tenant_id = admin.identity.get_tenant_by_name(tenant)['id']
+ tenant_id = identity.get_tenant_by_name(admin.identity, tenant)['id']
admin.identity.delete_tenant(tenant_id)
##############
@@ -347,7 +348,7 @@
admin = keystone_admin()
for u in users:
try:
- tenant = admin.identity.get_tenant_by_name(u['tenant'])
+ tenant = identity.get_tenant_by_name(admin.identity, u['tenant'])
except lib_exc.NotFound:
LOG.error("Tenant: %s - not found" % u['tenant'])
continue
@@ -365,7 +366,8 @@
def destroy_users(users):
admin = keystone_admin()
for user in users:
- tenant_id = admin.identity.get_tenant_by_name(user['tenant'])['id']
+ tenant_id = identity.get_tenant_by_name(admin.identity,
+ user['tenant'])['id']
user_id = admin.identity.get_user_by_username(tenant_id,
user['name'])['id']
admin.identity.delete_user(user_id)
@@ -376,7 +378,7 @@
LOG.info("Collecting users")
admin = keystone_admin()
for u in users:
- tenant = admin.identity.get_tenant_by_name(u['tenant'])
+ tenant = identity.get_tenant_by_name(admin.identity, u['tenant'])
u['tenant_id'] = tenant['id']
USERS[u['name']] = u
body = admin.identity.get_user_by_username(tenant['id'], u['name'])
diff --git a/tempest/common/identity.py b/tempest/common/identity.py
new file mode 100644
index 0000000..303f620
--- /dev/null
+++ b/tempest/common/identity.py
@@ -0,0 +1,24 @@
+# Copyright 2015 NEC Corporation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from tempest_lib import exceptions as lib_exc
+
+
+def get_tenant_by_name(client, tenant_name):
+ tenants = client.list_tenants()['tenants']
+ for tenant in tenants:
+ if tenant['name'] == tenant_name:
+ return tenant
+ raise lib_exc.NotFound('No such tenant(%s) in %s' % (tenant_name, tenants))
diff --git a/tempest/services/identity/v2/json/identity_client.py b/tempest/services/identity/v2/json/identity_client.py
index b27f036..aef7884 100644
--- a/tempest/services/identity/v2/json/identity_client.py
+++ b/tempest/services/identity/v2/json/identity_client.py
@@ -119,13 +119,6 @@
body = json.loads(body)
return service_client.ResponseBody(resp, body)
- def get_tenant_by_name(self, tenant_name):
- tenants = self.list_tenants()['tenants']
- for tenant in tenants:
- if tenant['name'] == tenant_name:
- return tenant
- raise lib_exc.NotFound('No such tenant')
-
def update_tenant(self, tenant_id, **kwargs):
"""Updates a tenant."""
body = self.show_tenant(tenant_id)['tenant']
diff --git a/tempest/tests/cmd/test_javelin.py b/tempest/tests/cmd/test_javelin.py
index fc3d984..ea0b7a7 100644
--- a/tempest/tests/cmd/test_javelin.py
+++ b/tempest/tests/cmd/test_javelin.py
@@ -106,8 +106,9 @@
self.assertFalse(mocked_function.called)
def test_create_users(self):
- self.fake_client.identity.get_tenant_by_name.return_value = \
- self.fake_object['tenant']
+ self.useFixture(mockpatch.Patch(
+ 'tempest.common.identity.get_tenant_by_name',
+ return_value=self.fake_object['tenant']))
self.fake_client.identity.get_user_by_username.side_effect = \
lib_exc.NotFound("user is not found")
self.useFixture(mockpatch.PatchObject(javelin, "keystone_admin",
@@ -125,8 +126,9 @@
enabled=True)
def test_create_user_missing_tenant(self):
- self.fake_client.identity.get_tenant_by_name.side_effect = \
- lib_exc.NotFound("tenant is not found")
+ self.useFixture(mockpatch.Patch(
+ 'tempest.common.identity.get_tenant_by_name',
+ side_effect=lib_exc.NotFound("tenant is not found")))
self.useFixture(mockpatch.PatchObject(javelin, "keystone_admin",
return_value=self.fake_client))
@@ -289,8 +291,9 @@
fake_tenant = self.fake_object['tenant']
fake_auth = self.fake_client
- fake_auth.identity.get_tenant_by_name.return_value = fake_tenant
-
+ self.useFixture(mockpatch.Patch(
+ 'tempest.common.identity.get_tenant_by_name',
+ return_value=fake_tenant))
self.useFixture(mockpatch.PatchObject(javelin, "keystone_admin",
return_value=fake_auth))
javelin.destroy_tenants([fake_tenant])
@@ -304,7 +307,8 @@
fake_tenant = self.fake_object['tenant']
fake_auth = self.fake_client
- fake_auth.identity.get_tenant_by_name.return_value = fake_tenant
+ fake_auth.identity.list_tenants.return_value = \
+ {'tenants': [fake_tenant]}
fake_auth.identity.get_user_by_username.return_value = fake_user
self.useFixture(mockpatch.PatchObject(javelin, "keystone_admin",