From 28a45bfc73f34cafdaaecd5bcf0a3ab9d2476c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com> Date: Fri, 6 Jul 2012 11:35:24 +0200 Subject: [PATCH] RAPI regression beparams/memory fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For compatibility with the old Ganeti version, we want to keep the beparams/memory field around for another release. This patch fixes this regression. Signed-off-by: RenΓ© Nussbaumer <rn@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/rapi/rlib2.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index 6f1b17343..e434340b7 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -156,6 +156,21 @@ ALL_FEATURES = frozenset([ _WFJC_TIMEOUT = 10 +# FIXME: For compatibility we update the beparams/memory field. Needs to be +# removed in Ganeti 2.7 +def _UpdateBeparams(inst): + """Updates the beparams dict of inst to support the memory field. + + @param inst: Inst dict + @return: Updated inst dict + + """ + beparams = inst["beparams"] + beparams[constants.BE_MEMORY] = beparams[constants.BE_MAXMEM] + + return inst + + class R_root(baserlib.ResourceBase): """/ resource. @@ -763,7 +778,7 @@ class R_2_instances(baserlib.OpcodeResource): use_locking = self.useLocking() if self.useBulk(): bulkdata = client.QueryInstances([], I_FIELDS, use_locking) - return baserlib.MapBulkFields(bulkdata, I_FIELDS) + return map(_UpdateBeparams, baserlib.MapBulkFields(bulkdata, I_FIELDS)) else: instancesdata = client.QueryInstances([], ["name"], use_locking) instanceslist = [row[0] for row in instancesdata] @@ -816,7 +831,7 @@ class R_2_instances_name(baserlib.OpcodeResource): fields=I_FIELDS, use_locking=self.useLocking()) - return baserlib.MapFields(I_FIELDS, result[0]) + return _UpdateBeparams(baserlib.MapFields(I_FIELDS, result[0])) def GetDeleteOpInput(self): """Delete an instance. -- GitLab