From b1cda8e7e2ea7245a0b7f0c43723c2ef0efef8bb Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Thu, 28 Aug 2014 08:10:29 -0600 Subject: [PATCH] identity/v2 role resource Change-Id: Ia07f6b091fa752c5dab7e6a5653dfb4b47b34df7 --- openstack/identity/v2/role.py | 33 +++++++++++++++++ openstack/tests/identity/v2/test_role.py | 45 ++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 openstack/identity/v2/role.py create mode 100644 openstack/tests/identity/v2/test_role.py diff --git a/openstack/identity/v2/role.py b/openstack/identity/v2/role.py new file mode 100644 index 000000000..cd66eee9e --- /dev/null +++ b/openstack/identity/v2/role.py @@ -0,0 +1,33 @@ +# 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 openstack.identity import identity_service +from openstack import resource + + +class Role(resource.Resource): + resource_key = 'role' + resources_key = 'roles' + base_path = '/OS-KSADM/roles' + service = identity_service.IdentityService() + + # capabilities + allow_create = True + allow_retrieve = True + allow_update = True + allow_delete = True + allow_list = True + + # Properties + description = resource.prop('description') + name = resource.prop('name') + enabled = resource.prop('enabled') # API implements as string diff --git a/openstack/tests/identity/v2/test_role.py b/openstack/tests/identity/v2/test_role.py new file mode 100644 index 000000000..7545d414f --- /dev/null +++ b/openstack/tests/identity/v2/test_role.py @@ -0,0 +1,45 @@ +# 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. + +import testtools + +from openstack.identity.v2 import role + +IDENTIFIER = 'IDENTIFIER' +EXAMPLE = { + 'enabled': 'True', + 'description': '1', + 'id': IDENTIFIER, + 'name': '3', +} + + +class TestRole(testtools.TestCase): + + def test_basic(self): + sot = role.Role() + self.assertEqual('role', sot.resource_key) + self.assertEqual('roles', sot.resources_key) + self.assertEqual('/OS-KSADM/roles', sot.base_path) + self.assertEqual('identity', sot.service.service_type) + self.assertTrue(sot.allow_create) + self.assertTrue(sot.allow_retrieve) + self.assertTrue(sot.allow_update) + self.assertTrue(sot.allow_delete) + self.assertTrue(sot.allow_list) + + def test_make_it(self): + sot = role.Role(EXAMPLE) + self.assertEqual(EXAMPLE['enabled'], sot.enabled) + self.assertEqual(EXAMPLE['description'], sot.description) + self.assertEqual(EXAMPLE['id'], sot.id) + self.assertEqual(EXAMPLE['name'], sot.name)