def cluster_remote_node(argv): if len(argv) < 1: usage.cluster(["remote-node"]) sys.exit(1) command = argv.pop(0) if command == "add": if len(argv) < 2: usage.cluster(["remote-node"]) sys.exit(1) hostname = argv.pop(0) rsc = argv.pop(0) if not utils.is_resource(rsc): utils.err("unable to find resource '%s'", rsc) resource.resource_update(rsc, ["meta", "remote-node="+hostname] + argv) elif command in ["remove","delete"]: if len(argv) < 1: usage.cluster(["remote-node"]) sys.exit(1) hostname = argv.pop(0) dom = utils.get_cib_dom() nvpairs = dom.getElementsByTagName("nvpair") nvpairs_to_remove = [] for nvpair in nvpairs: if nvpair.getAttribute("name") == "remote-node" and nvpair.getAttribute("value") == hostname: for np in nvpair.parentNode.getElementsByTagName("nvpair"): if np.getAttribute("name").startswith("remote-"): nvpairs_to_remove.append(np) for nvpair in nvpairs_to_remove[:]: nvpair.parentNode.removeChild(nvpair) utils.replace_cib_configuration(dom) else: usage.cluster(["remote-node"]) sys.exit(1)
def cluster_remote_node(argv): if len(argv) < 1: usage.cluster(["remote-node"]) sys.exit(1) command = argv.pop(0) if command == "add": if len(argv) < 2: usage.cluster(["remote-node"]) sys.exit(1) hostname = argv.pop(0) rsc = argv.pop(0) if not utils.is_resource(rsc): utils.err("unable to find resource '%s'", rsc) resource.resource_update(rsc, ["meta", "remote-node="+hostname] + argv) elif command == "remove": if len(argv) < 1: usage.cluster(["remote-node"]) sys.exit(1) hostname = argv.pop(0) dom = utils.get_cib_dom() nvpairs = dom.getElementsByTagName("nvpair") nvpairs_to_remove = [] for nvpair in nvpairs: if nvpair.getAttribute("name") == "remote-node" and nvpair.getAttribute("value") == hostname: for np in nvpair.parentNode.getElementsByTagName("nvpair"): if np.getAttribute("name").startswith("remote-"): nvpairs_to_remove.append(np) for nvpair in nvpairs_to_remove[:]: nvpair.parentNode.removeChild(nvpair) utils.replace_cib_configuration(dom) else: usage.cluster(["remote-node"]) sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith() elif (sub_cmd == "create"): stn_id = argv.pop(0) stn_type = "stonith:"+argv.pop(0) st_values = [] op_values = [] op_args = False for arg in argv: if op_args: op_values.append(arg) else: if arg == "op": op_args = True else: st_values.append(arg) resource.resource_create(stn_id, stn_type, st_values, op_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id,argv) elif (sub_cmd == "delete"): stn_id = argv.pop(0) resource_remove(stn_id) elif (sub_cmd == "list" or sub_cmd == "show"): stonith_show(argv) else: usage.stonith()
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith(argv) elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): if len(argv) < 2: usage.stonith() sys.exit(1) stn_id = argv.pop(0) stn_type = "stonith:"+argv.pop(0) st_values, op_values, meta_values = resource.parse_resource_options( argv, with_clone=False ) resource.resource_create(stn_id, stn_type, st_values, op_values, meta_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id,argv) elif (sub_cmd == "delete"): if len(argv) == 1: stn_id = argv.pop(0) utils.replace_cib_configuration( stonith_level_rm_device(utils.get_cib_dom(), stn_id) ) resource.resource_remove(stn_id) else: usage.stonith(["delete"]) sys.exit(1) elif (sub_cmd == "show"): resource.resource_show(argv, True) stonith_level([]) elif (sub_cmd == "level"): stonith_level(argv) elif (sub_cmd == "fence"): stonith_fence(argv) elif (sub_cmd == "cleanup"): if len(argv) == 0: resource.resource_cleanup_all() else: res_id = argv.pop(0) resource.resource_cleanup(res_id) elif (sub_cmd == "confirm"): stonith_confirm(argv) else: usage.stonith() sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith(argv) elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): if len(argv) < 2: usage.stonith() sys.exit(1) stn_id = argv.pop(0) stn_type = "stonith:" + argv.pop(0) st_values, op_values, meta_values = resource.parse_resource_options( argv, with_clone=False) resource.resource_create(stn_id, stn_type, st_values, op_values, meta_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id, argv) elif (sub_cmd == "delete"): if len(argv) == 1: stn_id = argv.pop(0) utils.replace_cib_configuration( stonith_level_rm_device(utils.get_cib_dom(), stn_id)) resource.resource_remove(stn_id) else: usage.stonith(["delete"]) sys.exit(1) elif (sub_cmd == "show"): resource.resource_show(argv, True) stonith_level([]) elif (sub_cmd == "level"): stonith_level(argv) elif (sub_cmd == "fence"): stonith_fence(argv) elif (sub_cmd == "cleanup"): if len(argv) == 0: resource.resource_cleanup_all() else: res_id = argv.pop(0) resource.resource_cleanup(res_id) elif (sub_cmd == "confirm"): stonith_confirm(argv) else: usage.stonith() sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith() elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): if len(argv) < 2: usage.stonith() sys.exit(1) stn_id = argv.pop(0) stn_type = "stonith:"+argv.pop(0) st_values = [] op_values = [] op_args = False for arg in argv: if op_args: op_values.append(arg) else: if arg == "op": op_args = True else: st_values.append(arg) resource.resource_create(stn_id, stn_type, st_values, op_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id,argv) elif (sub_cmd == "delete"): if len(argv) > 0: stn_id = argv.pop(0) resource.resource_remove(stn_id) else: usage.stonith() sys.exit(1) elif (sub_cmd == "show"): stonith_show(argv) else: usage.stonith() sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith(argv) elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): stonith_create(argv) elif (sub_cmd == "update"): if len(argv) > 1: stn_id = argv.pop(0) resource.resource_update(stn_id,argv) else: usage.stonith(["update"]) sys.exit(1) elif (sub_cmd == "delete"): if len(argv) == 1: stn_id = argv.pop(0) resource.resource_remove(stn_id) else: usage.stonith(["delete"]) sys.exit(1) elif (sub_cmd == "show"): resource.resource_show(argv, True) stonith_level([]) elif (sub_cmd == "level"): stonith_level(argv) elif (sub_cmd == "fence"): stonith_fence(argv) elif (sub_cmd == "cleanup"): if len(argv) == 0: resource.resource_cleanup_all() else: res_id = argv.pop(0) resource.resource_cleanup(res_id) elif (sub_cmd == "confirm"): stonith_confirm(argv) else: usage.stonith() sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith(argv) elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): if len(argv) < 2: usage.stonith() sys.exit(1) stn_id = argv.pop(0) stn_type = "stonith:"+argv.pop(0) st_values = [] op_values = [[]] meta_values=[] op_args = False meta_args = False for arg in argv: if arg == "op": op_args = True meta_args = False elif arg == "meta": meta_args = True op_args = False else: if op_args: if arg == "op": op_values.append([]) elif "=" not in arg and len(op_values[-1]) != 0: op_values.append([]) op_values[-1].append(arg) else: op_values[-1].append(arg) elif meta_args: if "=" in arg: meta_values.append(arg) else: st_values.append(arg) resource.resource_create(stn_id, stn_type, st_values, op_values, meta_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id,argv) elif (sub_cmd == "delete"): if len(argv) > 0: stn_id = argv.pop(0) resource.resource_remove(stn_id) else: usage.stonith() sys.exit(1) elif (sub_cmd == "show"): resource.resource_show(argv, True) stonith_level([]) elif (sub_cmd == "level"): stonith_level(argv) elif (sub_cmd == "fence"): stonith_fence(argv) elif (sub_cmd == "cleanup"): if len(argv) < 1: usage.stonith(["cleanup"]) sys.exit(1) res_id = argv.pop(0) resource.resource_cleanup(res_id) elif (sub_cmd == "confirm"): stonith_confirm(argv) else: usage.stonith() sys.exit(1)
def stonith_cmd(argv): if len(argv) == 0: argv = ["show"] sub_cmd = argv.pop(0) if (sub_cmd == "help"): usage.stonith(argv) elif (sub_cmd == "list"): stonith_list_available(argv) elif (sub_cmd == "describe"): if len(argv) == 1: stonith_list_options(argv[0]) else: usage.stonith() sys.exit(1) elif (sub_cmd == "create"): if len(argv) < 2: usage.stonith() sys.exit(1) stn_id = argv.pop(0) stn_type = "stonith:"+argv.pop(0) st_values = [] op_values = [[]] meta_values=[] op_args = False meta_args = False for arg in argv: if arg == "op": op_args = True meta_args = False elif arg == "meta": meta_args = True op_args = False else: if op_args: if arg == "op": op_values.append([]) elif "=" not in arg and len(op_values[-1]) != 0: op_values.append([]) op_values[-1].append(arg) else: op_values[-1].append(arg) elif meta_args: if "=" in arg: meta_values.append(arg) else: st_values.append(arg) resource.resource_create(stn_id, stn_type, st_values, op_values, meta_values) elif (sub_cmd == "update"): stn_id = argv.pop(0) resource.resource_update(stn_id,argv) elif (sub_cmd == "delete"): if len(argv) > 0: stn_id = argv.pop(0) resource.resource_remove(stn_id) else: usage.stonith() sys.exit(1) elif (sub_cmd == "show"): resource.resource_show(argv, True) stonith_level([]) elif (sub_cmd == "level"): stonith_level(argv) elif (sub_cmd == "fence"): stonith_fence(argv) elif (sub_cmd == "confirm"): stonith_confirm(argv) else: usage.stonith() sys.exit(1)