diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 5864ee1cf33755b034799dd48140474ca452a78b..fb3b84ec399806e53834ecd003aeac433dadf0f2 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2158,7 +2158,7 @@ class LUReinstallInstance(LogicalUnit): if pnode is None: raise errors.OpPrereqError("Primary node '%s' is unknown" % self.op.pnode) - os_obj = rpc.call_os_get([pnode.name], self.op.os_type)[pnode.name] + os_obj = rpc.call_os_get(pnode.name, self.op.os_type) if not isinstance(os_obj, objects.OS): raise errors.OpPrereqError("OS '%s' not in supported OS list for" " primary node" % self.op.os_type) @@ -2949,7 +2949,7 @@ class LUCreateInstance(LogicalUnit): (node, info['vg_free'], req_size)) # os verification - os_obj = rpc.call_os_get([pnode.name], self.op.os_type)[pnode.name] + os_obj = rpc.call_os_get(pnode.name, self.op.os_type) if not isinstance(os_obj, objects.OS): raise errors.OpPrereqError("OS '%s' not in supported os list for" " primary node" % self.op.os_type) diff --git a/lib/rpc.py b/lib/rpc.py index d84a85e042132f52d2038e23a024a1fccd87b92c..82a78ebfc86e3b465e182097fd3f226aa1f96bea 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -653,25 +653,24 @@ def call_os_diagnose(node_list): return new_result -def call_os_get(node_list, name): +def call_os_get(node, name): """Returns an OS definition. - This is a multi-node call. + This is a single-node call. """ c = Client("os_get", [name]) - c.connect_list(node_list) + c.connect(node) c.run() - result = c.getresult() - new_result = {} - for node_name in result: - data = result[node_name] - if isinstance(data, dict): - new_result[node_name] = objects.OS.FromDict(data) - elif isinstance(data, tuple) and len(data) == 3: - new_result[node_name] = errors.InvalidOS(data[0], data[1], data[2]) - else: - new_result[node_name] = data + result = c.getresult().get(node, False) + + if isinstance(result, dict): + new_result = objects.OS.FromDict(result) + elif isinstance(result, tuple) and len(data) == 3: + new_result = errors.InvalidOS(result[0], result[1], result[2]) + else: + new_result = result + return new_result