summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/identity
diff options
context:
space:
mode:
authorLance Bragstad <lbragstad@gmail.com>2018-06-11 22:03:52 +0000
committerLance Bragstad <lbragstad@gmail.com>2018-07-23 21:18:50 +0000
commit641a4faac1d021518350925b4297677eeff98fde (patch)
tree55a2b551eff2dea6b9934827a90ccfd0265c6d2d /openstackclient/tests/functional/identity
parent3493948d13aadd1a329b37eb8fafb731b1f5c6a7 (diff)
downloadpython-openstackclient-641a4faac1d021518350925b4297677eeff98fde.tar.gz
Implement support for registered limits
This commit adds support for users to manage registered limits via the command line. bp unified-limits Depends-On: https://review.openstack.org/#/c/574391/ Change-Id: Id8377363f7a3248b45aeeba21d2acc02684a0305
Diffstat (limited to 'openstackclient/tests/functional/identity')
-rw-r--r--openstackclient/tests/functional/identity/v3/common.py37
-rw-r--r--openstackclient/tests/functional/identity/v3/test_registered_limit.py184
2 files changed, 221 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/identity/v3/common.py b/openstackclient/tests/functional/identity/v3/common.py
index 54132be5..525a31a2 100644
--- a/openstackclient/tests/functional/identity/v3/common.py
+++ b/openstackclient/tests/functional/identity/v3/common.py
@@ -54,6 +54,11 @@ class IdentityTests(base.TestCase):
'Auth URL']
IMPLIED_ROLE_LIST_HEADERS = ['Prior Role ID', 'Prior Role Name',
'Implied Role ID', 'Implied Role Name']
+ REGISTERED_LIMIT_FIELDS = ['id', 'service_id', 'resource_name',
+ 'default_limit', 'description', 'region_id']
+ REGISTERED_LIMIT_LIST_HEADERS = ['ID', 'Service ID', 'Resource Name',
+ 'Default Limit', 'Description',
+ 'Region ID']
@classmethod
def setUpClass(cls):
@@ -319,3 +324,35 @@ class IdentityTests(base.TestCase):
items = self.parse_show(raw_output)
self.assert_show_fields(items, self.SERVICE_PROVIDER_FIELDS)
return service_provider
+
+ def _create_dummy_registered_limit(self, add_clean_up=True):
+ service_name = self._create_dummy_service()
+ resource_name = data_utils.rand_name('resource_name')
+ params = {
+ 'service_name': service_name,
+ 'default_limit': 10,
+ 'resource_name': resource_name
+ }
+ raw_output = self.openstack(
+ 'registered limit create'
+ ' --service %(service_name)s'
+ ' --default-limit %(default_limit)s'
+ ' %(resource_name)s' % params
+ )
+ items = self.parse_show(raw_output)
+ registered_limit_id = self._extract_value_from_items('id', items)
+
+ if add_clean_up:
+ self.addCleanup(
+ self.openstack,
+ 'registered limit delete %s' % registered_limit_id
+ )
+
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+ return registered_limit_id
+
+ def _extract_value_from_items(self, key, items):
+ for d in items:
+ for k, v in d.iteritems():
+ if k == key:
+ return v
diff --git a/openstackclient/tests/functional/identity/v3/test_registered_limit.py b/openstackclient/tests/functional/identity/v3/test_registered_limit.py
new file mode 100644
index 00000000..09e90ce2
--- /dev/null
+++ b/openstackclient/tests/functional/identity/v3/test_registered_limit.py
@@ -0,0 +1,184 @@
+# 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.common.utils import data_utils
+
+from openstackclient.tests.functional.identity.v3 import common
+
+
+class RegisteredLimitTestCase(common.IdentityTests):
+
+ def test_registered_limit_create_with_service_name(self):
+ self._create_dummy_registered_limit()
+
+ def test_registered_limit_create_with_service_id(self):
+ service_name = self._create_dummy_service()
+ raw_output = self.openstack(
+ 'service show'
+ ' %(service_name)s' % {'service_name': service_name}
+ )
+ service_items = self.parse_show(raw_output)
+ service_id = self._extract_value_from_items('id', service_items)
+
+ raw_output = self.openstack(
+ 'registered limit create'
+ ' --service %(service_id)s'
+ ' --default-limit %(default_limit)s'
+ ' %(resource_name)s' % {
+ 'service_id': service_id,
+ 'default_limit': 10,
+ 'resource_name': 'cores'
+ }
+ )
+ items = self.parse_show(raw_output)
+ registered_limit_id = self._extract_value_from_items('id', items)
+ self.addCleanup(
+ self.openstack,
+ 'registered limit delete'
+ ' %(registered_limit_id)s' % {
+ 'registered_limit_id': registered_limit_id
+ }
+ )
+
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_create_with_options(self):
+ service_name = self._create_dummy_service()
+ region_id = self._create_dummy_region()
+ params = {
+ 'service_name': service_name,
+ 'resource_name': 'cores',
+ 'default_limit': 10,
+ 'description': 'default limit for cores',
+ 'region_id': region_id
+ }
+
+ raw_output = self.openstack(
+ 'registered limit create'
+ ' --description \'%(description)s\''
+ ' --region %(region_id)s'
+ ' --service %(service_name)s'
+ ' --default-limit %(default_limit)s'
+ ' %(resource_name)s' % params
+ )
+ items = self.parse_show(raw_output)
+ registered_limit_id = self._extract_value_from_items('id', items)
+ self.addCleanup(
+ self.openstack,
+ 'registered limit delete %(registered_limit_id)s' % {
+ 'registered_limit_id': registered_limit_id
+ }
+ )
+
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_show(self):
+ registered_limit_id = self._create_dummy_registered_limit()
+ raw_output = self.openstack(
+ 'registered limit show %(registered_limit_id)s' % {
+ 'registered_limit_id': registered_limit_id
+ }
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_set_region_id(self):
+ region_id = self._create_dummy_region()
+ registered_limit_id = self._create_dummy_registered_limit()
+
+ params = {
+ 'registered_limit_id': registered_limit_id,
+ 'region_id': region_id
+ }
+ raw_output = self.openstack(
+ 'registered limit set'
+ ' %(registered_limit_id)s'
+ ' --region %(region_id)s' % params
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_set_description(self):
+ registered_limit_id = self._create_dummy_registered_limit()
+ params = {
+ 'registered_limit_id': registered_limit_id,
+ 'description': 'updated description'
+ }
+ raw_output = self.openstack(
+ 'registered limit set'
+ ' %(registered_limit_id)s'
+ ' --description \'%(description)s\'' % params
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_set_service(self):
+ registered_limit_id = self._create_dummy_registered_limit()
+ service_name = self._create_dummy_service()
+ params = {
+ 'registered_limit_id': registered_limit_id,
+ 'service': service_name
+ }
+ raw_output = self.openstack(
+ 'registered limit set'
+ ' %(registered_limit_id)s'
+ ' --service %(service)s' % params
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_set_default_limit(self):
+ registered_limit_id = self._create_dummy_registered_limit()
+ params = {
+ 'registered_limit_id': registered_limit_id,
+ 'default_limit': 20
+ }
+ raw_output = self.openstack(
+ 'registered limit set'
+ ' %(registered_limit_id)s'
+ ' --default-limit %(default_limit)s' % params
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_set_resource_name(self):
+ registered_limit_id = self._create_dummy_registered_limit()
+ resource_name = data_utils.rand_name('resource_name')
+ params = {
+ 'registered_limit_id': registered_limit_id,
+ 'resource_name': resource_name
+ }
+ raw_output = self.openstack(
+ 'registered limit set'
+ ' %(registered_limit_id)s'
+ ' --resource-name %(resource_name)s' % params
+ )
+ items = self.parse_show(raw_output)
+ self.assert_show_fields(items, self.REGISTERED_LIMIT_FIELDS)
+
+ def test_registered_limit_list(self):
+ self._create_dummy_registered_limit()
+ raw_output = self.openstack('registered limit list')
+ items = self.parse_listing(raw_output)
+ self.assert_table_structure(items, self.REGISTERED_LIMIT_LIST_HEADERS)
+
+ def test_registered_limit_delete(self):
+ registered_limit_id = self._create_dummy_registered_limit(
+ add_clean_up=False
+ )
+ raw_output = self.openstack(
+ 'registered limit delete'
+ ' %(registered_limit_id)s' % {
+ 'registered_limit_id': registered_limit_id
+ }
+ )
+ self.assertEqual(0, len(raw_output))