2015-07-04 21:40:31 +08:00
|
|
|
# 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.
|
|
|
|
|
2016-04-28 15:15:12 -05:00
|
|
|
from tempest.lib.common.utils import data_utils
|
|
|
|
from tempest.lib import exceptions
|
2015-07-04 21:40:31 +08:00
|
|
|
|
2016-09-05 20:35:06 -07:00
|
|
|
from openstackclient.tests.functional.identity.v3 import common
|
2015-07-04 21:40:31 +08:00
|
|
|
|
|
|
|
|
2016-06-20 17:12:44 -04:00
|
|
|
class DomainTests(common.IdentityTests):
|
2015-07-04 21:40:31 +08:00
|
|
|
def test_domain_create(self):
|
|
|
|
domain_name = data_utils.rand_name('TestDomain')
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain create {domain_name}')
|
2015-07-04 21:40:31 +08:00
|
|
|
# disable domain first before deleting it
|
2024-09-12 17:57:14 +01:00
|
|
|
self.addCleanup(self.openstack, f'domain delete {domain_name}')
|
|
|
|
self.addCleanup(self.openstack, f'domain set --disable {domain_name}')
|
2016-04-06 00:54:31 +02:00
|
|
|
items = self.parse_show(raw_output)
|
|
|
|
self.assert_show_fields(items, self.DOMAIN_FIELDS)
|
2015-07-04 21:40:31 +08:00
|
|
|
|
|
|
|
def test_domain_list(self):
|
|
|
|
self._create_dummy_domain()
|
|
|
|
raw_output = self.openstack('domain list')
|
|
|
|
items = self.parse_listing(raw_output)
|
2016-06-20 17:12:44 -04:00
|
|
|
self.assert_table_structure(items, common.BASIC_LIST_HEADERS)
|
2015-07-04 21:40:31 +08:00
|
|
|
|
|
|
|
def test_domain_delete(self):
|
|
|
|
domain_name = self._create_dummy_domain(add_clean_up=False)
|
|
|
|
# cannot delete enabled domain, disable it first
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain set --disable {domain_name}')
|
2015-07-04 21:40:31 +08:00
|
|
|
self.assertEqual(0, len(raw_output))
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain delete {domain_name}')
|
2015-07-04 21:40:31 +08:00
|
|
|
self.assertEqual(0, len(raw_output))
|
|
|
|
|
2016-07-12 12:44:55 +08:00
|
|
|
def test_domain_multi_delete(self):
|
|
|
|
domain_1 = self._create_dummy_domain(add_clean_up=False)
|
|
|
|
domain_2 = self._create_dummy_domain(add_clean_up=False)
|
|
|
|
# cannot delete enabled domain, disable it first
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain set --disable {domain_1}')
|
2016-07-12 12:44:55 +08:00
|
|
|
self.assertEqual(0, len(raw_output))
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain set --disable {domain_2}')
|
2016-07-12 12:44:55 +08:00
|
|
|
self.assertEqual(0, len(raw_output))
|
2023-05-08 11:32:01 +01:00
|
|
|
raw_output = self.openstack(f'domain delete {domain_1} {domain_2}')
|
2016-07-12 12:44:55 +08:00
|
|
|
self.assertEqual(0, len(raw_output))
|
|
|
|
|
2015-07-04 21:40:31 +08:00
|
|
|
def test_domain_delete_failure(self):
|
|
|
|
domain_name = self._create_dummy_domain()
|
|
|
|
# cannot delete enabled domain
|
2023-05-08 11:32:01 +01:00
|
|
|
self.assertRaises(
|
|
|
|
exceptions.CommandFailed,
|
|
|
|
self.openstack,
|
2024-09-12 17:57:14 +01:00
|
|
|
f'domain delete {domain_name}',
|
2023-05-08 11:32:01 +01:00
|
|
|
)
|
2015-07-04 21:40:31 +08:00
|
|
|
|
|
|
|
def test_domain_show(self):
|
|
|
|
domain_name = self._create_dummy_domain()
|
2024-09-12 17:57:14 +01:00
|
|
|
raw_output = self.openstack(f'domain show {domain_name}')
|
2015-07-04 21:40:31 +08:00
|
|
|
items = self.parse_show(raw_output)
|
|
|
|
self.assert_show_fields(items, self.DOMAIN_FIELDS)
|