Reviewed-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
On 01/20/2014 12:57 AM, Mark Wu wrote:
Currently, we override the dispatchers of resource StoragePool
and IsoPool when the request targets to storagevolumes it holds.
But it's not necessary to use a customized dispatcher. It can be
done by add an attribute to associate with the subcollcetion. In
this case, it's 'storagevolumes'.
Signed-off-by: Mark Wu <wudxw(a)linux.vnet.ibm.com>
---
src/kimchi/control/storagepools.py | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/src/kimchi/control/storagepools.py b/src/kimchi/control/storagepools.py
index 782f5a6..06b7196 100644
--- a/src/kimchi/control/storagepools.py
+++ b/src/kimchi/control/storagepools.py
@@ -83,6 +83,7 @@ class StoragePool(Resource):
self.uri_fmt = "/storagepools/%s"
self.activate = self.generate_action_handler('activate')
self.deactivate = self.generate_action_handler('deactivate')
+ self.storagevolumes = StorageVolumes(self.model,
ident.decode("utf-8"))
@property
def data(self):
@@ -103,27 +104,14 @@ class StoragePool(Resource):
return res
- def _cp_dispatch(self, vpath):
- if vpath:
- subcollection = vpath.pop(0)
- if subcollection == 'storagevolumes':
- # incoming text, from URL, is not unicode, need decode
- return StorageVolumes(self.model, self.ident.decode("utf-8"))
-
class IsoPool(Resource):
def __init__(self, model):
super(IsoPool, self).__init__(model, ISO_POOL_NAME)
+ self.storagevolumes = IsoVolumes(self.model, ISO_POOL_NAME)
@property
def data(self):
return {'name': self.ident,
'state': self.info['state'],
'type': self.info['type']}
-
- def _cp_dispatch(self, vpath):
- if vpath:
- subcollection = vpath.pop(0)
- if subcollection == 'storagevolumes':
- # incoming text, from URL, is not unicode, need decode
- return IsoVolumes(self.model, self.ident.decode("utf-8"))