(grnet) Remove deprecated idx slot from NIC/Disk objects
authorDimitris Aragiorgis <dimara@grnet.gr>
Thu, 28 Nov 2013 09:39:00 +0000 (11:39 +0200)
committerDimitris Aragiorgis <dimara@grnet.gr>
Thu, 27 Mar 2014 07:59:01 +0000 (09:59 +0200)
This code will run when reading old kvm runtime files created
by hot-plugging related code back in Ganeti 2.6.2

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>

lib/objects.py

index c8d66aa..a57e011 100644 (file)
@@ -510,6 +510,19 @@ class NIC(ConfigObject):
         not nicparams[constants.NIC_LINK]):
       raise errors.ConfigurationError("Missing bridged NIC link")
 
+  @classmethod
+  def FromDict(cls, val):
+    """Custom function for NICs.
+
+    Remove deprecated idx. Add dummy UUID if not found.
+    Needed for old runtime files.
+
+    """
+    if "idx" in val:
+      del val["idx"]
+    obj = super(NIC, cls).FromDict(val)
+    return obj
+
 
 class Disk(ConfigObject):
   """Config object representing a block device."""
@@ -763,6 +776,8 @@ class Disk(ConfigObject):
     """Custom function for Disks
 
     """
+    if "idx" in val:
+      del val["idx"]
     obj = super(Disk, cls).FromDict(val)
     if obj.children:
       obj.children = outils.ContainerFromDicts(obj.children, list, Disk)