Adds empty RoleManager to v2 client

Adds RoleManager and Role resource
Adds RoleManager to v2 client
Adds _path() to RoleManager
Adds basic tests

Change-Id: Id903d6e9469d62c5fe566dbdf3d55be8b45a75f8
This commit is contained in:
Petr Blaho 2014-08-14 13:58:04 +02:00
parent 78d81ac3cc
commit 5fa6b63724
4 changed files with 70 additions and 0 deletions

View File

@ -24,3 +24,5 @@ class ClientTest(tutils.TestCase):
def test_managers_present(self):
self.assertThat(self.client, tutils.HasManager('PlanManager',
'plans'))
self.assertThat(self.client, tutils.HasManager('RoleManager',
'roles'))

View File

@ -0,0 +1,26 @@
# 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 mock
import tuskarclient.tests.utils as tutils
from tuskarclient.v2 import roles
class RoleManagerTest(tutils.TestCase):
def setUp(self):
"""Create a mock API object and bind to the PlanManager manager.
"""
super(RoleManagerTest, self).setUp()
self.api = mock.Mock()
self.rm = roles.RoleManager(self.api)

View File

@ -12,6 +12,7 @@
from tuskarclient.common import http
from tuskarclient.v2 import plans
from tuskarclient.v2 import roles
class Client(object):
@ -25,3 +26,4 @@ class Client(object):
def __init__(self, *args, **kwargs):
self.http_client = http.HTTPClient(*args, **kwargs)
self.plans = plans.PlanManager(self.http_client)
self.roles = roles.RoleManager(self.http_client)

40
tuskarclient/v2/roles.py Normal file
View File

@ -0,0 +1,40 @@
# 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 tuskarclient.common import base
from tuskarclient.openstack.common.apiclient import base as common_base
class Role(common_base.Resource):
"""Represents an instance of a Role in the Tuskar API.
:param manager: Manager object
:param info: dictionary representing resource attributes
:param loaded: prevent lazy-loading if set to True
"""
class RoleManager(base.Manager):
"""RoleManager interacts with the Tuskar API and provides
operations for adding/removing Roles to/from Plans.
"""
# The class used to represent a Role instance
resource_class = Role
@staticmethod
def _path(role_id=None):
if role_id:
return '/v2/roles/%s' % role_id
return '/v2/roles'