def upgrade_bcf(node_dic): for hostname, node in node_dic.iteritems(): if node.skip: safe_print("skip node %(fqdn)s due to %(error)s\n" % { 'fqdn': node.fqdn, 'error': node.error }) continue if node.tag != node.env_tag: safe_print("skip node %(fqdn)s due to mismatched tag\n" % {'fqdn': node.fqdn}) continue if node.os == const.CENTOS: Helper.generate_upgrade_scripts_for_centos(node) elif node.os == const.UBUNTU: Helper.generate_upgrade_scripts_for_ubuntu(node) elif node.os == const.REDHAT: Helper.generate_upgrade_scripts_for_redhat(node) node_q.put(node) with open(const.LOG_FILE, "a") as log_file: for hostname, node in node_dic.iteritems(): log_file.write(str(node)) # Use multiple threads to setup compute nodes for i in range(const.MAX_WORKERS): t = threading.Thread(target=worker_upgrade_or_sriov_node, args=(node_q, )) t.daemon = True t.start() node_q.join() sorted_time_dict = OrderedDict( sorted(time_dict.items(), key=lambda x: x[1])) for fqdn, h_time in sorted_time_dict.items(): safe_print("node: %(fqdn)s, time: %(time).2f\n" % { 'fqdn': fqdn, 'time': h_time }) safe_print("Big Cloud Fabric deployment finished! " "Check %(log)s on each node for details.\n" % {'log': const.LOG_FILE})
def upgrade_bcf(node_dic): for hostname, node in node_dic.iteritems(): if node.skip: safe_print("skip node %(fqdn)s due to %(error)s\n" % {'fqdn': node.fqdn, 'error': node.error}) continue if node.tag != node.env_tag: safe_print("skip node %(fqdn)s due to mismatched tag\n" % {'fqdn': node.fqdn}) continue if node.os == const.CENTOS: Helper.generate_upgrade_scripts_for_centos(node) elif node.os == const.UBUNTU: Helper.generate_upgrade_scripts_for_ubuntu(node) elif node.os == const.REDHAT: Helper.generate_upgrade_scripts_for_redhat(node) node_q.put(node) with open(const.LOG_FILE, "a") as log_file: for hostname, node in node_dic.iteritems(): log_file.write(str(node)) # Use multiple threads to setup compute nodes for i in range(const.MAX_WORKERS): t = threading.Thread(target=worker_upgrade_node, args=(node_q,)) t.daemon = True t.start() node_q.join() sorted_time_dict = OrderedDict(sorted(time_dict.items(), key=lambda x: x[1])) for fqdn, h_time in sorted_time_dict.items(): safe_print("node: %(fqdn)s, time: %(time).2f\n" % {'fqdn': fqdn, 'time': h_time}) safe_print("Big Cloud Fabric deployment finished! " "Check %(log)s on each node for details.\n" % {'log': const.LOG_FILE})