def node_standby(argv,standby=True): # If we didn't specify any arguments, use the current node name if len(argv) == 0 and "--all" not in utils.pcs_options: p = subprocess.Popen(["uname","-n"], stdout=subprocess.PIPE) cur_node = p.stdout.readline().rstrip() argv = [cur_node] nodes = utils.getNodesFromPacemaker() if "--all" not in utils.pcs_options: nodeFound = False for node in nodes: if node == argv[0]: nodeFound = True break if not nodeFound: utils.err("node '%s' does not appear to exist in configuration" % argv[0]) if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node]) else: for node in nodes: if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node])
def node_standby(argv,standby=True): if len(argv) == 0 and "--all" not in utils.pcs_options: if standby: usage.cluster(["standby"]) else: usage.cluster(["unstandby"]) sys.exit(1) nodes = utils.getNodesFromPacemaker() if "--all" not in utils.pcs_options: nodeFound = False for node in nodes: if node == argv[0]: nodeFound = True break if not nodeFound: utils.err("node '%s' does not appear to exist in configuration" % argv[0]) if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node]) else: for node in nodes: if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node])
def node_standby(argv, standby=True): if len(argv) == 0 and "--all" not in utils.pcs_options: if standby: usage.cluster(["standby"]) else: usage.cluster(["unstandby"]) sys.exit(1) nodes = utils.getNodesFromPacemaker() if "--all" not in utils.pcs_options: nodeFound = False for node in nodes: if node == argv[0]: nodeFound = True break if not nodeFound: utils.err("node '%s' does not appear to exist in configuration" % argv[0]) if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node]) else: for node in nodes: if standby: utils.run(["crm_standby", "-v", "on", "-N", node]) else: utils.run(["crm_standby", "-D", "-N", node])
def node_maintenance(argv, on=True): action = ["-v", "on"] if on else ["-D"] cluster_nodes = utils.getNodesFromPacemaker() nodes = [] failed_count = 0 if "--all" in utils.pcs_options: nodes = cluster_nodes elif argv: for node in argv: if node not in cluster_nodes: utils.err( "Node '%s' does not appear to exist in configuration" % argv[0], False ) failed_count += 1 else: nodes.append(node) else: nodes.append("") for node in nodes: node = ["-N", node] if node else [] output, retval = utils.run( ["crm_attribute", "-t", "nodes", "-n", "maintenance"] + action + node ) if retval != 0: node_name = ("node '%s'" % node) if argv else "current node" failed_count += 1 if on: utils.err( "Unable to put %s to maintenance mode.\n%s" % (node_name, output), False ) else: utils.err( "Unable to remove %s from maintenance mode.\n%s" % (node_name, output), False ) if failed_count > 0: sys.exit(1)
def nodes_status(argv): if len(argv) == 1 and argv[0] == "pacemaker-id": for node_id, node_name in utils.getPacemakerNodesID().items(): print("{0} {1}".format(node_id, node_name)) return if len(argv) == 1 and argv[0] == "corosync-id": for node_id, node_name in utils.getCorosyncNodesID().items(): print("{0} {1}".format(node_id, node_name)) return if len(argv) == 1 and (argv[0] == "config"): corosync_nodes = utils.getNodesFromCorosyncConf() pacemaker_nodes = utils.getNodesFromPacemaker() print("Corosync Nodes:") print("", end=' ') for node in corosync_nodes: print(node.strip(), end=' ') print("") print("Pacemaker Nodes:") print("", end=' ') for node in pacemaker_nodes: print(node.strip(), end=' ') return if len(argv) == 1 and (argv[0] == "corosync" or argv[0] == "both"): all_nodes = utils.getNodesFromCorosyncConf() online_nodes = utils.getCorosyncActiveNodes() offline_nodes = [] for node in all_nodes: if node in online_nodes: next else: offline_nodes.append(node) online_nodes.sort() offline_nodes.sort() print("Corosync Nodes:") print(" Online:", end=' ') for node in online_nodes: print(node, end=' ') print("") print(" Offline:", end=' ') for node in offline_nodes: print(node, end=' ') print("") if argv[0] != "both": sys.exit(0) info_dom = utils.getClusterState() nodes = info_dom.getElementsByTagName("nodes") if nodes.length == 0: utils.err("No nodes section found") onlinenodes = [] offlinenodes = [] standbynodes = [] for node in nodes[0].getElementsByTagName("node"): if node.getAttribute("online") == "true": if node.getAttribute("standby") == "true": standbynodes.append(node.getAttribute("name")) else: onlinenodes.append(node.getAttribute("name")) else: offlinenodes.append(node.getAttribute("name")) print("Pacemaker Nodes:") print(" Online:", end=' ') for node in onlinenodes: print(node, end=' ') print("") print(" Standby:", end=' ') for node in standbynodes: print(node, end=' ') print("") print(" Offline:", end=' ') for node in offlinenodes: print(node, end=' ') print("")
def nodes_status(argv): if len(argv) == 1 and (argv[0] == "config"): corosync_nodes = utils.getNodesFromCorosyncConf() pacemaker_nodes = utils.getNodesFromPacemaker() print "Corosync Nodes:" print "", for node in corosync_nodes: print node.strip(), print "" print "Pacemaker Nodes:" print "", for node in pacemaker_nodes: print node.strip(), return if len(argv) == 1 and (argv[0] == "corosync" or argv[0] == "both"): all_nodes = utils.getNodesFromCorosyncConf() online_nodes = utils.getCorosyncActiveNodes() offline_nodes = [] for node in all_nodes: if node in online_nodes: next else: offline_nodes.append(node) online_nodes.sort() offline_nodes.sort() print "Corosync Nodes:" print " Online:", for node in online_nodes: print node, print "" print " Offline:", for node in offline_nodes: print node, print "" if argv[0] != "both": sys.exit(0) info_dom = utils.getClusterState() nodes = info_dom.getElementsByTagName("nodes") if nodes.length == 0: utils.err("No nodes section found") onlinenodes = [] offlinenodes = [] standbynodes = [] for node in nodes[0].getElementsByTagName("node"): if node.getAttribute("online") == "true": if node.getAttribute("standby") == "true": standbynodes.append(node.getAttribute("name")) else: onlinenodes.append(node.getAttribute("name")) else: offlinenodes.append(node.getAttribute("name")) print "Pacemaker Nodes:" print " Online:", for node in onlinenodes: print node, print "" print " Standby:", for node in standbynodes: print node, print "" print " Offline:", for node in offlinenodes: print node, print ""
def nodes_status(argv): if len(argv) == 1 and (argv[0] == "config"): corosync_nodes = utils.getNodesFromCorosyncConf() pacemaker_nodes = utils.getNodesFromPacemaker() print "Corosync Nodes:" print "", for node in corosync_nodes: print node.strip(), print "" print "Pacemaker Nodes:" print "", for node in pacemaker_nodes: print node.strip(), return if len(argv) == 1 and (argv[0] == "corosync" or argv[0] == "both"): all_nodes = utils.getNodesFromCorosyncConf() online_nodes = utils.getCorosyncActiveNodes() offline_nodes = [] for node in all_nodes: if node in online_nodes: next else: offline_nodes.append(node) online_nodes.sort() offline_nodes.sort() print "Corosync Nodes:" print " Online:", for node in online_nodes: print node, print "" print " Offline:", for node in offline_nodes: print node, print "" if argv[0] != "both": sys.exit(0) info_dom = utils.getClusterState() nodes = info_dom.getElementsByTagName("nodes") if nodes.length == 0: print "Error: No nodes section found" sys.exit(1) onlinenodes = [] offlinenodes = [] standbynodes = [] for node in nodes[0].getElementsByTagName("node"): if node.getAttribute("online") == "true": if node.getAttribute("standby") == "true": standbynodes.append(node.getAttribute("name")) else: onlinenodes.append(node.getAttribute("name")) else: offlinenodes.append(node.getAttribute("name")) print "Pacemaker Nodes:" print " Online:", for node in onlinenodes: print node, print "" print " Standby:", for node in standbynodes: print node, print "" print " Offline:", for node in offlinenodes: print node, print ""
def nodes_status(argv): if len(argv) == 1 and argv[0] == "pacemaker-id": for node_id, node_name in utils.getPacemakerNodesID().items(): print("{0} {1}".format(node_id, node_name)) return if len(argv) == 1 and argv[0] == "corosync-id": for node_id, node_name in utils.getCorosyncNodesID().items(): print("{0} {1}".format(node_id, node_name)) return if len(argv) == 1 and (argv[0] == "config"): corosync_nodes = utils.getNodesFromCorosyncConf() pacemaker_nodes = utils.getNodesFromPacemaker() print("Corosync Nodes:") if corosync_nodes: print(" " + " ".join(corosync_nodes)) print("Pacemaker Nodes:") if pacemaker_nodes: print(" " + " ".join(pacemaker_nodes)) return if len(argv) == 1 and (argv[0] == "corosync" or argv[0] == "both"): all_nodes = utils.getNodesFromCorosyncConf() online_nodes = utils.getCorosyncActiveNodes() offline_nodes = [] for node in all_nodes: if node in online_nodes: next else: offline_nodes.append(node) online_nodes.sort() offline_nodes.sort() print("Corosync Nodes:") print(" ".join([" Online:"] + online_nodes)) print(" ".join([" Offline:"] + offline_nodes)) if argv[0] != "both": sys.exit(0) info_dom = utils.getClusterState() nodes = info_dom.getElementsByTagName("nodes") if nodes.length == 0: utils.err("No nodes section found") onlinenodes = [] offlinenodes = [] standbynodes = [] maintenancenodes = [] remote_onlinenodes = [] remote_offlinenodes = [] remote_standbynodes = [] remote_maintenancenodes = [] for node in nodes[0].getElementsByTagName("node"): node_name = node.getAttribute("name") node_remote = node.getAttribute("type") == "remote" if node.getAttribute("online") == "true": if node.getAttribute("standby") == "true": if node_remote: remote_standbynodes.append(node_name) else: standbynodes.append(node_name) elif node.getAttribute("maintenance") == "true": if node_remote: remote_maintenancenodes.append(node_name) else: maintenancenodes.append(node_name) else: if node_remote: remote_onlinenodes.append(node_name) else: onlinenodes.append(node_name) else: if node_remote: remote_offlinenodes.append(node_name) else: offlinenodes.append(node_name) print("Pacemaker Nodes:") print(" ".join([" Online:"] + onlinenodes)) print(" ".join([" Standby:"] + standbynodes)) print(" ".join([" Maintenance:"] + maintenancenodes)) print(" ".join([" Offline:"] + offlinenodes)) print("Pacemaker Remote Nodes:") print(" ".join([" Online:"] + remote_onlinenodes)) print(" ".join([" Standby:"] + remote_standbynodes)) print(" ".join([" Maintenance:"] + remote_maintenancenodes)) print(" ".join([" Offline:"] + remote_offlinenodes))
def nodes_status(argv): #print("rrr 02011 nodes_status") with open("/python.out", "a") as myfile: myfile.write("rrr 02011 nodes_status") if len(argv) == 1 and argv[0] == "pacemaker-id": for node_id, node_name in utils.getPacemakerNodesID().items(): print "{0} {1}".format(node_id, node_name) return if len(argv) == 1 and argv[0] == "corosync-id": for node_id, node_name in utils.getCorosyncNodesID().items(): print "{0} {1}".format(node_id, node_name) return if len(argv) == 1 and (argv[0] == "config"): corosync_nodes = utils.getNodesFromCorosyncConf() pacemaker_nodes = utils.getNodesFromPacemaker() print "Corosync Nodes:" print "", for node in corosync_nodes: print node.strip(), print "" print "Pacemaker Nodes:" print "", for node in pacemaker_nodes: print node.strip(), return if len(argv) == 1 and (argv[0] == "corosync" or argv[0] == "both"): all_nodes = utils.getNodesFromCorosyncConf() online_nodes = utils.getCorosyncActiveNodes() offline_nodes = [] for node in all_nodes: if node in online_nodes: next else: offline_nodes.append(node) online_nodes.sort() offline_nodes.sort() print "Corosync Nodes:" print " Online:", for node in online_nodes: print node, print "" print " Offline:", for node in offline_nodes: print node, print "" if argv[0] != "both": sys.exit(0) info_dom = utils.getClusterState() nodes = info_dom.getElementsByTagName("nodes") if nodes.length == 0: utils.err("No nodes section found") onlinenodes = [] offlinenodes = [] standbynodes = [] for node in nodes[0].getElementsByTagName("node"): if node.getAttribute("online") == "true": if node.getAttribute("standby") == "true": standbynodes.append(node.getAttribute("name")) else: onlinenodes.append(node.getAttribute("name")) else: offlinenodes.append(node.getAttribute("name")) print "Pacemaker Nodes:" print " Online:", for node in onlinenodes: print node, print "" print " Standby:", for node in standbynodes: print node, print "" print " Offline:", for node in offlinenodes: print node, print ""