Use CrudManager for assembly and component
Change-Id: I2b698b3dbe0a0bf04f6fbebc873912bc01d1a598
This commit is contained in:
@@ -13,9 +13,10 @@
|
||||
# under the License.
|
||||
|
||||
from solumclient.openstack.common.apiclient import base
|
||||
from solumclient.openstack.common.py3kcompat import urlutils
|
||||
|
||||
|
||||
class BaseManager(base.BaseManager):
|
||||
class ManagerMixin():
|
||||
def _get(self, url, response_key=None):
|
||||
"""Get an object from collection.
|
||||
|
||||
@@ -63,3 +64,22 @@ class BaseManager(base.BaseManager):
|
||||
pass
|
||||
|
||||
return [obj_class(self, res, loaded=True) for res in data if res]
|
||||
|
||||
|
||||
class BaseManager(ManagerMixin, base.BaseManager):
|
||||
pass
|
||||
|
||||
|
||||
class CrudManager(ManagerMixin, base.CrudManager):
|
||||
def list(self, base_url=None, **kwargs):
|
||||
"""List the collection.
|
||||
|
||||
:param base_url: if provided, the generated URL will be appended to it
|
||||
"""
|
||||
kwargs = self._filter_kwargs(kwargs)
|
||||
|
||||
return self._list(
|
||||
'%(base_url)s%(query)s' % {
|
||||
'base_url': self.build_url(base_url=base_url, **kwargs),
|
||||
'query': '?%s' % urlutils.urlencode(kwargs) if kwargs else '',
|
||||
})
|
||||
|
@@ -21,8 +21,9 @@ class Assembly(apiclient_base.Resource):
|
||||
return "<Assembly %s>" % self._info
|
||||
|
||||
|
||||
class AssemblyManager(solum_base.BaseManager):
|
||||
class AssemblyManager(solum_base.CrudManager):
|
||||
resource_class = Assembly
|
||||
collection_key = 'assemblies'
|
||||
|
||||
def list(self, **kwargs):
|
||||
return self._list('/v1/assemblies')
|
||||
return super(AssemblyManager, self).list(base_url="/v1", **kwargs)
|
||||
|
@@ -21,8 +21,9 @@ class Component(apiclient_base.Resource):
|
||||
return "<Component %s>" % self._info
|
||||
|
||||
|
||||
class ComponentManager(solum_base.BaseManager):
|
||||
class ComponentManager(solum_base.CrudManager):
|
||||
resource_class = Component
|
||||
collection_key = 'components'
|
||||
|
||||
def list(self, **kwargs):
|
||||
return self._list('/v1/components')
|
||||
return super(ComponentManager, self).list(base_url="/v1", **kwargs)
|
||||
|
Reference in New Issue
Block a user