On 12/26/2013 02:55 PM, Shu Ming wrote:
2013/12/24 2:41, Aline Manera:
From: Aline Manera
<alinefm@br.ibm.com>
The current implemenation put all resources implementation into
controller.py
file. That way this file tends to increase to infinity as more
resources are
added to Kimchi.
This patch splits controller module (controller.py) into small
modules.
So each resource will have its own controller implementation
under /control
It will make maintenance easier and anyone can easily identify
where any resource
is implemented.
I would argue that most the resources defined are pretty trival
and splitting these definitions into different files will add many
small files which cause unnecessary maintenance. From another
point of view, the real logical is in model.py, do you have plan
to split the model.py file?
Maybe we can refactor the controller-model structure, make it more
better.
such some mechanism to register different collections.
For src/kimchi/control/tasks.py
@expose("tasks", "auth")
+class Tasks(Collection):
+ def __init__(self, model):
+ super(Tasks, self).__init__(model)
+ self.resource = Task
"expose" means Tasks will be added as an exposed attribute "tasks"
of root.
src/kimchi/control/__init__.py can do the register.
Then we will no need to assign Tasks to Root.tasks manually.
And these code in root.py can be removed.
--- a/src/kimchi/root.py
+++ b/src/kimchi/root.py
src/kimchi/root.py
+from kimchi.control.tasks import Tasks
+class Root(Resource):
def __init__(self, model, dev_env):
+ self.tasks = Tasks(model)
This patch set does not change any logic - just move classes
from controller
to a new module.
Aline Manera (16):
Move generate_action_handler() function to Resource() class
Move common functions for Resource and Collection to
control/utils.py
Move login() and logout() functions from controller.py to
root.py
Move basic controller resources to control/base.py
Move all resources related to vms to control/vms.py
Move all resources related to templates to
control/templates.py
Move all resources related to debug reports to
control/debugreports.py
Move all resources related to storage pools to
control/storagepools.py
Move all resources related to storage volume to
control/storagevolumes.py
Move all resources related to interfaces to
control/interfaces.py
Move all resources related to networks to control/networks.py
Move all resources related to config to control/config.py
Move all resources related to host to control/host.py
Move all resources related to plugins to control/plugins.py
Move all resources related to tasks to control/tasks.py
Use new control modules in root.py
Makefile.am | 13 +
src/kimchi/control/__init__.py | 21 +
src/kimchi/control/base.py | 290 +++++++++++++
src/kimchi/control/config.py | 65 +++
src/kimchi/control/debugreports.py | 52 +++
src/kimchi/control/host.py | 61 +++
src/kimchi/control/interfaces.py | 44 ++
src/kimchi/control/networks.py | 48 +++
src/kimchi/control/plugins.py | 44 ++
src/kimchi/control/storagepools.py | 125 ++++++
src/kimchi/control/storagevolumes.py | 79 ++++
src/kimchi/control/tasks.py | 41 ++
src/kimchi/control/templates.py | 51 +++
src/kimchi/control/utils.py | 103 +++++
src/kimchi/control/vms.py | 64 +++
src/kimchi/controller.py | 755
----------------------------------
src/kimchi/root.py | 61 ++-
17 files changed, 1147 insertions(+), 770 deletions(-)
create mode 100644 src/kimchi/control/__init__.py
create mode 100644 src/kimchi/control/base.py
create mode 100644 src/kimchi/control/config.py
create mode 100644 src/kimchi/control/debugreports.py
create mode 100644 src/kimchi/control/host.py
create mode 100644 src/kimchi/control/interfaces.py
create mode 100644 src/kimchi/control/networks.py
create mode 100644 src/kimchi/control/plugins.py
create mode 100644 src/kimchi/control/storagepools.py
create mode 100644 src/kimchi/control/storagevolumes.py
create mode 100644 src/kimchi/control/tasks.py
create mode 100644 src/kimchi/control/templates.py
create mode 100644 src/kimchi/control/utils.py
create mode 100644 src/kimchi/control/vms.py
delete mode 100644 src/kimchi/controller.py
_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel
--
Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com>
IBM Linux Technology Center