Be paranoid about existing keys in cfgupgrade
authorThomas Thrainer <thomasth@google.com>
Mon, 18 Nov 2013 10:40:09 +0000 (11:40 +0100)
committerThomas Thrainer <thomasth@google.com>
Mon, 18 Nov 2013 11:35:41 +0000 (12:35 +0100)
The cfgupgrade test assumes a very minimal configuration for some of its
tests. This configuration does not contain some of the fields which were
assumed to be present in cfgupgrade. This patch tests for the existence
of those fields before trying to access them.

Signed-off-by: Thomas Thrainer <thomasth@google.com>
Reviewed-by: Jose A. Lopes <jabolopes@google.com>

tools/cfgupgrade

index 7ffd554..aa8a97b 100755 (executable)
@@ -416,19 +416,24 @@ def DowngradeHVParams(hvparams):
 
 def DowngradeCluster(config_data):
   cluster = config_data["cluster"]
-  DowngradeNDParams(cluster["ndparams"])
-  DowngradeNicParams(cluster["nicparams"][constants.PP_DEFAULT])
-  DowngradeHVParams(cluster["hvparams"])
+  if "ndparams" in cluster:
+    DowngradeNDParams(cluster["ndparams"])
+  if "nicparams" in cluster:
+    DowngradeNicParams(cluster["nicparams"][constants.PP_DEFAULT])
+  if "hvparams" in cluster:
+    DowngradeHVParams(cluster["hvparams"])
 
 
 def DowngradeNodeGroups(config_data):
   for (_, ngobj) in config_data["nodegroups"].items():
-    DowngradeNDParams(ngobj["ndparams"])
+    if "ndparams" in ngobj:
+      DowngradeNDParams(ngobj["ndparams"])
 
 
 def DowngradeNodes(config_data):
   for (_, nobj) in config_data["nodes"].items():
-    DowngradeNDParams(nobj["ndparams"])
+    if "ndparams" in nobj:
+      DowngradeNDParams(nobj["ndparams"])
 
 
 def DowngradeInstances(config_data):