LUSetInstanceParam: don't assume memory is integer
authorGuido Trotter <ultrotter@google.com>
Tue, 12 May 2009 11:07:18 +0000 (12:07 +0100)
committerGuido Trotter <ultrotter@google.com>
Tue, 12 May 2009 11:30:00 +0000 (12:30 +0100)
LUSetInstanceParam currently assumes that the 'memory' value of a
call_instance_info result is an integer, while the rest of the code
explicitely converts it to int(). Converting it to int works around a
bug which prevents changing the memory allocation of a live instance if
the remote call returns the memory in string format.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

lib/cmdlib.py

index ab40449..f97957f 100644 (file)
@@ -5898,7 +5898,7 @@ class LUSetInstanceParams(LogicalUnit):
         self.warn.append("Can't get info from primary node %s" % pnode)
       else:
         if not instance_info.failed and instance_info.data:
-          current_mem = instance_info.data['memory']
+          current_mem = int(instance_info.data['memory'])
         else:
           # Assume instance not running
           # (there is a slight race condition here, but it's not very probable,