From d3cfe525fd83f6155452a27ae67dc7849a1b5b28 Mon Sep 17 00:00:00 2001
From: Guido Trotter <ultrotter@google.com>
Date: Fri, 5 Jun 2009 16:04:45 +0100
Subject: [PATCH] gnt-cluster init, simplify parameter checks

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 | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster
index 6ef9b628b..7f4f511fb 100755
--- a/scripts/gnt-cluster
+++ b/scripts/gnt-cluster
@@ -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:
-- 
GitLab