diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 014290fe42e7cae61625d6274312b9a88121c868..8381922e170af65b1ee2d75571204bd02c4edb80 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -171,21 +171,46 @@ def _GetWantedNodes(lu, nodes): nodes: List of nodes (strings) or None for all """ - if nodes is not None and not isinstance(nodes, list): + if not isinstance(nodes, list): raise errors.OpPrereqError("Invalid argument type 'nodes'") if nodes: - wanted_nodes = [] + wanted = [] for name in nodes: node = lu.cfg.GetNodeInfo(lu.cfg.ExpandNodeName(name)) if node is None: raise errors.OpPrereqError("No such node name '%s'" % name) - wanted_nodes.append(node) + wanted.append(node) - return wanted_nodes else: - return [lu.cfg.GetNodeInfo(name) for name in lu.cfg.GetNodeList()] + wanted = [lu.cfg.GetNodeInfo(name) for name in lu.cfg.GetNodeList()] + return wanted + + +def _GetWantedInstances(lu, instances): + """Returns list of checked and expanded instances. + + Args: + instances: List of instances (strings) or None for all + + """ + if not isinstance(instances, list): + raise errors.OpPrereqError("Invalid argument type 'instances'") + + if instances: + wanted = [] + + for name in instances: + instance = lu.cfg.GetInstanceInfo(lu.cfg.ExpandInstanceName(name)) + if instance is None: + raise errors.OpPrereqError("No such instance name '%s'" % name) + wanted.append(instance) + + else: + wanted = [lu.cfg.GetInstanceInfo(name) + for name in lu.cfg.GetInstanceList()] + return wanted def _CheckOutputFields(static, dynamic, selected):