After the move of cmdlib.py to cmdlib/__init__.py it's now time to split
the cmdlib code into smaller pieces. This patch series extracts in turn
sets of logical units and related functions into individual files.
Functions common to multiple sets of logical units are extracted to 
cmdlib/common.py. Functions which are only used by instance-related
logical units are extracted to instance_utils.py.
__init__.py ultimately only contains imports of classes which should be
used by clients of cmdlib.
The last patch of this series cleans up all private functions such that
function, which are used from outside of their defining module (except
for test usages) don't have a leading underscore.

The dependencies between the newly created modules are as follows (use
dot if you prefer a diagram):

digraph G {
  subgraph cluster_0 {
    node [style=filled];
    label = "cmdlib";
    color = blue;

    init -> base;
    init -> cluster;
    init -> group;
    init -> _node;
    init -> instance;
    init -> instance_storage;
    init -> instance_migration;
    init -> instance_operation;
    init -> instance_query;
    init -> backup;
    init -> query;
    init -> operating_system;
    init -> misc;
    init -> test;
    
    {rank=same; cluster _node instance instance_storage instance_migration 
instance_operation instance_query backup operating_system misc test; }
    {rank=same; query init; }

    backup -> base;
    backup -> common;
    backup -> instance_storage;
    backup -> instance_utils;

    base -> common;

    cluster -> base;
    cluster -> common;

    group -> base;
    group -> common;

    instance -> base;
    instance -> common;
    instance -> instance_storage;
    instance -> instance_utils;

    instance_migration -> base;
    instance_migration -> instance_storage;
    instance_migration -> instance_utils;

    instance_operation -> base;
    instance_operation -> common;
    instance_operation -> instance_storage;
    instance_operation -> instance_utils;

    instance_query -> base;
    instance_query -> common;
    instance_query -> instance_operation;
    instance_query -> instance_utils;

    instance_storage -> base;
    instance_storage -> common;
    instance_storage -> instance_utils;
    
    instance_utils -> common;

    misc -> base;
    misc -> common;

    network -> base;
    network -> common;

    _node -> base;
    _node -> common;

    operating_system -> base;

    query -> base;
    query -> cluster;
    query -> group;
    query -> _node;
    query -> instance_query;
    query -> backup;
    query -> operating_system;
    query -> network;
    query -> misc;

    tags -> base;
    tags -> common;

    test -> base;
    test -> common;

    _node [label="node"];
    init [label="__init__"];
  }

  clients -> init;
  clients [shape=Mdiamond];
}

Thomas Thrainer (18):
  Extract base classes from cmdlib
  Extract tags related logical units from cmdlib
  Extract network related logical units from cmdlib
  Extract test logical units from cmdlib
  Extract cluster related logical units from cmdlib
  Extract group related logial units from cmdlib
  Extract node related logical units from cmdlib
  Extract instance related logical units from cmdlib
  Extract backup related logical units from cmdlib
  Extract query related logical units from cmdlib
  Extract os related logical units from cmdlib
  Extract miscellaneous logical units from cmdlib
  Don't ignore C0302 (Too many lines in module)
  Extract storage related functionality
  Extract migration related functionality
  Extract operations related functionality
  Extract instance query related functionality
  Cleanup public/private functions

 Makefile.am                       |    20 +-
 lib/cmdlib/__init__.py            | 17200 +-----------------------------------
 lib/cmdlib/backup.py              |   534 ++
 lib/cmdlib/base.py                |   536 ++
 lib/cmdlib/cluster.py             |  2874 ++++++
 lib/cmdlib/common.py              |  1029 +++
 lib/cmdlib/group.py               |   942 ++
 lib/cmdlib/instance.py            |  3446 ++++++++
 lib/cmdlib/instance_migration.py  |   928 ++
 lib/cmdlib/instance_operation.py  |   497 ++
 lib/cmdlib/instance_query.py      |   433 +
 lib/cmdlib/instance_storage.py    |  2462 ++++++
 lib/cmdlib/instance_utils.py      |   557 ++
 lib/cmdlib/misc.py                |   421 +
 lib/cmdlib/network.py             |   718 ++
 lib/cmdlib/node.py                |  1569 ++++
 lib/cmdlib/operating_system.py    |   189 +
 lib/cmdlib/query.py               |   102 +
 lib/cmdlib/tags.py                |   209 +
 lib/cmdlib/test.py                |   334 +
 test/py/ganeti.cmdlib_unittest.py |   317 +-
 test/py/ganeti.config_unittest.py |    10 +-
 22 files changed, 18074 insertions(+), 17253 deletions(-)
 create mode 100644 lib/cmdlib/backup.py
 create mode 100644 lib/cmdlib/base.py
 create mode 100644 lib/cmdlib/cluster.py
 create mode 100644 lib/cmdlib/common.py
 create mode 100644 lib/cmdlib/group.py
 create mode 100644 lib/cmdlib/instance.py
 create mode 100644 lib/cmdlib/instance_migration.py
 create mode 100644 lib/cmdlib/instance_operation.py
 create mode 100644 lib/cmdlib/instance_query.py
 create mode 100644 lib/cmdlib/instance_storage.py
 create mode 100644 lib/cmdlib/instance_utils.py
 create mode 100644 lib/cmdlib/misc.py
 create mode 100644 lib/cmdlib/network.py
 create mode 100644 lib/cmdlib/node.py
 create mode 100644 lib/cmdlib/operating_system.py
 create mode 100644 lib/cmdlib/query.py
 create mode 100644 lib/cmdlib/tags.py
 create mode 100644 lib/cmdlib/test.py

-- 
1.8.2.1

Reply via email to