A 'too-many-branches' error.

Signed-off-by: Helga Velroyen <[email protected]>
---
 tools/cfgupgrade | 77 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 44 insertions(+), 33 deletions(-)

diff --git a/tools/cfgupgrade b/tools/cfgupgrade
index bcfb84f..5025448 100755
--- a/tools/cfgupgrade
+++ b/tools/cfgupgrade
@@ -219,6 +219,46 @@ def UpgradeDiskDevType(disk):
   ChangeDiskDevType(disk, DEV_TYPE_OLD_NEW)
 
 
+def _ConvertNicNameToUuid(iobj, network2uuid):
+  for nic in iobj["nics"]:
+    name = nic.get("network", None)
+    if name:
+      uuid = network2uuid.get(name, None)
+      if uuid:
+        print("NIC with network name %s found."
+              " Substituting with uuid %s." % (name, uuid))
+        nic["network"] = uuid
+
+
+def _ConvertDiskAndCheckMissingSpindles(iobj, instance):
+  missing_spindles = None
+  if "disks" not in iobj:
+    raise Error("Instance '%s' doesn't have a disks entry?!" % instance)
+  disks = iobj["disks"]
+  if not all(isinstance(d, str) for d in disks):
+    #  Disks are not top level citizens
+    for idx, dobj in enumerate(disks):
+      RemovePhysicalId(dobj)
+
+      expected = "disk/%s" % idx
+      current = dobj.get("iv_name", "")
+      if current != expected:
+        logging.warning("Updating iv_name for instance %s/disk %s"
+                        " from '%s' to '%s'",
+                        instance, idx, current, expected)
+        dobj["iv_name"] = expected
+
+      if "dev_type" in dobj:
+        UpgradeDiskDevType(dobj)
+
+      if not "spindles" in dobj:
+        missing_spindles = True
+
+      if not "uuid" in dobj:
+        dobj["uuid"] = utils.io.NewUUID()
+  return missing_spindles
+
+
 def UpgradeInstances(config_data):
   """Upgrades the instances' configuration."""
 
@@ -229,39 +269,10 @@ def UpgradeInstances(config_data):
 
   missing_spindles = False
   for instance, iobj in config_data["instances"].items():
-    for nic in iobj["nics"]:
-      name = nic.get("network", None)
-      if name:
-        uuid = network2uuid.get(name, None)
-        if uuid:
-          print("NIC with network name %s found."
-                " Substituting with uuid %s." % (name, uuid))
-          nic["network"] = uuid
-
-    if "disks" not in iobj:
-      raise Error("Instance '%s' doesn't have a disks entry?!" % instance)
-    disks = iobj["disks"]
-    if not all(isinstance(d, str) for d in disks):
-      #  Disks are not top level citizens
-      for idx, dobj in enumerate(disks):
-        RemovePhysicalId(dobj)
-
-        expected = "disk/%s" % idx
-        current = dobj.get("iv_name", "")
-        if current != expected:
-          logging.warning("Updating iv_name for instance %s/disk %s"
-                          " from '%s' to '%s'",
-                          instance, idx, current, expected)
-          dobj["iv_name"] = expected
-
-        if "dev_type" in dobj:
-          UpgradeDiskDevType(dobj)
-
-        if not "spindles" in dobj:
-          missing_spindles = True
-
-        if not "uuid" in dobj:
-          dobj["uuid"] = utils.io.NewUUID()
+    _ConvertNicNameToUuid(iobj, network2uuid)
+    missing_spindles_inst = _ConvertDiskAndCheckMissingSpindles(iobj, instance)
+    if missing_spindles_inst is not None:
+      missing_spindles = missing_spindles_inst
 
   if GetExclusiveStorageValue(config_data) and missing_spindles:
     # We cannot be sure that the instances that are missing spindles have
-- 
1.9.1.423.g4596e3a

Reply via email to