<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 12/26/2013 02:55 PM, Shu Ming wrote:<br>
    </div>
    <blockquote cite="mid:52BBD2F0.2000406@linux.vnet.ibm.com"
      type="cite">2013/12/24 2:41, Aline Manera:
      <br>
      <blockquote type="cite">From: Aline Manera
        <a class="moz-txt-link-rfc2396E" href="mailto:alinefm@br.ibm.com">&lt;alinefm@br.ibm.com&gt;</a>
        <br>
        <br>
        The current implemenation put all resources implementation into
        controller.py
        <br>
        file. That way this file tends to increase to infinity as more
        resources are
        <br>
        added to Kimchi.
        <br>
        <br>
        This patch splits controller module (controller.py) into small
        modules.
        <br>
        So each resource will have its own controller implementation
        under /control
        <br>
        It will make maintenance easier and anyone can easily identify
        where any resource
        <br>
        is implemented.
        <br>
      </blockquote>
      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.&nbsp; From&nbsp; another
      point of view,&nbsp; the real logical is in model.py,&nbsp; do you have plan
      to split the model.py file?
      <br>
    </blockquote>
    Maybe we can refactor the controller-model structure, make it more
    better. <br>
    such some <font size="3">mechanism to register different <font
        color="#000000">collection</font></font>s.<br>
    <br>
    For src/kimchi/control/tasks.py <br>
    <br>
    @expose("tasks", "auth")<br>
    +class Tasks(Collection):
    <br>
    +&nbsp;&nbsp;&nbsp; def __init__(self, model):
    <br>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(Tasks, self).__init__(model)
    <br>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.resource = Task
    <br>
    <br>
    <br>
    "expose" means Tasks will be added as an exposed attribute&nbsp; "tasks"
    of root.<br>
    src/kimchi/control/__init__.py&nbsp; can do the <font size="3">register.</font><br>
    Then we will no need to assign Tasks to Root.tasks manually.<br>
    <pre wrap="">
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)</pre>
    <br>
    <br>
    <blockquote cite="mid:52BBD2F0.2000406@linux.vnet.ibm.com"
      type="cite">
      <br>
      <br>
      <blockquote type="cite">
        <br>
        This patch set does not change any logic - just move classes
        from controller
        <br>
        to a new module.
        <br>
        <br>
        Aline Manera (16):
        <br>
        &nbsp;&nbsp; Move generate_action_handler() function to Resource() class
        <br>
        &nbsp;&nbsp; Move common functions for Resource and Collection to
        control/utils.py
        <br>
        &nbsp;&nbsp; Move login() and logout() functions from controller.py to
        root.py
        <br>
        &nbsp;&nbsp; Move basic controller resources to control/base.py
        <br>
        &nbsp;&nbsp; Move all resources related to vms to control/vms.py
        <br>
        &nbsp;&nbsp; Move all resources related to templates to
        control/templates.py
        <br>
        &nbsp;&nbsp; Move all resources related to debug reports to
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp; control/debugreports.py
        <br>
        &nbsp;&nbsp; Move all resources related to storage pools to
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp; control/storagepools.py
        <br>
        &nbsp;&nbsp; Move all resources related to storage volume to
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp; control/storagevolumes.py
        <br>
        &nbsp;&nbsp; Move all resources related to interfaces to
        control/interfaces.py
        <br>
        &nbsp;&nbsp; Move all resources related to networks to control/networks.py
        <br>
        &nbsp;&nbsp; Move all resources related to config to control/config.py
        <br>
        &nbsp;&nbsp; Move all resources related to host to control/host.py
        <br>
        &nbsp;&nbsp; Move all resources related to plugins to control/plugins.py
        <br>
        &nbsp;&nbsp; Move all resources related to tasks to control/tasks.py
        <br>
        &nbsp;&nbsp; Use new control modules in root.py
        <br>
        <br>
        &nbsp; Makefile.am&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 13 +
        <br>
        &nbsp; src/kimchi/control/__init__.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 21 +
        <br>
        &nbsp; src/kimchi/control/base.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 290 +++++++++++++
        <br>
        &nbsp; src/kimchi/control/config.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 65 +++
        <br>
        &nbsp; src/kimchi/control/debugreports.py&nbsp;&nbsp; |&nbsp;&nbsp; 52 +++
        <br>
        &nbsp; src/kimchi/control/host.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 61 +++
        <br>
        &nbsp; src/kimchi/control/interfaces.py&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 44 ++
        <br>
        &nbsp; src/kimchi/control/networks.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 48 +++
        <br>
        &nbsp; src/kimchi/control/plugins.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 44 ++
        <br>
        &nbsp; src/kimchi/control/storagepools.py&nbsp;&nbsp; |&nbsp; 125 ++++++
        <br>
        &nbsp; src/kimchi/control/storagevolumes.py |&nbsp;&nbsp; 79 ++++
        <br>
        &nbsp; src/kimchi/control/tasks.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 41 ++
        <br>
        &nbsp; src/kimchi/control/templates.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 51 +++
        <br>
        &nbsp; src/kimchi/control/utils.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 103 +++++
        <br>
        &nbsp; src/kimchi/control/vms.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 64 +++
        <br>
        &nbsp; src/kimchi/controller.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 755
        ----------------------------------
        <br>
        &nbsp; src/kimchi/root.py&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 61 ++-
        <br>
        &nbsp; 17 files changed, 1147 insertions(+), 770 deletions(-)
        <br>
        &nbsp; create mode 100644 src/kimchi/control/__init__.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/base.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/config.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/debugreports.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/host.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/interfaces.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/networks.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/plugins.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/storagepools.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/storagevolumes.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/tasks.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/templates.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/utils.py
        <br>
        &nbsp; create mode 100644 src/kimchi/control/vms.py
        <br>
        &nbsp; delete mode 100644 src/kimchi/controller.py
        <br>
        <br>
      </blockquote>
      <br>
      _______________________________________________
      <br>
      Kimchi-devel mailing list
      <br>
      <a class="moz-txt-link-abbreviated" href="mailto:Kimchi-devel@ovirt.org">Kimchi-devel@ovirt.org</a>
      <br>
      <a class="moz-txt-link-freetext" href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel">http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a>
      <br>
      <br>
      <br>
      <br>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Sheldon Feng(&#20911;&#23569;&#21512;)<a class="moz-txt-link-rfc2396E" href="mailto:shaohef@linux.vnet.ibm.com">&lt;shaohef@linux.vnet.ibm.com&gt;</a>
IBM Linux Technology Center</pre>
  </body>
</html>