diff --git a/lib/backend.py b/lib/backend.py index 60826438c2d42faa5c9151e271528cf4b6075b4e..7d7b04073e88d92a42470a08812a99696b723ba4 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -480,7 +480,11 @@ def VerifyNode(what, cluster_name): if constants.NV_HYPERVISOR in what: result[constants.NV_HYPERVISOR] = tmp = {} for hv_name in what[constants.NV_HYPERVISOR]: - tmp[hv_name] = hypervisor.GetHypervisor(hv_name).Verify() + try: + val = hypervisor.GetHypervisor(hv_name).Verify() + except errors.HypervisorError, err: + val = "Error while checking hypervisor: %s" % str(err) + tmp[hv_name] = val if constants.NV_FILELIST in what: result[constants.NV_FILELIST] = utils.FingerprintFiles( @@ -523,8 +527,12 @@ def VerifyNode(what, cluster_name): result[constants.NV_LVLIST] = GetVolumeList(what[constants.NV_LVLIST]) if constants.NV_INSTANCELIST in what: - result[constants.NV_INSTANCELIST] = GetInstanceList( - what[constants.NV_INSTANCELIST]) + # GetInstanceList can fail + try: + val = GetInstanceList(what[constants.NV_INSTANCELIST]) + except RPCFail, err: + val = str(err) + result[constants.NV_INSTANCELIST] = val if constants.NV_VGLIST in what: result[constants.NV_VGLIST] = utils.ListVolumeGroups() diff --git a/lib/cmdlib.py b/lib/cmdlib.py index e88f88bc3439b51d8ab034a48de7b348aaded528..4b6b7783309b12985fb9720a88d18770a825895c 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1439,7 +1439,8 @@ class LUVerifyCluster(LogicalUnit): idata = nresult.get(constants.NV_INSTANCELIST, None) test = not isinstance(idata, list) _ErrorIf(test, self.ENODEHV, node, - "rpc call to node failed (instancelist)") + "rpc call to node failed (instancelist): %s", + utils.SafeEncode(str(idata))) if test: continue @@ -1544,7 +1545,7 @@ class LUVerifyCluster(LogicalUnit): _ErrorIf(snode not in node_info and snode not in n_offline, self.ENODERPC, snode, "instance %s, connection to secondary node" - "failed", instance) + " failed", instance) if snode in node_info: node_info[snode]['sinst'].append(instance)