[PATCH] Use cherrypy's default dispatcher for subcollection

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@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")) -- 1.8.4.2

Reviewed-by: Aline Manera <alinefm@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@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"))

Reviewed-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> On 01/20/2014 10: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@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"))
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center

Reviewed-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> On 01/20/2014 10: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@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"))
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center

Applied. Thanks. Regards, Aline Manera
participants (3)
-
Aline Manera
-
Mark Wu
-
Sheldon