Stupid python without static typing and type inference.
[mclu.git] / mclu.py
diff --git a/mclu.py b/mclu.py
index 7c6ad81..0a439ec 100755 (executable)
--- a/mclu.py
+++ b/mclu.py
@@ -23,7 +23,19 @@ import re
 import sys
 
 import config
-from node import Node
+import mclu_build
+import mclu_console
+import mclu_import
+import mclu_info
+import mclu_list
+import mclu_migrate
+import mclu_off
+import mclu_on
+import mclu_reboot
+import mclu_start
+import mclu_status
+import mclu_stop
+import mclu_viewer
 
 parser = argparse.ArgumentParser (
     prog='mclu',
@@ -38,31 +50,18 @@ parser.add_argument (
 
 # Add subcommands.
 subparsers = parser.add_subparsers ()
-import mclu_build
 mclu_build.cmdline (subparsers)
-import mclu_console
 mclu_console.cmdline (subparsers)
-import mclu_import
 mclu_import.cmdline (subparsers)
-import mclu_info
 mclu_info.cmdline (subparsers)
-import mclu_list
 mclu_list.cmdline (subparsers)
-import mclu_migrate
 mclu_migrate.cmdline (subparsers)
-import mclu_off
 mclu_off.cmdline (subparsers)
-import mclu_on
 mclu_on.cmdline (subparsers)
-import mclu_reboot
 mclu_reboot.cmdline (subparsers)
-import mclu_start
 mclu_start.cmdline (subparsers)
-import mclu_status
 mclu_status.cmdline (subparsers)
-import mclu_stop
 mclu_stop.cmdline (subparsers)
-import mclu_viewer
 mclu_viewer.cmdline (subparsers)
 
 args = parser.parse_args()
@@ -79,9 +78,7 @@ else:
 # section, so we have to rely on setting names not overlapping.
 conf_defaults = {
     "home" : os.getenv ("HOME"),
-    "host" : "SET.THIS.IN.MCLU.CONF",
     "config_dir" : config_dir,
-    "uri" : "qemu+ssh://root@%(host)s/system",
 }
 
 # Read the configuration file.
@@ -95,35 +92,18 @@ if not os.path.isdir (images_dir):
 xmls_dir = conf.get ("global", "xmls_dir")
 if not os.path.isdir (xmls_dir):
     sys.exit ("configuration error: [globals] 'xmls_dir' (%s) directory does not exist", xmls_dir)
-
-# Get the list of node names.
-node_names = conf.items ("nodes")
-node_names = filter (lambda (x, _) : re.search (r'^node', x), node_names)
-node_names = [ value for _, value in node_names ]
-if not node_names:
-    sys.exit ("configuration error: [nodes] section in configuration file is empty")
-
-# Get information about each node.
-nodes = {}
-for node_name in node_names:
-    host = conf.get (node_name, "host")
-    if not host:
-        host = node_name
-    mac = conf.get (node_name, "mac")
-    uri = conf.get (node_name, "uri")
-    node = Node (node_name, host, mac, uri)
-    nodes[node_name] = node
+nodes_group = conf.get ("global", "nodes_group")
 
 # A config dict with less-used configuration settings.
 c = {
     "config_file" : args.f.name,
     "config_dir" : config_dir,
     "images_dir" : images_dir,
-    "node_names" : node_names,
+    "nodes_group" : nodes_group,
     "xmls_dir" : xmls_dir,
 
     "conf" : conf,
 }
 
 # Run the subcommand.
-args.run (c, args, nodes)
+args.run (c, args)