[Kimchi-devel] [PATCH 00/16] Reorganize controller module

Sheldon shaohef at linux.vnet.ibm.com
Thu Dec 26 09:51:33 UTC 2013


On 12/26/2013 02:55 PM, Shu Ming wrote:
> 2013/12/24 2:41, Aline Manera:
>> From: Aline Manera <alinefm at 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 at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
>
>


-- 
Sheldon Feng(???)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20131226/7c28c13c/attachment.html>


More information about the Kimchi-devel mailing list