diff --git a/lib/backend.py b/lib/backend.py index f1474b71cf666fb7cb5eafa80b5dc5f584a62bd9..769e6a66fa0b72cecd3e85c2faaa015db3c63ef8 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1851,7 +1851,7 @@ def _TryOSFromDisk(name, base_dir=None): return False, ("File '%s' under path '%s' is not executable" % (filename, os_dir)) - variants = None + variants = [] if constants.OS_VARIANTS_FILE in os_files: variants_file = os_files[constants.OS_VARIANTS_FILE] try: diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 8f58243e38b7c9a85272e083af8fe079442b87d4..baa0a9ab82cf3b15f1bdcfd294a2578d62fb7772 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2782,14 +2782,14 @@ class LUDiagnoseOS(NoHooksLU): for osl in os_data.values(): valid = valid and osl and osl[0][1] if not valid: - variants = None + variants = set() break if calc_variants: node_variants = osl[0][3] if variants is None: - variants = node_variants + variants = set(node_variants) else: - variants = [v for v in variants if v in node_variants] + variants.intersection_update(node_variants) for field in self.op.output_fields: if field == "name": @@ -2802,7 +2802,7 @@ class LUDiagnoseOS(NoHooksLU): for node_name, nos_list in os_data.items(): val[node_name] = nos_list elif field == "variants": - val = variants + val = list(variants) else: raise errors.ParameterError(field) row.append(val)