From d599d686dbde880026f4cf2fe934281e78c94f0f Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Mon, 1 Dec 2008 06:02:06 +0000 Subject: [PATCH] Fix errors when the node info RPC is incomplete [Forward-port from the 1.2 branch] If ganeti starts before xend, the node information will not have all the fields filled in. The patch changes so that missing keys will be treated as unknown (this applies to other cases as well, not only xend not started). Reviewed-by: ultrotter --- lib/cmdlib.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 52fa77aef..acde43dca 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1604,14 +1604,15 @@ class LUQueryNodes(NoHooksLU): for name in nodenames: nodeinfo = node_data.get(name, None) if nodeinfo: + fn = utils.TryConvert live_data[name] = { - "mtotal": utils.TryConvert(int, nodeinfo['memory_total']), - "mnode": utils.TryConvert(int, nodeinfo['memory_dom0']), - "mfree": utils.TryConvert(int, nodeinfo['memory_free']), - "dtotal": utils.TryConvert(int, nodeinfo['vg_size']), - "dfree": utils.TryConvert(int, nodeinfo['vg_free']), - "ctotal": utils.TryConvert(int, nodeinfo['cpu_total']), - "bootid": nodeinfo['bootid'], + "mtotal": fn(int, nodeinfo.get('memory_total', None)), + "mnode": fn(int, nodeinfo.get('memory_dom0', None)), + "mfree": fn(int, nodeinfo.get('memory_free', None)), + "dtotal": fn(int, nodeinfo.get('vg_size', None)), + "dfree": fn(int, nodeinfo.get('vg_free', None)), + "ctotal": fn(int, nodeinfo.get('cpu_total', None)), + "bootid": nodeinfo.get('bootid', None), } else: live_data[name] = {} -- GitLab