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:
parent
78d81ac3cc
commit
5fa6b63724
@ -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'))
|
||||
|
26
tuskarclient/tests/v2/test_roles.py
Normal file
26
tuskarclient/tests/v2/test_roles.py
Normal 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)
|
@ -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
40
tuskarclient/v2/roles.py
Normal 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'
|
Loading…
x
Reference in New Issue
Block a user