From 7ad1af4a4f513c5f2fa8ebac0a6147fea05e3873 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Tue, 9 Jun 2009 16:00:28 +0200 Subject: [PATCH] Convert instance_info rpc to new style result Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Guido Trotter <ultrotter@google.com> --- lib/backend.py | 2 +- lib/cmdlib.py | 35 +++++++++++++++++++++++++---------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index 1f571fd9a..a54a6ced3 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -632,7 +632,7 @@ def GetInstanceInfo(instance, hname): output['state'] = iinfo[4] output['time'] = iinfo[5] - return output + return True, output def GetInstanceMigratable(instance): diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 9de2a138b..ebe9a0d23 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2912,8 +2912,11 @@ class LUStartupInstance(LogicalUnit): remote_info = self.rpc.call_instance_info(instance.primary_node, instance.name, instance.hypervisor) - remote_info.Raise() - if not remote_info.data: + msg = remote_info.RemoteFailMsg() + if msg: + raise errors.OpPrereqError("Error checking node %s: %s" % + (instance.primary_node, msg)) + if not remote_info.payload: # not running already _CheckNodeFreeMemory(self, instance.primary_node, "starting instance %s" % instance.name, bep[constants.BE_MEMORY], instance.hypervisor) @@ -3114,8 +3117,11 @@ class LUReinstallInstance(LogicalUnit): remote_info = self.rpc.call_instance_info(instance.primary_node, instance.name, instance.hypervisor) - remote_info.Raise() - if remote_info.data: + msg = remote_info.RemoteFailMsg() + if msg: + raise errors.OpPrereqError("Error checking node %s: %s" % + (instance.primary_node, msg)) + if remote_info.payload: raise errors.OpPrereqError("Instance '%s' is running on the node %s" % (self.op.instance_name, instance.primary_node)) @@ -3198,8 +3204,11 @@ class LURenameInstance(LogicalUnit): remote_info = self.rpc.call_instance_info(instance.primary_node, instance.name, instance.hypervisor) - remote_info.Raise() - if remote_info.data: + msg = remote_info.RemoteFailMsg() + if msg: + raise errors.OpPrereqError("Error checking node %s: %s" % + (instance.primary_node, msg)) + if remote_info.payload: raise errors.OpPrereqError("Instance '%s' is running on the node %s" % (self.op.instance_name, instance.primary_node)) @@ -5807,8 +5816,11 @@ class LUQueryInstanceData(NoHooksLU): remote_info = self.rpc.call_instance_info(instance.primary_node, instance.name, instance.hypervisor) - remote_info.Raise() - remote_info = remote_info.data + msg = remote_info.RemoteFailMsg() + if msg: + raise errors.OpExecError("Error checking node %s: %s" % + (instance.primary_node, msg)) + remote_info = remote_info.payload if remote_info and "state" in remote_info: remote_state = "up" else: @@ -6099,9 +6111,12 @@ class LUSetInstanceParams(LogicalUnit): if nodeinfo[pnode].failed or not isinstance(nodeinfo[pnode].data, dict): # Assume the primary node is unreachable and go ahead self.warn.append("Can't get info from primary node %s" % pnode) + elif instance_info.RemoteFailMsg(): + self.warn.append("Can't get instance runtime information: %s" % + instance_info.RemoteFailMsg()) else: - if not instance_info.failed and instance_info.data: - current_mem = int(instance_info.data['memory']) + if instance_info.payload: + current_mem = int(instance_info.payload['memory']) else: # Assume instance not running # (there is a slight race condition here, but it's not very probable, -- GitLab