blob: cda721c593ebe434c86fe644888dbdfa5ce14520 [file] [log] [blame]
ZhiQiang Fan39f97222013-09-20 04:49:44 +08001# Copyright 2012 OpenStack Foundation
Jay Pipesf38eaac2012-06-21 13:37:35 -04002# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
Sean Dague1937d092013-05-17 16:36:38 -040016from tempest.api.identity import base
Ken'ichi Ohmichi7bd25752017-03-10 10:45:39 -080017from tempest.lib.common.utils import data_utils
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080018from tempest.lib import decorators
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070019
20
Matthew Treinishdb2c5972014-01-31 22:18:59 +000021class TenantsTestJSON(base.BaseIdentityV2AdminTest):
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070022
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080023 @decorators.idempotent_id('16c6e05c-6112-4b0e-b83f-5e43f221b6b0')
Attila Fazekas40ec1232013-01-08 11:45:32 +010024 def test_tenant_list_delete(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050025 # Create several tenants and delete them
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070026 tenants = []
Sirushti Murugesan12dc9732016-07-13 22:49:17 +053027 for _ in range(3):
zhufl963d2c32017-04-20 15:44:58 +080028 tenant = self.setup_test_tenant()
Attila Fazekas40ec1232013-01-08 11:45:32 +010029 tenants.append(tenant)
Sirushti Murugesan935f2cc2016-07-12 19:48:24 +053030 tenant_ids = [tn['id'] for tn in tenants]
Daniel Melladob04da902015-11-20 17:43:12 +010031 body = self.tenants_client.list_tenants()['tenants']
Matthew Treinishc795b9e2014-06-09 17:01:10 -040032 found = [t for t in body if t['id'] in tenant_ids]
Attila Fazekas40ec1232013-01-08 11:45:32 +010033 self.assertEqual(len(found), len(tenants), 'Tenants not created')
34
35 for tenant in tenants:
Daniel Melladob04da902015-11-20 17:43:12 +010036 self.tenants_client.delete_tenant(tenant['id'])
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070037
Daniel Melladob04da902015-11-20 17:43:12 +010038 body = self.tenants_client.list_tenants()['tenants']
Attila Fazekas40ec1232013-01-08 11:45:32 +010039 found = [tenant for tenant in body if tenant['id'] in tenant_ids]
zhufl63f059e2017-06-12 13:56:18 +080040 self.assertEmpty(found, 'Tenants failed to delete')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070041
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080042 @decorators.idempotent_id('d25e9f24-1310-4d29-b61b-d91299c21d6d')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070043 def test_tenant_create_with_description(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050044 # Create tenant with a description
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000045 tenant_desc = data_utils.rand_name(name='desc')
zhufl963d2c32017-04-20 15:44:58 +080046 tenant = self.setup_test_tenant(description=tenant_desc)
Daniel Melladob04da902015-11-20 17:43:12 +010047 tenant_id = tenant['id']
48 desc1 = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070049 self.assertEqual(desc1, tenant_desc, 'Description should have '
Zhongyue Luo79d8d362012-09-25 13:49:27 +080050 'been sent in response for create')
Daniel Melladob04da902015-11-20 17:43:12 +010051 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070052 desc2 = body['description']
53 self.assertEqual(desc2, tenant_desc, 'Description does not appear'
Zhongyue Luo79d8d362012-09-25 13:49:27 +080054 'to be set')
Daniel Melladob04da902015-11-20 17:43:12 +010055 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070056
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080057 @decorators.idempotent_id('670bdddc-1cd7-41c7-b8e2-751cfb67df50')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070058 def test_tenant_create_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050059 # Create a tenant that is enabled
zhufl963d2c32017-04-20 15:44:58 +080060 tenant = self.setup_test_tenant(enabled=True)
Daniel Melladob04da902015-11-20 17:43:12 +010061 tenant_id = tenant['id']
lkuchlana7aac722018-05-13 13:44:40 +030062 self.assertTrue(tenant['enabled'], 'Enable should be True in response')
Daniel Melladob04da902015-11-20 17:43:12 +010063 body = self.tenants_client.show_tenant(tenant_id)['tenant']
lkuchlana7aac722018-05-13 13:44:40 +030064 self.assertTrue(body['enabled'], 'Enable should be True in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +010065 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070066
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080067 @decorators.idempotent_id('3be22093-b30f-499d-b772-38340e5e16fb')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070068 def test_tenant_create_not_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050069 # Create a tenant that is not enabled
zhufl963d2c32017-04-20 15:44:58 +080070 tenant = self.setup_test_tenant(enabled=False)
Daniel Melladob04da902015-11-20 17:43:12 +010071 tenant_id = tenant['id']
lkuchlana7aac722018-05-13 13:44:40 +030072 self.assertFalse(tenant['enabled'],
Vincent Hou6b8a7b72012-08-25 01:24:33 +080073 'Enable should be False in response')
Daniel Melladob04da902015-11-20 17:43:12 +010074 body = self.tenants_client.show_tenant(tenant_id)['tenant']
lkuchlana7aac722018-05-13 13:44:40 +030075 self.assertFalse(body['enabled'],
Vincent Hou6b8a7b72012-08-25 01:24:33 +080076 'Enable should be False in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +010077 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070078
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080079 @decorators.idempotent_id('781f2266-d128-47f3-8bdb-f70970add238')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070080 def test_tenant_update_name(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050081 # Update name attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000082 t_name1 = data_utils.rand_name(name='tenant')
zhufl963d2c32017-04-20 15:44:58 +080083 tenant = self.setup_test_tenant(name=t_name1)
84 t_id = tenant['id']
85 resp1_name = tenant['name']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070086
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000087 t_name2 = data_utils.rand_name(name='tenant2')
Daniel Melladob04da902015-11-20 17:43:12 +010088 body = self.tenants_client.update_tenant(t_id, name=t_name2)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070089 resp2_name = body['name']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070090 self.assertNotEqual(resp1_name, resp2_name)
91
Daniel Melladob04da902015-11-20 17:43:12 +010092 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070093 resp3_name = body['name']
94
95 self.assertNotEqual(resp1_name, resp3_name)
96 self.assertEqual(t_name1, resp1_name)
97 self.assertEqual(resp2_name, resp3_name)
98
Daniel Melladob04da902015-11-20 17:43:12 +010099 self.tenants_client.delete_tenant(t_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700100
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -0800101 @decorators.idempotent_id('859fcfe1-3a03-41ef-86f9-b19a47d1cd87')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700102 def test_tenant_update_desc(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500103 # Update description attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000104 t_desc = data_utils.rand_name(name='desc')
zhufl963d2c32017-04-20 15:44:58 +0800105 tenant = self.setup_test_tenant(description=t_desc)
Daniel Melladob04da902015-11-20 17:43:12 +0100106 t_id = tenant['id']
107 resp1_desc = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700108
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000109 t_desc2 = data_utils.rand_name(name='desc2')
Daniel Melladob04da902015-11-20 17:43:12 +0100110 body = self.tenants_client.update_tenant(t_id, description=t_desc2)
111 updated_tenant = body['tenant']
112 resp2_desc = updated_tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700113 self.assertNotEqual(resp1_desc, resp2_desc)
114
Daniel Melladob04da902015-11-20 17:43:12 +0100115 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700116 resp3_desc = body['description']
117
118 self.assertNotEqual(resp1_desc, resp3_desc)
119 self.assertEqual(t_desc, resp1_desc)
120 self.assertEqual(resp2_desc, resp3_desc)
121
Daniel Melladob04da902015-11-20 17:43:12 +0100122 self.tenants_client.delete_tenant(t_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700123
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -0800124 @decorators.idempotent_id('8fc8981f-f12d-4c66-9972-2bdcf2bc2e1a')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700125 def test_tenant_update_enable(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500126 # Update the enabled attribute of a tenant
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700127 t_en = False
zhufl963d2c32017-04-20 15:44:58 +0800128 tenant = self.setup_test_tenant(enabled=t_en)
Daniel Melladob04da902015-11-20 17:43:12 +0100129 t_id = tenant['id']
130 resp1_en = tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700131
132 t_en2 = True
Daniel Melladob04da902015-11-20 17:43:12 +0100133 body = self.tenants_client.update_tenant(t_id, enabled=t_en2)
134 updated_tenant = body['tenant']
135 resp2_en = updated_tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700136 self.assertNotEqual(resp1_en, resp2_en)
137
Daniel Melladob04da902015-11-20 17:43:12 +0100138 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700139 resp3_en = body['enabled']
140
141 self.assertNotEqual(resp1_en, resp3_en)
lkuchlana7aac722018-05-13 13:44:40 +0300142 self.assertFalse(tenant['enabled'])
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700143 self.assertEqual(resp2_en, resp3_en)
144
Daniel Melladob04da902015-11-20 17:43:12 +0100145 self.tenants_client.delete_tenant(t_id)