- for node_name in node_data:
- if node_name in all_os[os_name]:
- first_os = all_os[os_name][node_name].pop(0)
- first_os_status = _DiagnoseOSStatus(first_os)
- if _DiagnoseOSValid(first_os):
- nodes_valid[node_name] = first_os_status
+ nodes_hidden = {}
+ for node_name, node_info in node_data.iteritems():
+ nodes_hidden[node_name] = []
+ if node_info: # at least one entry in the per-node list
+ (fo_path, fo_status, fo_msg, fo_variants,
+ fo_params, fo_api) = node_info.pop(0)
+ fo_msg = "%s (path: %s)" % (_OsStatus(fo_status, fo_msg), fo_path)
+ if fo_api:
+ max_os_api = max(fo_api)
+ fo_msg += " [API versions: %s]" % utils.CommaJoin(fo_api)
+ else:
+ max_os_api = 0
+ fo_msg += " [no API versions declared]"
+
+ if max_os_api >= constants.OS_API_V15:
+ if fo_variants:
+ fo_msg += " [variants: %s]" % utils.CommaJoin(fo_variants)
+ else:
+ fo_msg += " [no variants]"
+ if max_os_api >= constants.OS_API_V20:
+ if fo_params:
+ fo_msg += (" [parameters: %s]" %
+ utils.CommaJoin([v[0] for v in fo_params]))
+ else:
+ fo_msg += " [no parameters]"
+ if fo_status:
+ nodes_valid[node_name] = fo_msg