gnt-cluster init, simplify parameter checks
authorGuido Trotter <ultrotter@google.com>
Fri, 5 Jun 2009 15:04:45 +0000 (16:04 +0100)
committerGuido Trotter <ultrotter@google.com>
Mon, 8 Jun 2009 16:58:32 +0000 (17:58 +0100)
Don't check for non-existant BE parameters, ForceDictType will do it
Use utils.FillDict to populate the defaults

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

scripts/gnt-cluster

index 6ef9b62..7f4f511 100755 (executable)
@@ -34,6 +34,7 @@ from ganeti import errors
 from ganeti import utils
 from ganeti import bootstrap
 from ganeti import ssh
+from ganeti import objects
 
 
 @UsesRPC
@@ -70,27 +71,17 @@ def InitCluster(opts, args):
     return 1
 
   hvparams = dict(opts.hvparams)
-
   beparams = opts.beparams
-  # check for invalid parameters
-  for parameter in beparams:
-    if parameter not in constants.BES_PARAMETERS:
-      ToStderr("Invalid backend parameter: %s", parameter)
-      return 1
 
   # prepare beparams dict
-  for parameter in constants.BES_PARAMETERS:
-    if parameter not in beparams:
-      beparams[parameter] = constants.BEC_DEFAULTS[parameter]
+  beparams = objects.FillDict(constants.BEC_DEFAULTS, beparams)
   utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES)
 
   # prepare hvparams dict
   for hv in constants.HYPER_TYPES:
     if hv not in hvparams:
       hvparams[hv] = {}
-    for parameter in constants.HVC_DEFAULTS[hv]:
-      if parameter not in hvparams[hv]:
-        hvparams[hv][parameter] = constants.HVC_DEFAULTS[hv][parameter]
+    hvparams[hv] = objects.FillDict(constants.HVC_DEFAULTS[hv], hvparams[hv])
     utils.ForceDictType(hvparams[hv], constants.HVS_PARAMETER_TYPES)
 
   for hv in hvlist: