nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 1 | # Copyright 2013 OpenStack Foundation |
| 2 | # 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 | |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 16 | from tempest.api.identity import base |
| 17 | from tempest import config |
Ken'ichi Ohmichi | 7bd2575 | 2017-03-10 10:45:39 -0800 | [diff] [blame] | 18 | from tempest.lib.common.utils import data_utils |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 19 | from tempest.lib.common.utils import test_utils |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 20 | from tempest.lib import decorators |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 21 | |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 22 | CONF = config.CONF |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 23 | |
| 24 | |
Matthew Treinish | db2c597 | 2014-01-31 22:18:59 +0000 | [diff] [blame] | 25 | class DomainsTestJSON(base.BaseIdentityV3AdminTest): |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 26 | |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 27 | @classmethod |
| 28 | def resource_setup(cls): |
| 29 | super(DomainsTestJSON, cls).resource_setup() |
| 30 | # Create some test domains to be used during tests |
| 31 | # One of those domains will be disabled |
| 32 | cls.setup_domains = list() |
| 33 | for i in range(3): |
zhufl | 2b33c1a | 2017-04-24 17:33:48 +0800 | [diff] [blame] | 34 | domain = cls.create_domain(enabled=i < 2) |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 35 | cls.setup_domains.append(domain) |
| 36 | |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 37 | @decorators.idempotent_id('8cf516ef-2114-48f1-907b-d32726c734d4') |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 38 | def test_list_domains(self): |
Attila Fazekas | f7f34f9 | 2013-08-01 17:01:44 +0200 | [diff] [blame] | 39 | # Test to list domains |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 40 | fetched_ids = list() |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 41 | # List and Verify Domains |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 42 | body = self.domains_client.list_domains()['domains'] |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 43 | for d in body: |
| 44 | fetched_ids.append(d['id']) |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 45 | missing_doms = [d for d in self.setup_domains |
| 46 | if d['id'] not in fetched_ids] |
Masayuki Igawa | f9009b4 | 2017-04-10 14:49:29 +0900 | [diff] [blame] | 47 | self.assertEmpty(missing_doms) |
nayna-patel | 4df72dc | 2013-05-29 10:27:24 +0000 | [diff] [blame] | 48 | |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 49 | @decorators.idempotent_id('c6aee07b-4981-440c-bb0b-eb598f58ffe9') |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 50 | def test_list_domains_filter_by_name(self): |
| 51 | # List domains filtering by name |
| 52 | params = {'name': self.setup_domains[0]['name']} |
| 53 | fetched_domains = self.domains_client.list_domains( |
ghanshyam | 8af17d6 | 2016-08-01 16:19:42 +0900 | [diff] [blame] | 54 | **params)['domains'] |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 55 | # Verify the filtered list is correct, domain names are unique |
| 56 | # so exactly one domain should be found with the provided name |
| 57 | self.assertEqual(1, len(fetched_domains)) |
| 58 | self.assertEqual(self.setup_domains[0]['name'], |
| 59 | fetched_domains[0]['name']) |
| 60 | |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 61 | @decorators.idempotent_id('3fd19840-65c1-43f8-b48c-51bdd066dff9') |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 62 | def test_list_domains_filter_by_enabled(self): |
| 63 | # List domains filtering by enabled domains |
| 64 | params = {'enabled': True} |
| 65 | fetched_domains = self.domains_client.list_domains( |
ghanshyam | 8af17d6 | 2016-08-01 16:19:42 +0900 | [diff] [blame] | 66 | **params)['domains'] |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 67 | # Verify the filtered list is correct |
| 68 | self.assertIn(self.setup_domains[0], fetched_domains) |
| 69 | self.assertIn(self.setup_domains[1], fetched_domains) |
| 70 | for domain in fetched_domains: |
| 71 | self.assertEqual(True, domain['enabled']) |
| 72 | |
Jordan Pittier | 3b46d27 | 2017-04-12 16:17:28 +0200 | [diff] [blame] | 73 | @decorators.attr(type='smoke') |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 74 | @decorators.idempotent_id('f2f5b44a-82e8-4dad-8084-0661ea3b18cf') |
nayna-patel | 049e157 | 2013-06-19 09:22:35 +0000 | [diff] [blame] | 75 | def test_create_update_delete_domain(self): |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 76 | # Create domain |
Ken'ichi Ohmichi | 9650847 | 2015-03-23 01:43:42 +0000 | [diff] [blame] | 77 | d_name = data_utils.rand_name('domain') |
| 78 | d_desc = data_utils.rand_name('domain-desc') |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 79 | domain = self.domains_client.create_domain( |
ghanshyam | 8af17d6 | 2016-08-01 16:19:42 +0900 | [diff] [blame] | 80 | name=d_name, description=d_desc)['domain'] |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 81 | self.addCleanup(test_utils.call_and_ignore_notfound_exc, |
zhufl | eed21d7 | 2017-11-07 13:03:31 +0800 | [diff] [blame] | 82 | self.delete_domain, domain['id']) |
nayna-patel | 049e157 | 2013-06-19 09:22:35 +0000 | [diff] [blame] | 83 | self.assertIn('description', domain) |
| 84 | self.assertIn('name', domain) |
| 85 | self.assertIn('enabled', domain) |
| 86 | self.assertIn('links', domain) |
| 87 | self.assertIsNotNone(domain['id']) |
| 88 | self.assertEqual(d_name, domain['name']) |
| 89 | self.assertEqual(d_desc, domain['description']) |
Andrea Frittoli | c097835 | 2015-02-06 15:57:40 +0000 | [diff] [blame] | 90 | self.assertEqual(True, domain['enabled']) |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 91 | # Update domain |
Ken'ichi Ohmichi | 9650847 | 2015-03-23 01:43:42 +0000 | [diff] [blame] | 92 | new_desc = data_utils.rand_name('new-desc') |
| 93 | new_name = data_utils.rand_name('new-name') |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 94 | updated_domain = self.domains_client.update_domain( |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 95 | domain['id'], name=new_name, description=new_desc, |
| 96 | enabled=False)['domain'] |
nayna-patel | 049e157 | 2013-06-19 09:22:35 +0000 | [diff] [blame] | 97 | self.assertIn('id', updated_domain) |
| 98 | self.assertIn('description', updated_domain) |
| 99 | self.assertIn('name', updated_domain) |
| 100 | self.assertIn('enabled', updated_domain) |
| 101 | self.assertIn('links', updated_domain) |
| 102 | self.assertIsNotNone(updated_domain['id']) |
| 103 | self.assertEqual(new_name, updated_domain['name']) |
| 104 | self.assertEqual(new_desc, updated_domain['description']) |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 105 | self.assertEqual(False, updated_domain['enabled']) |
| 106 | # Show domain |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 107 | fetched_domain = self.domains_client.show_domain( |
| 108 | domain['id'])['domain'] |
nayna-patel | 049e157 | 2013-06-19 09:22:35 +0000 | [diff] [blame] | 109 | self.assertEqual(new_name, fetched_domain['name']) |
| 110 | self.assertEqual(new_desc, fetched_domain['description']) |
Castulo J. Martinez | 0a592b4 | 2016-05-13 09:15:23 -0700 | [diff] [blame] | 111 | self.assertEqual(False, fetched_domain['enabled']) |
| 112 | # Delete domain |
| 113 | self.domains_client.delete_domain(domain['id']) |
| 114 | body = self.domains_client.list_domains()['domains'] |
| 115 | domains_list = [d['id'] for d in body] |
| 116 | self.assertNotIn(domain['id'], domains_list) |
ravikumar-venkatesan | bf2c494 | 2015-02-20 07:08:18 +0000 | [diff] [blame] | 117 | |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 118 | @decorators.idempotent_id('036df86e-bb5d-42c0-a7c2-66b9db3a6046') |
ravikumar-venkatesan | bf2c494 | 2015-02-20 07:08:18 +0000 | [diff] [blame] | 119 | def test_create_domain_with_disabled_status(self): |
| 120 | # Create domain with enabled status as false |
Ken'ichi Ohmichi | 9650847 | 2015-03-23 01:43:42 +0000 | [diff] [blame] | 121 | d_name = data_utils.rand_name('domain') |
| 122 | d_desc = data_utils.rand_name('domain-desc') |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 123 | domain = self.domains_client.create_domain( |
ghanshyam | 8af17d6 | 2016-08-01 16:19:42 +0900 | [diff] [blame] | 124 | name=d_name, description=d_desc, enabled=False)['domain'] |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 125 | self.addCleanup(self.domains_client.delete_domain, domain['id']) |
ravikumar-venkatesan | bf2c494 | 2015-02-20 07:08:18 +0000 | [diff] [blame] | 126 | self.assertEqual(d_name, domain['name']) |
| 127 | self.assertFalse(domain['enabled']) |
| 128 | self.assertEqual(d_desc, domain['description']) |
ravikumar-venkatesan | ec4d497 | 2015-02-18 11:31:38 +0000 | [diff] [blame] | 129 | |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 130 | @decorators.idempotent_id('2abf8764-309a-4fa9-bc58-201b799817ad') |
ravikumar-venkatesan | ec4d497 | 2015-02-18 11:31:38 +0000 | [diff] [blame] | 131 | def test_create_domain_without_description(self): |
| 132 | # Create domain only with name |
Ken'ichi Ohmichi | 80369a9 | 2015-04-06 23:41:14 +0000 | [diff] [blame] | 133 | d_name = data_utils.rand_name('domain') |
ghanshyam | 8af17d6 | 2016-08-01 16:19:42 +0900 | [diff] [blame] | 134 | domain = self.domains_client.create_domain(name=d_name)['domain'] |
zhufl | eed21d7 | 2017-11-07 13:03:31 +0800 | [diff] [blame] | 135 | self.addCleanup(self.delete_domain, domain['id']) |
ravikumar-venkatesan | ec4d497 | 2015-02-18 11:31:38 +0000 | [diff] [blame] | 136 | expected_data = {'name': d_name, 'enabled': True} |
Jordan Pittier | 9b198e6 | 2017-04-23 12:47:31 +0200 | [diff] [blame] | 137 | self.assertEqual('', domain['description']) |
ravikumar-venkatesan | ec4d497 | 2015-02-18 11:31:38 +0000 | [diff] [blame] | 138 | self.assertDictContainsSubset(expected_data, domain) |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 139 | |
| 140 | |
| 141 | class DefaultDomainTestJSON(base.BaseIdentityV3AdminTest): |
| 142 | |
| 143 | @classmethod |
| 144 | def resource_setup(cls): |
| 145 | cls.domain_id = CONF.identity.default_domain_id |
| 146 | super(DefaultDomainTestJSON, cls).resource_setup() |
| 147 | |
Jordan Pittier | 3b46d27 | 2017-04-12 16:17:28 +0200 | [diff] [blame] | 148 | @decorators.attr(type='smoke') |
Ken'ichi Ohmichi | eeabdd2 | 2017-01-27 17:46:00 -0800 | [diff] [blame] | 149 | @decorators.idempotent_id('17a5de24-e6a0-4e4a-a9ee-d85b6e5612b5') |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 150 | def test_default_domain_exists(self): |
Daniel Mellado | 91a26b6 | 2016-02-11 11:13:04 +0000 | [diff] [blame] | 151 | domain = self.domains_client.show_domain(self.domain_id)['domain'] |
Martin Pavlasek | 4c3f2ab | 2014-04-15 17:15:15 +0200 | [diff] [blame] | 152 | |
| 153 | self.assertTrue(domain['enabled']) |