blob: 1aa80df554bf6b40bd7e5ea4cadf551984a7ac06 [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
llg821243b20502014-02-22 10:32:49 +080016from six import moves
17
Sean Dague1937d092013-05-17 16:36:38 -040018from tempest.api.identity import base
Fei Long Wangd39431f2015-05-14 11:30:48 +120019from tempest.common.utils import data_utils
Matthew Treinish5c660ab2014-05-18 21:14:36 -040020from tempest import test
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070021
22
Matthew Treinishdb2c5972014-01-31 22:18:59 +000023class TenantsTestJSON(base.BaseIdentityV2AdminTest):
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070024
Chris Hoge7579c1a2015-02-26 14:12:15 -080025 @test.idempotent_id('16c6e05c-6112-4b0e-b83f-5e43f221b6b0')
Attila Fazekas40ec1232013-01-08 11:45:32 +010026 def test_tenant_list_delete(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050027 # Create several tenants and delete them
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070028 tenants = []
llg821243b20502014-02-22 10:32:49 +080029 for _ in moves.xrange(3):
huangtianhuab0993eb2013-09-30 18:07:15 +080030 tenant_name = data_utils.rand_name(name='tenant-new')
ghanshyam7668fad2016-06-15 18:17:39 +090031 tenant = self.tenants_client.create_tenant(
32 name=tenant_name)['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +010033 self.data.tenants.append(tenant)
34 tenants.append(tenant)
35 tenant_ids = map(lambda x: x['id'], tenants)
Daniel Melladob04da902015-11-20 17:43:12 +010036 body = self.tenants_client.list_tenants()['tenants']
Matthew Treinishc795b9e2014-06-09 17:01:10 -040037 found = [t for t in body if t['id'] in tenant_ids]
Attila Fazekas40ec1232013-01-08 11:45:32 +010038 self.assertEqual(len(found), len(tenants), 'Tenants not created')
39
40 for tenant in tenants:
Daniel Melladob04da902015-11-20 17:43:12 +010041 self.tenants_client.delete_tenant(tenant['id'])
Attila Fazekas40ec1232013-01-08 11:45:32 +010042 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070043
Daniel Melladob04da902015-11-20 17:43:12 +010044 body = self.tenants_client.list_tenants()['tenants']
Attila Fazekas40ec1232013-01-08 11:45:32 +010045 found = [tenant for tenant in body if tenant['id'] in tenant_ids]
46 self.assertFalse(any(found), 'Tenants failed to delete')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070047
Chris Hoge7579c1a2015-02-26 14:12:15 -080048 @test.idempotent_id('d25e9f24-1310-4d29-b61b-d91299c21d6d')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070049 def test_tenant_create_with_description(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050050 # Create tenant with a description
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000051 tenant_name = data_utils.rand_name(name='tenant')
52 tenant_desc = data_utils.rand_name(name='desc')
ghanshyam7668fad2016-06-15 18:17:39 +090053 body = self.tenants_client.create_tenant(name=tenant_name,
Daniel Melladob04da902015-11-20 17:43:12 +010054 description=tenant_desc)
55 tenant = body['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +010056 self.data.tenants.append(tenant)
Daniel Melladob04da902015-11-20 17:43:12 +010057 tenant_id = tenant['id']
58 desc1 = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070059 self.assertEqual(desc1, tenant_desc, 'Description should have '
Zhongyue Luo79d8d362012-09-25 13:49:27 +080060 'been sent in response for create')
Daniel Melladob04da902015-11-20 17:43:12 +010061 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070062 desc2 = body['description']
63 self.assertEqual(desc2, tenant_desc, 'Description does not appear'
Zhongyue Luo79d8d362012-09-25 13:49:27 +080064 'to be set')
Daniel Melladob04da902015-11-20 17:43:12 +010065 self.tenants_client.delete_tenant(tenant_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +010066 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070067
Chris Hoge7579c1a2015-02-26 14:12:15 -080068 @test.idempotent_id('670bdddc-1cd7-41c7-b8e2-751cfb67df50')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070069 def test_tenant_create_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050070 # Create a tenant that is enabled
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000071 tenant_name = data_utils.rand_name(name='tenant')
ghanshyam7668fad2016-06-15 18:17:39 +090072 body = self.tenants_client.create_tenant(name=tenant_name,
73 enabled=True)
Daniel Melladob04da902015-11-20 17:43:12 +010074 tenant = body['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +010075 self.data.tenants.append(tenant)
Daniel Melladob04da902015-11-20 17:43:12 +010076 tenant_id = tenant['id']
77 en1 = tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070078 self.assertTrue(en1, 'Enable should be True in response')
Daniel Melladob04da902015-11-20 17:43:12 +010079 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070080 en2 = body['enabled']
81 self.assertTrue(en2, 'Enable should be True in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +010082 self.tenants_client.delete_tenant(tenant_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +010083 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070084
Chris Hoge7579c1a2015-02-26 14:12:15 -080085 @test.idempotent_id('3be22093-b30f-499d-b772-38340e5e16fb')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070086 def test_tenant_create_not_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050087 # Create a tenant that is not enabled
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000088 tenant_name = data_utils.rand_name(name='tenant')
ghanshyam7668fad2016-06-15 18:17:39 +090089 body = self.tenants_client.create_tenant(name=tenant_name,
90 enabled=False)
Daniel Melladob04da902015-11-20 17:43:12 +010091 tenant = body['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +010092 self.data.tenants.append(tenant)
Daniel Melladob04da902015-11-20 17:43:12 +010093 tenant_id = tenant['id']
94 en1 = tenant['enabled']
Vincent Hou6b8a7b72012-08-25 01:24:33 +080095 self.assertEqual('false', str(en1).lower(),
96 'Enable should be False in response')
Daniel Melladob04da902015-11-20 17:43:12 +010097 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070098 en2 = body['enabled']
Vincent Hou6b8a7b72012-08-25 01:24:33 +080099 self.assertEqual('false', str(en2).lower(),
100 'Enable should be False in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +0100101 self.tenants_client.delete_tenant(tenant_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +0100102 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700103
Chris Hoge7579c1a2015-02-26 14:12:15 -0800104 @test.idempotent_id('781f2266-d128-47f3-8bdb-f70970add238')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700105 def test_tenant_update_name(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500106 # Update name attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000107 t_name1 = data_utils.rand_name(name='tenant')
ghanshyam7668fad2016-06-15 18:17:39 +0900108 body = self.tenants_client.create_tenant(name=t_name1)['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +0100109 tenant = body
110 self.data.tenants.append(tenant)
111
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700112 t_id = body['id']
113 resp1_name = body['name']
114
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000115 t_name2 = data_utils.rand_name(name='tenant2')
Daniel Melladob04da902015-11-20 17:43:12 +0100116 body = self.tenants_client.update_tenant(t_id, name=t_name2)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700117 resp2_name = body['name']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700118 self.assertNotEqual(resp1_name, resp2_name)
119
Daniel Melladob04da902015-11-20 17:43:12 +0100120 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700121 resp3_name = body['name']
122
123 self.assertNotEqual(resp1_name, resp3_name)
124 self.assertEqual(t_name1, resp1_name)
125 self.assertEqual(resp2_name, resp3_name)
126
Daniel Melladob04da902015-11-20 17:43:12 +0100127 self.tenants_client.delete_tenant(t_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +0100128 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700129
Chris Hoge7579c1a2015-02-26 14:12:15 -0800130 @test.idempotent_id('859fcfe1-3a03-41ef-86f9-b19a47d1cd87')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700131 def test_tenant_update_desc(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500132 # Update description attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000133 t_name = data_utils.rand_name(name='tenant')
134 t_desc = data_utils.rand_name(name='desc')
ghanshyam7668fad2016-06-15 18:17:39 +0900135 body = self.tenants_client.create_tenant(name=t_name,
136 description=t_desc)
Daniel Melladob04da902015-11-20 17:43:12 +0100137 tenant = body['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +0100138 self.data.tenants.append(tenant)
139
Daniel Melladob04da902015-11-20 17:43:12 +0100140 t_id = tenant['id']
141 resp1_desc = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700142
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000143 t_desc2 = data_utils.rand_name(name='desc2')
Daniel Melladob04da902015-11-20 17:43:12 +0100144 body = self.tenants_client.update_tenant(t_id, description=t_desc2)
145 updated_tenant = body['tenant']
146 resp2_desc = updated_tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700147 self.assertNotEqual(resp1_desc, resp2_desc)
148
Daniel Melladob04da902015-11-20 17:43:12 +0100149 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700150 resp3_desc = body['description']
151
152 self.assertNotEqual(resp1_desc, resp3_desc)
153 self.assertEqual(t_desc, resp1_desc)
154 self.assertEqual(resp2_desc, resp3_desc)
155
Daniel Melladob04da902015-11-20 17:43:12 +0100156 self.tenants_client.delete_tenant(t_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +0100157 self.data.tenants.remove(tenant)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700158
Chris Hoge7579c1a2015-02-26 14:12:15 -0800159 @test.idempotent_id('8fc8981f-f12d-4c66-9972-2bdcf2bc2e1a')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700160 def test_tenant_update_enable(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500161 # Update the enabled attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000162 t_name = data_utils.rand_name(name='tenant')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700163 t_en = False
ghanshyam7668fad2016-06-15 18:17:39 +0900164 body = self.tenants_client.create_tenant(name=t_name, enabled=t_en)
Daniel Melladob04da902015-11-20 17:43:12 +0100165 tenant = body['tenant']
Attila Fazekas40ec1232013-01-08 11:45:32 +0100166 self.data.tenants.append(tenant)
167
Daniel Melladob04da902015-11-20 17:43:12 +0100168 t_id = tenant['id']
169 resp1_en = tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700170
171 t_en2 = True
Daniel Melladob04da902015-11-20 17:43:12 +0100172 body = self.tenants_client.update_tenant(t_id, enabled=t_en2)
173 updated_tenant = body['tenant']
174 resp2_en = updated_tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700175 self.assertNotEqual(resp1_en, resp2_en)
176
Daniel Melladob04da902015-11-20 17:43:12 +0100177 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700178 resp3_en = body['enabled']
179
180 self.assertNotEqual(resp1_en, resp3_en)
Vincent Hou6b8a7b72012-08-25 01:24:33 +0800181 self.assertEqual('false', str(resp1_en).lower())
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700182 self.assertEqual(resp2_en, resp3_en)
183
Daniel Melladob04da902015-11-20 17:43:12 +0100184 self.tenants_client.delete_tenant(t_id)
Attila Fazekas40ec1232013-01-08 11:45:32 +0100185 self.data.tenants.remove(tenant)