gnt-group modify: Fix an update issue with diskparams
authorRené Nussbaumer <rn@google.com>
Fri, 11 May 2012 14:56:49 +0000 (16:56 +0200)
committerRené Nussbaumer <rn@google.com>
Mon, 14 May 2012 11:51:30 +0000 (13:51 +0200)
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

lib/cmdlib.py

index 1544016..5b065e8 100644 (file)
@@ -13939,12 +13939,16 @@ class LUGroupSetParams(LogicalUnit):
 
     if self.op.diskparams:
       diskparams = self.group.diskparams
+      uavdp = self._UpdateAndVerifyDiskParams
+      # For each disktemplate subdict update and verify the values
       new_diskparams = dict((dt,
-                             self._UpdateAndVerifyDiskParams(diskparams[dt],
-                                                        self.op.diskparams[dt]))
+                             uavdp(diskparams.get(dt, {}),
+                                   self.op.diskparams[dt]))
                             for dt in constants.DISK_TEMPLATES
                             if dt in self.op.diskparams)
-      self.new_diskparams = objects.FillDiskParams(diskparams, new_diskparams)
+      # As we've all subdicts of diskparams ready, lets merge the actual
+      # dict with all updated subdicts
+      self.new_diskparams = objects.FillDict(diskparams, new_diskparams)
 
     if self.op.hv_state:
       self.new_hv_state = _MergeAndVerifyHvState(self.op.hv_state,