def validate_install(version): log.info("-" * 100) for node in install_utils.NodeHelpers: node.install_success = False if node.rest: try: node_status = node.rest.cluster_status()["nodes"] except: continue for item in node_status: if version in item['version'] and item['status'] == "healthy": node.install_success = True if node.enable_ipv6 and not item["addressFamily"] == "inet6": node.install_success = False afamily = "Unknown" if 'addressFamily' in list(item.keys()): afamily = item['addressFamily'] log.info("node:{0}\tversion:{1}\taFamily:{2}\tservices:{3}".format(item['hostname'], item['version'], afamily, item['services'])) install_utils.print_result_and_exit()
def validate_install(params): log.info("-" * 100) cluster_nodes = {} for node in install_utils.NodeHelpers: version = params["version"] if node.install_success is None: node.install_success = False if params["cluster_version"]: if node.ip != params["bkrs_client"].ip: version = params["cluster_version"] if node.rest: try: node_status = node.rest.cluster_status()["nodes"] except: continue for item in node_status: hostname = item["hostname"] if "alternateAddresses" in item and "external" in item["alternateAddresses"]: hostname = item["alternateAddresses"]["external"]["hostname"] if node.ip not in hostname: continue if version in item['version'] and item['status'] == "healthy": node.install_success = True if node.enable_ipv6 and not item["addressFamily"] == "inet6": node.install_success = False afamily = "Unknown" if 'addressFamily' in list(item.keys()): afamily = item['addressFamily'] cluster_nodes[node.ip] = { "hostname": item["hostname"], "version": item["version"], "afamily": afamily, "services": item["services"] } # check cluster has correct number of nodes if params.get("init_clusters", False): selected_cluster = None for cluster in params["clusters"].values(): for server in cluster: if server.ip == node.ip: selected_cluster = cluster if selected_cluster is not None: if len(node_status) != len(selected_cluster): node.install_success = False clusters = [] if params.get("init_clusters", False): for cluster in params["clusters"].values(): nodes = { node.ip: cluster_nodes[node.ip] for node in cluster} for [ip, node] in nodes.items(): del cluster_nodes[ip] clusters.append(list(nodes.values())) for node in cluster_nodes.values(): clusters.append([node]) for [i, cluster] in enumerate(clusters): for node in cluster: log.info("cluster:C{0}\tnode:{1}\tversion:{2}\taFamily:{3}\tservices:{4}".format(i + 1, node['hostname'], node['version'], node['afamily'], node['services'])) install_utils.print_result_and_exit()