Use CrudManager for assembly and component
Change-Id: I2b698b3dbe0a0bf04f6fbebc873912bc01d1a598
This commit is contained in:
@@ -13,9 +13,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from solumclient.openstack.common.apiclient import base
|
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):
|
def _get(self, url, response_key=None):
|
||||||
"""Get an object from collection.
|
"""Get an object from collection.
|
||||||
|
|
||||||
@@ -63,3 +64,22 @@ class BaseManager(base.BaseManager):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
return [obj_class(self, res, loaded=True) for res in data if res]
|
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
|
return "<Assembly %s>" % self._info
|
||||||
|
|
||||||
|
|
||||||
class AssemblyManager(solum_base.BaseManager):
|
class AssemblyManager(solum_base.CrudManager):
|
||||||
resource_class = Assembly
|
resource_class = Assembly
|
||||||
|
collection_key = 'assemblies'
|
||||||
|
|
||||||
def list(self, **kwargs):
|
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
|
return "<Component %s>" % self._info
|
||||||
|
|
||||||
|
|
||||||
class ComponentManager(solum_base.BaseManager):
|
class ComponentManager(solum_base.CrudManager):
|
||||||
resource_class = Component
|
resource_class = Component
|
||||||
|
collection_key = 'components'
|
||||||
|
|
||||||
def list(self, **kwargs):
|
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