From 217e5022f04f86e7b93049d8346e310d0a1d1601 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 01 2017 03:22:05 +0000 Subject: import fence-agents-4.0.11-66.el7 --- diff --git a/SOURCES/bz1337236-fence_sbd.patch b/SOURCES/bz1337236-fence_sbd.patch new file mode 100644 index 0000000..49acd87 --- /dev/null +++ b/SOURCES/bz1337236-fence_sbd.patch @@ -0,0 +1,563 @@ +diff -uNr a/configure.ac b/configure.ac +--- a/configure.ac 2017-01-16 16:20:32.299438841 +0100 ++++ b/configure.ac 2017-01-16 16:19:09.079326886 +0100 +@@ -309,6 +309,7 @@ + fence/agents/xenapi/Makefile + fence/agents/hds_cb/Makefile + fence/agents/zvm/Makefile ++ fence/agents/sbd/Makefile + doc/Makefile]) + + AC_OUTPUT +diff -uNr a/fence/agents/sbd/fence_sbd.py b/fence/agents/sbd/fence_sbd.py +--- a/fence/agents/sbd/fence_sbd.py 1970-01-01 01:00:00.000000000 +0100 ++++ b/fence/agents/sbd/fence_sbd.py 2017-01-16 16:22:39.273080656 +0100 +@@ -0,0 +1,422 @@ ++#!/usr/bin/python -tt ++ ++import sys, stat ++import logging ++import os ++import atexit ++sys.path.append("@FENCEAGENTSLIBDIR@") ++from fencing import fail_usage, run_command, fence_action, all_opt ++from fencing import atexit_handler, check_input, process_input, show_docs ++from fencing import run_delay ++ ++#BEGIN_VERSION_GENERATION ++RELEASE_VERSION="" ++REDHAT_COPYRIGHT="" ++BUILD_DATE="" ++#END_VERSION_GENERATION ++ ++DEVICE_INIT = 1 ++DEVICE_NOT_INIT = -3 ++PATH_NOT_EXISTS = -1 ++PATH_NOT_BLOCK = -2 ++ ++def is_block_device(filename): ++ """Checks if a given path is a valid block device ++ ++ Key arguments: ++ filename -- the file to check ++ ++ Return codes: ++ True if it's a valid block device ++ False, otherwise ++ """ ++ ++ try: ++ mode = os.lstat(filename).st_mode ++ except OSError: ++ return False ++ else: ++ return stat.S_ISBLK(mode) ++ ++def is_link(filename): ++ """Checks if a given path is a link. ++ ++ Key arguments: ++ filename -- the file to check ++ ++ Return codes: ++ True if it's a link ++ False, otherwise ++ """ ++ ++ try: ++ mode = os.lstat(filename).st_mode ++ except OSError: ++ return False ++ else: ++ return stat.S_ISLNK(mode) ++ ++def check_sbd_device(options, device_path): ++ """checks that a given sbd device exists and is initialized ++ ++ Key arguments: ++ options -- options dictionary ++ device_path -- device path to check ++ ++ Return Codes: ++ 1 / DEVICE_INIT if the device exists and is initialized ++ -1 / PATH_NOT_EXISTS if the path does not exists ++ -2 / PATH_NOT_BLOCK if the path exists but is not a valid block device ++ -3 / DEVICE_NOT_INIT if the sbd device is not initialized ++ """ ++ ++ # First of all we need to check if the device is valid ++ if not os.path.exists(device_path): ++ return PATH_NOT_EXISTS ++ ++ # We need to check if device path is a symbolic link. If so we resolve that ++ # link. ++ if is_link(device_path): ++ link_target = os.readlink(device_path) ++ device_path = os.path.join(os.path.dirname(device_path), link_target) ++ ++ # As second step we make sure it's a valid block device ++ if not is_block_device(device_path): ++ return PATH_NOT_BLOCK ++ ++ cmd = "%s -d %s dump" % (options["--sbd-path"], device_path) ++ ++ (return_code, out, err) = run_command(options, cmd) ++ ++ for line in out.split("\n"): ++ if len(line) == 0: ++ continue ++ ++ # If we read "NOT dumped" something went wrong, e.g. the device is not ++ # initialized. ++ if "NOT dumped" in line: ++ return DEVICE_NOT_INIT ++ ++ return DEVICE_INIT ++ ++def generate_sbd_command(options, command, arguments=None): ++ """Generates a sbd command based on given arguments. ++ ++ Return Value: ++ generated sbd command (string) ++ """ ++ cmd = options["--sbd-path"] ++ ++ # add "-d" for each sbd device ++ for device in parse_sbd_devices(options): ++ cmd += " -d %s" % device ++ ++ cmd += " %s %s" % (command, arguments) ++ ++ return cmd ++ ++def send_sbd_message(conn, options, plug, message): ++ """Sends a message to all sbd devices. ++ ++ Key arguments: ++ conn -- connection structure ++ options -- options dictionary ++ plug -- plug to sent the message to ++ message -- message to send ++ ++ Return Value: ++ (return_code, out, err) Tuple containing the error code, ++ """ ++ ++ del conn ++ ++ arguments = "%s %s" % (plug, message) ++ cmd = generate_sbd_command(options, "message", arguments) ++ ++ (return_code, out, err) = run_command(options, cmd) ++ ++ return (return_code, out, err) ++ ++def get_msg_timeout(options): ++ """Reads the configured sbd message timeout from each device. ++ ++ Key arguments: ++ options -- options dictionary ++ ++ Return Value: ++ msg_timeout (integer, seconds) ++ """ ++ ++ # get the defined msg_timeout ++ msg_timeout = -1 # default sbd msg timeout ++ ++ cmd = generate_sbd_command(options, "dump") ++ ++ (return_code, out, err) = run_command(options, cmd) ++ ++ for line in out.split("\n"): ++ if len(line) == 0: ++ continue ++ ++ if "msgwait" in line: ++ tmp_msg_timeout = int(line.split(':')[1]) ++ if -1 != msg_timeout and tmp_msg_timeout != msg_timeout: ++ logging.warn(\ ++ "sbd message timeouts differ in different devices") ++ # we only save the highest timeout ++ if tmp_msg_timeout > msg_timeout: ++ msg_timeout = tmp_msg_timeout ++ ++ return msg_timeout ++ ++def set_power_status(conn, options): ++ """send status to sbd device (poison pill) ++ ++ Key arguments: ++ conn -- connection structure ++ options -- options dictionary ++ ++ Return Value: ++ return_code -- action result (bool) ++ """ ++ ++ target_status = options["--action"] ++ plug = options["--plug"] ++ return_code = 99 ++ out = "" ++ err = "" ++ ++ # Map fencing actions to sbd messages ++ if "on" == target_status: ++ (return_code, out, err) = send_sbd_message(conn, options, plug, "clear") ++ elif "off" == target_status: ++ (return_code, out, err) = send_sbd_message(conn, options, plug, "off") ++ elif "reboot" == target_status: ++ (return_code, out, err) = send_sbd_message(conn, options, plug, "reset") ++ ++ if 0 != return_code: ++ logging.error("sending message to sbd device(s) \ ++ failed with return code %d", return_code) ++ logging.error("DETAIL: output on stdout was \"%s\"", out) ++ logging.error("DETAIL: output on stderr was \"%s\"", err) ++ ++ return not bool(return_code) ++ ++def reboot_cycle(conn, options): ++ """" trigger reboot by sbd messages ++ ++ Key arguments: ++ conn -- connection structure ++ options -- options dictionary ++ ++ Return Value: ++ return_code -- action result (bool) ++ """ ++ ++ plug = options["--plug"] ++ return_code = 99 ++ out = "" ++ err = "" ++ ++ (return_code, out, err) = send_sbd_message(conn, options, plug, "reset") ++ return not bool(return_code) ++ ++def get_power_status(conn, options): ++ """Returns the status of a specific node. ++ ++ Key arguments: ++ conn -- connection structure ++ options -- option dictionary ++ ++ Return Value: ++ status -- status code (string) ++ """ ++ ++ status = "UNKWNOWN" ++ plug = options["--plug"] ++ ++ nodelist = get_node_list(conn, options) ++ ++ # We need to check if the specified plug / node a already a allocated slot ++ # on the device. ++ if plug not in nodelist: ++ logging.error("node \"%s\" not found in node list", plug) ++ else: ++ status = nodelist[plug][1] ++ ++ ++ return status ++ ++def translate_status(sbd_status): ++ """Translates the sbd status to fencing status. ++ ++ Key arguments: ++ sbd_status -- status to translate (string) ++ ++ Return Value: ++ status -- fencing status (string) ++ """ ++ ++ status = "UNKNOWN" ++ ++ ++ # Currently we only accept "clear" to be marked as online. Eventually we ++ # should also check against "test" ++ online_status = ["clear"] ++ ++ offline_status = ["reset", "off"] ++ ++ if any(online_status_element in sbd_status \ ++ for online_status_element in online_status): ++ status = "on" ++ ++ if any(offline_status_element in sbd_status \ ++ for offline_status_element in offline_status): ++ status = "off" ++ ++ return status ++ ++def get_node_list(conn, options): ++ """Returns a list of hostnames, registerd on the sbd device. ++ ++ Key arguments: ++ conn -- connection options ++ options -- options ++ ++ Return Value: ++ nodelist -- dictionary wich contains all node names and there status ++ """ ++ ++ del conn ++ ++ nodelist = {} ++ ++ cmd = generate_sbd_command(options, "list") ++ ++ (return_code, out, err) = run_command(options, cmd) ++ ++ for line in out.split("\n"): ++ if len(line) == 0: ++ continue ++ ++ # if we read "unreadable" something went wrong ++ if "NOT dumped" in line: ++ return nodelist ++ ++ words = line.split() ++ port = words[1] ++ sbd_status = words[2] ++ nodelist[port] = (port, translate_status(sbd_status)) ++ ++ return nodelist ++ ++def parse_sbd_devices(options): ++ """Returns an array of all sbd devices. ++ ++ Key arguments: ++ options -- options dictionary ++ ++ Return Value: ++ devices -- array of device paths ++ """ ++ ++ devices = [str.strip(dev) \ ++ for dev in str.split(options["--devices"], ",")] ++ ++ return devices ++ ++def define_new_opts(): ++ """Defines the all opt list ++ """ ++ all_opt["devices"] = { ++ "getopt" : ":", ++ "longopt" : "devices", ++ "help":"--devices=[device_a,device_b] \ ++Comma separated list of sbd devices", ++ "required" : "1", ++ "shortdesc" : "SBD Device", ++ "order": 1 ++ } ++ ++ all_opt["sbd_path"] = { ++ "getopt" : ":", ++ "longopt" : "sbd-path", ++ "help" : "--sbd-path=[path] Path to SBD binary", ++ "required" : "0", ++ "default" : "/usr/sbin/sbd", ++ "shortdesc" : "Path to SBD binary", ++ "order": 200 ++ } ++ ++def main(): ++ """Main function ++ """ ++ # We need to define "no_password" otherwise we will be ask about it if ++ # we don't provide any password. ++ device_opt = ["no_password", "devices", "port", "method", "sbd_path"] ++ ++ # close stdout if we get interrupted ++ atexit.register(atexit_handler) ++ ++ define_new_opts() ++ ++ all_opt["method"]["default"] = "cycle" ++ all_opt["method"]["help"] = "-m, --method=[method] Method to fence (onoff|cycle) (Default: cycle)" ++ ++ options = check_input(device_opt, process_input(device_opt)) ++ ++ # fill the needed variables to generate metadata and help text output ++ docs = {} ++ docs["shortdesc"] = "Fence agent for sbd" ++ docs["longdesc"] = "fence_sbd is I/O Fencing agent \ ++which can be used in environments where sbd can be used (shared storage)." ++ docs["vendorurl"] = "" ++ show_docs(options, docs) ++ ++ # We need to check if --devices is given and not empty. ++ if "--devices" not in options: ++ fail_usage("No SBD devices specified. \ ++ At least one SBD device is required.") ++ ++ run_delay(options) ++ ++ # We need to check if the provided sbd_devices exists. We need to do ++ # that for every given device. ++ for device_path in parse_sbd_devices(options): ++ logging.debug("check device \"%s\"", device_path) ++ ++ return_code = check_sbd_device(options, device_path) ++ if PATH_NOT_EXISTS == return_code: ++ logging.error("\"%s\" does not exist", device_path) ++ elif PATH_NOT_BLOCK == return_code: ++ logging.error("\"%s\" is not a valid block device", device_path) ++ elif DEVICE_NOT_INIT == return_code: ++ logging.error("\"%s\" is not initialized", device_path) ++ elif DEVICE_INIT != return_code: ++ logging.error("UNKNOWN error while checking \"%s\"", device_path) ++ ++ # If we get any error while checking the device we need to exit at this ++ # point. ++ if DEVICE_INIT != return_code: ++ exit(return_code) ++ ++ # we check against the defined timeouts. If the pacemaker timeout is smaller ++ # then that defined within sbd we should report this. ++ power_timeout = int(options["--power-timeout"]) ++ sbd_msg_timeout = get_msg_timeout(options) ++ if power_timeout <= sbd_msg_timeout: ++ logging.warn("power timeout needs to be \ ++ greater then sbd message timeout") ++ ++ result = fence_action(\ ++ None, \ ++ options, \ ++ set_power_status, \ ++ get_power_status, \ ++ get_node_list, \ ++ reboot_cycle) ++ ++ sys.exit(result) ++ ++if __name__ == "__main__": ++ main() +diff -uNr a/fence/agents/sbd/Makefile.am b/fence/agents/sbd/Makefile.am +--- a/fence/agents/sbd/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ b/fence/agents/sbd/Makefile.am 2017-01-16 16:19:09.079326886 +0100 +@@ -0,0 +1,17 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++TARGET = fence_sbd ++ ++SRC = $(TARGET).py ++ ++EXTRA_DIST = $(SRC) ++ ++sbin_SCRIPTS = $(TARGET) ++ ++man_MANS = $(TARGET).8 ++ ++FENCE_TEST_ARGS = -n test --devices test ++ ++include $(top_srcdir)/make/fencebuild.mk ++include $(top_srcdir)/make/fenceman.mk ++include $(top_srcdir)/make/agentpycheck.mk +diff -uNr a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml +--- a/tests/data/metadata/fence_sbd.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/tests/data/metadata/fence_sbd.xml 2017-01-16 16:31:45.855219543 +0100 +@@ -0,0 +1,101 @@ ++ ++ ++fence_sbd is I/O Fencing agent which can be used in environments where sbd can be used (shared storage). ++ ++ ++ ++ ++ ++ Fencing action ++ ++ ++ ++ ++ SBD Device ++ ++ ++ ++ ++ ++ Method to fence ++ ++ ++ ++ ++ Physical plug number on device, UUID or identification of machine ++ ++ ++ ++ ++ Verbose mode ++ ++ ++ ++ ++ Write debug information to given file ++ ++ ++ ++ ++ Display version information and exit ++ ++ ++ ++ ++ Display help and exit ++ ++ ++ ++ ++ Separator for CSV created by 'list' operation ++ ++ ++ ++ ++ Wait X seconds before fencing is started ++ ++ ++ ++ ++ Wait X seconds for cmd prompt after login ++ ++ ++ ++ ++ Test X seconds for status change after ON/OFF ++ ++ ++ ++ ++ Wait X seconds after issuing ON/OFF ++ ++ ++ ++ ++ Path to SBD binary ++ ++ ++ ++ ++ Wait X seconds for cmd prompt after issuing command ++ ++ ++ ++ ++ Count of attempts to retry power on ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/SOURCES/bz1376481-1-fence_lpar-fix-monitor-fails.patch b/SOURCES/bz1376481-1-fence_lpar-fix-monitor-fails.patch new file mode 100644 index 0000000..a64131f --- /dev/null +++ b/SOURCES/bz1376481-1-fence_lpar-fix-monitor-fails.patch @@ -0,0 +1,89 @@ +commit 2a56e0b3fd7ce168afb33b57685a6b1a59a0efe6 +Author: Marek 'marx' Grac +Date: Mon Sep 19 10:21:41 2016 +0200 + + fence_lpar: Add support for IVM + +diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py +index 31b0521..de8ce0d 100644 +--- a/fence/agents/lpar/fence_lpar.py ++++ b/fence/agents/lpar/fence_lpar.py +@@ -32,7 +32,7 @@ def get_power_status(conn, options): + re.IGNORECASE | re.MULTILINE).search(conn.before).group(1) + except AttributeError: + fail(EC_STATUS_HMC) +- elif options["--hmc-version"] == "4": ++ elif options["--hmc-version"] in ["4", "IVM"]: + conn.send("lssyscfg -r lpar -m "+ options["--managed"] + + " --filter 'lpar_names=" + options["--plug"] + "'\n") + conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"])) +@@ -56,7 +56,7 @@ def set_power_status(conn, options): + conn.send("chsysstate -o " + options["--action"] + " -r lpar -m " + options["--managed"] + + " -n " + options["--plug"] + "\n") + conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"])) +- elif options["--hmc-version"] == "4": ++ elif options["--hmc-version"] in ["4", "IVM"]: + if options["--action"] == "on": + conn.send("chsysstate -o on -r lpar -m " + options["--managed"] + + " -n " + options["--plug"] + +@@ -98,7 +98,29 @@ def get_lpar_list(conn, options): + + lines = res.group(1).split("\n") + for outlet_line in lines: +- (port, status) = outlet_line.split(":") ++ try: ++ (port, status) = outlet_line.split(":") ++ except ValueError: ++ fail_usage('Output does not match expected HMC version, try different one'); ++ outlets[port] = ("", status) ++ elif options["--hmc-version"] == "IVM": ++ conn.send("lssyscfg -r lpar -m " + options["--managed"] + ++ " -F name,state\n") ++ conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"])) ++ ++ ## We have to remove first line (command) and last line (part of new prompt) ++ #### ++ res = re.search("^.+?\n(.*)\n.*$", conn.before, re.S) ++ ++ if res == None: ++ fail_usage("Unable to parse output of list command") ++ ++ lines = res.group(1).split("\n") ++ for outlet_line in lines: ++ try: ++ (port, status) = outlet_line.split(",") ++ except ValueError: ++ fail_usage('Output does not match expected HMC version, try different one'); + outlets[port] = ("", status) + + return outlets +@@ -114,11 +136,11 @@ def define_new_opts(): + all_opt["hmc_version"] = { + "getopt" : "H:", + "longopt" : "hmc-version", +- "help" : "-H, --hmc-version=[version] Force HMC version to use: 3, 4 (default)", ++ "help" : "-H, --hmc-version=[version] Force HMC version to use: 3, 4 (default), ivm", + "required" : "0", +- "shortdesc" : "Force HMC version to use (3 or 4)", ++ "shortdesc" : "Force HMC version to use (3, 4 or IVM)", + "default" : "4", +- "choices" : ["3", "4"], ++ "choices" : ["3", "4", "ivm"], + "order" : 1} + + def main(): +diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml +index 8c82925..199ca4e 100644 +--- a/tests/data/metadata/fence_lpar.xml ++++ b/tests/data/metadata/fence_lpar.xml +@@ -48,8 +48,9 @@ + + +- Force HMC version to use (3 or 4) ++ Force HMC version to use (3, 4 or IVM) + + + diff --git a/SOURCES/bz1376481-2-fence_lpar-fix-monitor-fails.patch b/SOURCES/bz1376481-2-fence_lpar-fix-monitor-fails.patch new file mode 100644 index 0000000..abc7a91 --- /dev/null +++ b/SOURCES/bz1376481-2-fence_lpar-fix-monitor-fails.patch @@ -0,0 +1,47 @@ +commit ef243397975d263ac886d71596581b08ecf234c5 +Author: Marek 'marx' Grac +Date: Mon Sep 19 12:55:57 2016 +0200 + + fence_lpar: Fix indentation + +diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py +index de8ce0d..2ba2bbe 100644 +--- a/fence/agents/lpar/fence_lpar.py ++++ b/fence/agents/lpar/fence_lpar.py +@@ -98,10 +98,10 @@ def get_lpar_list(conn, options): + + lines = res.group(1).split("\n") + for outlet_line in lines: +- try: ++ try: + (port, status) = outlet_line.split(":") +- except ValueError: +- fail_usage('Output does not match expected HMC version, try different one'); ++ except ValueError: ++ fail_usage('Output does not match expected HMC version, try different one'); + outlets[port] = ("", status) + elif options["--hmc-version"] == "IVM": + conn.send("lssyscfg -r lpar -m " + options["--managed"] + +@@ -117,10 +117,10 @@ def get_lpar_list(conn, options): + + lines = res.group(1).split("\n") + for outlet_line in lines: +- try: ++ try: + (port, status) = outlet_line.split(",") +- except ValueError: +- fail_usage('Output does not match expected HMC version, try different one'); ++ except ValueError: ++ fail_usage('Output does not match expected HMC version, try different one'); + outlets[port] = ("", status) + + return outlets +@@ -145,7 +145,7 @@ def define_new_opts(): + + def main(): + device_opt = ["ipaddr", "login", "passwd", "secure", "cmd_prompt", \ +- "port", "managed", "hmc_version"] ++ "port", "managed", "hmc_version"] + + atexit.register(atexit_handler) + diff --git a/SOURCES/bz1377389-fence_ipmilan-add-target-support.patch b/SOURCES/bz1377389-fence_ipmilan-add-target-support.patch new file mode 100644 index 0000000..4a2f43d --- /dev/null +++ b/SOURCES/bz1377389-fence_ipmilan-add-target-support.patch @@ -0,0 +1,148 @@ +diff -uNr a/fence/agents/ipmilan/fence_ipmilan.py b/fence/agents/ipmilan/fence_ipmilan.py +--- a/fence/agents/ipmilan/fence_ipmilan.py 2017-05-04 14:32:36.357497106 +0200 ++++ b/fence/agents/ipmilan/fence_ipmilan.py 2017-05-04 14:37:32.567801127 +0200 +@@ -39,9 +39,18 @@ + cmd += " -I lanplus" + else: + cmd += " -I lan" ++ + # --ip / -a + cmd += " -H " + options["--ip"] + ++ # --port / -n ++ if options.has_key("--ipport"): ++ cmd += " -p " + options["--ipport"] ++ ++ # --target ++ if "--target" in options: ++ cmd += " -t " + options["--target"] ++ + # --username / -l + if options.has_key("--username") and len(options["--username"]) != 0: + cmd += " -U " + quote(options["--username"]) +@@ -60,10 +69,6 @@ + if "--cipher" in options: + cmd += " -C " + options["--cipher"] + +- # --port / -n +- if options.has_key("--ipport"): +- cmd += " -p " + options["--ipport"] +- + if options.has_key("--privlvl"): + cmd += " -L " + options["--privlvl"] + +@@ -123,6 +128,14 @@ + "default" : "@IPMITOOL_PATH@", + "order": 200 + } ++ all_opt["target"] = { ++ "getopt" : ":", ++ "longopt" : "target", ++ "help" : "--target=[targetaddress] Bridge IPMI requests to the remote target address", ++ "required" : "0", ++ "shortdesc" : "Bridge IPMI requests to the remote target address", ++ "order": 1 ++ } + all_opt["obsolete_ip"] = { + "getopt" : "i:", + "longopt" : "obsolete-ip", +@@ -141,9 +154,9 @@ + def main(): + atexit.register(atexit_handler) + +- device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd", "diag", +- "lanplus", "auth", "cipher", "privlvl", "sudo", "ipmitool_path", "method", +- "obsolete_ip", "timeout"] ++ device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd", ++ "diag", "lanplus", "auth", "cipher", "privlvl", "sudo", ++ "ipmitool_path", "method", "target", "obsolete_ip", "timeout"] + define_new_opts() + + all_opt["power_wait"]["default"] = 2 +diff -uNr a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +--- a/fence/agents/lib/fencing.py.py 2017-05-04 14:32:36.408496642 +0200 ++++ b/fence/agents/lib/fencing.py.py 2017-05-04 14:33:30.160007419 +0200 +@@ -845,7 +845,7 @@ + device_opt.count("login") and (device_opt.count("no_login") == 0): + fail_usage("Failed: You have to set login name") + +- if device_opt.count("ipaddr") and not options.has_key("--ip") and not options.has_key("--managed"): ++ if device_opt.count("ipaddr") and not options.has_key("--ip") and not options.has_key("--managed") and not options.has_key("--target"): + fail_usage("Failed: You have to enter fence address") + + if device_opt.count("no_password") == 0: +diff -uNr a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml +--- a/tests/data/metadata/fence_idrac.xml 2017-05-04 14:32:36.410496624 +0200 ++++ b/tests/data/metadata/fence_idrac.xml 2017-05-04 14:33:30.160007419 +0200 +@@ -74,6 +74,11 @@ + + Ciphersuite to use (same as ipmitool -C parameter) + ++ ++ ++ ++ Bridge IPMI requests to the remote target address ++ + + + +diff -uNr a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml +--- a/tests/data/metadata/fence_ilo3.xml 2017-05-04 14:32:36.411496614 +0200 ++++ b/tests/data/metadata/fence_ilo3.xml 2017-05-04 14:33:30.161007410 +0200 +@@ -74,6 +74,11 @@ + + Ciphersuite to use (same as ipmitool -C parameter) + ++ ++ ++ ++ Bridge IPMI requests to the remote target address ++ + + + +diff -uNr a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml +--- a/tests/data/metadata/fence_ilo4.xml 2017-05-04 14:32:36.411496614 +0200 ++++ b/tests/data/metadata/fence_ilo4.xml 2017-05-04 14:33:30.161007410 +0200 +@@ -74,6 +74,11 @@ + + Ciphersuite to use (same as ipmitool -C parameter) + ++ ++ ++ ++ Bridge IPMI requests to the remote target address ++ + + + +diff -uNr a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml +--- a/tests/data/metadata/fence_imm.xml 2017-05-04 14:32:36.412496605 +0200 ++++ b/tests/data/metadata/fence_imm.xml 2017-05-04 14:33:30.162007401 +0200 +@@ -74,6 +74,11 @@ + + Ciphersuite to use (same as ipmitool -C parameter) + ++ ++ ++ ++ Bridge IPMI requests to the remote target address ++ + + + +diff -uNr a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml +--- a/tests/data/metadata/fence_ipmilan.xml 2017-05-04 14:32:36.412496605 +0200 ++++ b/tests/data/metadata/fence_ipmilan.xml 2017-05-04 14:33:30.162007401 +0200 +@@ -74,6 +74,11 @@ + + Ciphersuite to use (same as ipmitool -C parameter) + ++ ++ ++ ++ Bridge IPMI requests to the remote target address ++ + + + diff --git a/SOURCES/bz1377972-1-CI-dont-test-paths-in-metadata.patch b/SOURCES/bz1377972-1-CI-dont-test-paths-in-metadata.patch new file mode 100644 index 0000000..09ded8e --- /dev/null +++ b/SOURCES/bz1377972-1-CI-dont-test-paths-in-metadata.patch @@ -0,0 +1,3046 @@ +diff -uNr a/configure.ac b/configure.ac +--- a/configure.ac 2017-03-03 10:46:36.346404128 +0100 ++++ b/configure.ac 2017-03-03 11:18:02.533241361 +0100 +@@ -258,6 +258,7 @@ + CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS" + LDFLAGS="$ENV_LDFLAGS" + ++AM_EXTRA_RECURSIVE_TARGETS([xml-upload]) + AC_CONFIG_FILES([Makefile + fence/Makefile + fence/agents/Makefile +diff -uNr a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +--- a/fence/agents/lib/fencing.py.py 2017-03-03 10:46:36.349404099 +0100 ++++ b/fence/agents/lib/fencing.py.py 2017-03-03 11:18:02.534241351 +0100 +@@ -69,6 +69,7 @@ + "delay" : { + "getopt" : "f:", + "longopt" : "delay", ++ "type" : "second", + "help" : "--delay=[seconds] Wait X seconds before fencing is started", + "required" : "0", + "shortdesc" : "Wait X seconds before fencing is started", +@@ -108,6 +109,7 @@ + "ipport" : { + "getopt" : "u:", + "longopt" : "ipport", ++ "type" : "integer", + "help" : "-u, --ipport=[port] TCP/UDP port to use", + "required" : "0", + "shortdesc" : "TCP/UDP port to use for connection with device", +@@ -340,6 +342,7 @@ + "login_timeout" : { + "getopt" : "y:", + "longopt" : "login-timeout", ++ "type" : "second", + "help" : "--login-timeout=[seconds] Wait X seconds for cmd prompt after login", + "default" : "5", + "required" : "0", +@@ -348,6 +351,7 @@ + "shell_timeout" : { + "getopt" : "Y:", + "longopt" : "shell-timeout", ++ "type" : "second", + "help" : "--shell-timeout=[seconds] Wait X seconds for cmd prompt after issuing command", + "default" : "3", + "required" : "0", +@@ -356,6 +360,7 @@ + "power_timeout" : { + "getopt" : "g:", + "longopt" : "power-timeout", ++ "type" : "second", + "help" : "--power-timeout=[seconds] Test X seconds for status change after ON/OFF", + "default" : "20", + "required" : "0", +@@ -364,6 +369,7 @@ + "power_wait" : { + "getopt" : "G:", + "longopt" : "power-wait", ++ "type" : "second", + "help" : "--power-wait=[seconds] Wait X seconds after issuing ON/OFF", + "default" : "0", + "required" : "0", +@@ -379,6 +385,7 @@ + "retry_on" : { + "getopt" : "F:", + "longopt" : "retry-on", ++ "type" : "integer", + "help" : "--retry-on=[attempts] Count of attempts to retry power on", + "default" : "1", + "required" : "0", +@@ -567,7 +574,8 @@ + print "\t\t\t" + elif all_opt[option]["getopt"].count(":") > 0: +- print "\t\t" ++ t = all_opt[option].get("type", "string") ++ print("\t\t") + else: + print "\t\t" + +@@ -859,6 +867,14 @@ + "for %s from the valid values: %s" % \ + ("--" + all_opt[opt]["longopt"], str(all_opt[opt]["choices"]))) + ++ for failed_opt in _get_opts_with_invalid_types(options): ++ valid_input = False ++ if all_opt[failed_opt]["type"] == "second": ++ fail_usage("Failed: The value you have entered for %s is not a valid time in seconds" % \ ++ ("--" + all_opt[failed_opt]["longopt"])) ++ else: ++ fail_usage("Failed: The value you have entered for %s is not a valid %s" % \ ++ ("--" + all_opt[failed_opt]["longopt"], all_opt[failed_opt]["type"])) + return options + + ## Obtain a power status from possibly more than one plug +@@ -1265,3 +1281,18 @@ + # syslos.syslog can not have 0x00 character inside or exception is thrown + syslog.syslog(syslog_level, msg.replace("\x00","\n")) + return ++ ++def _get_opts_with_invalid_types(options): ++ options_failed = [] ++ device_opt = options["device_opt"] ++ ++ for opt in device_opt: ++ if "type" in all_opt[opt]: ++ longopt = "--" + all_opt[opt]["longopt"] ++ if longopt in options: ++ if all_opt[opt]["type"] in ["integer", "second"]: ++ try: ++ number = int(options["--" + all_opt[opt]["longopt"]]) ++ except ValueError: ++ options_failed.append(opt) ++ return options_failed +diff -uNr a/fence/agents/lib/metadata.rng b/fence/agents/lib/metadata.rng +--- a/fence/agents/lib/metadata.rng 2014-08-06 09:35:08.000000000 +0200 ++++ b/fence/agents/lib/metadata.rng 2017-03-03 11:18:02.534241351 +0100 +@@ -29,6 +29,8 @@ + + boolean + string ++ second ++ integer + + + +diff -uNr a/fence/agents/zvm/fence_zvmip.py b/fence/agents/zvm/fence_zvmip.py +--- a/fence/agents/zvm/fence_zvmip.py 2017-03-03 10:46:36.279404777 +0100 ++++ b/fence/agents/zvm/fence_zvmip.py 2017-03-03 11:18:02.534241351 +0100 +@@ -156,7 +156,7 @@ + atexit.register(atexit_handler) + + all_opt["ipport"]["default"] = "44444" +- all_opt["shell_timeout"]["default"] = "5.0" ++ all_opt["shell_timeout"]["default"] = "5" + all_opt["missing_as_off"]["default"] = "1" + options = check_input(device_opt, process_input(device_opt)) + +diff -uNr a/make/agentccheck.mk b/make/agentccheck.mk +--- a/make/agentccheck.mk 2017-03-03 10:46:36.256405000 +0100 ++++ b/make/agentccheck.mk 2017-03-03 11:18:02.534241351 +0100 +@@ -2,6 +2,7 @@ + DATADIR:=$(abs_top_srcdir)/tests/data/metadata + + check: $(TARGET:%=xml-check.%) $(SYMTARGET:%=xml-check.%) ++xml-upload: $(TARGET:%=xml-upload.%) $(SYMTARGET:%=xml-upload.%) + + xml-check.%: % + $(eval INPUT=$(subst xml-check.,,$@)) +diff -uNr a/make/agentpycheck.mk b/make/agentpycheck.mk +--- a/make/agentpycheck.mk 2017-03-03 10:46:36.257404990 +0100 ++++ b/make/agentpycheck.mk 2017-03-03 11:18:02.534241351 +0100 +@@ -1,18 +1,19 @@ + TEMPFILE:=$(shell mktemp) +-#DATADIR:=$(abs_top_builddir)/tests/data/metadata + DATADIR:=$(abs_top_srcdir)/tests/data/metadata ++AWK_VAL='BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}' + + check: $(TARGET:%=xml-check.%) $(SYMTARGET:%=xml-check.%) $(TARGET:%=delay-check.%) ++xml-upload: $(TARGET:%=xml-upload.%) $(SYMTARGET:%=xml-upload.%) + + xml-check.%: % + $(eval INPUT=$(subst xml-check.,,$@)) +- PYTHONPATH=$(abs_srcdir)/../lib:$(abs_builddir)/../lib python ./$(INPUT) -o metadata > $(TEMPFILE) ++ PYTHONPATH=$(abs_srcdir)/../lib:$(abs_builddir)/../lib python ./$(INPUT) -o metadata | $(AWK) $(AWK_VAL) > $(TEMPFILE) + diff $(TEMPFILE) $(DATADIR)/$(INPUT).xml + rm $(TEMPFILE) + + xml-upload.%: % + $(eval INPUT=$(subst xml-upload.,,$@)) +- PYTHONPATH=$(abs_srcdir)/../lib:$(abs_builddir)/../lib python ./$(INPUT) -o metadata > $(DATADIR)/$(INPUT).xml ++ PYTHONPATH=$(abs_srcdir)/../lib:$(abs_builddir)/../lib python ./$(INPUT) -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$(INPUT).xml + + # If test will fail, rerun fence agents to show problems + delay-check.%: % +diff -uNr a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml +--- a/tests/data/metadata/fence_alom.xml 2017-03-03 10:46:36.297404603 +0100 ++++ b/tests/data/metadata/fence_alom.xml 2017-03-03 11:18:37.279904806 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -90,27 +90,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -120,7 +120,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml +--- a/tests/data/metadata/fence_amt.xml 2017-03-03 10:46:36.297404603 +0100 ++++ b/tests/data/metadata/fence_amt.xml 2017-03-03 11:18:38.389894055 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -84,32 +84,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- + Path to amttool binary + + +@@ -119,7 +118,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml +--- a/tests/data/metadata/fence_apc_snmp.xml 2017-03-03 10:46:36.291404661 +0100 ++++ b/tests/data/metadata/fence_apc_snmp.xml 2017-03-03 11:18:38.158896292 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml +--- a/tests/data/metadata/fence_apc.xml 2017-03-03 10:46:36.291404661 +0100 ++++ b/tests/data/metadata/fence_apc.xml 2017-03-03 11:18:38.806890016 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -100,32 +100,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml +--- a/tests/data/metadata/fence_bladecenter.xml 2017-03-03 10:46:36.291404661 +0100 ++++ b/tests/data/metadata/fence_bladecenter.xml 2017-03-03 11:18:38.428893677 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,27 +95,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -125,7 +125,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml +--- a/tests/data/metadata/fence_brocade.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_brocade.xml 2017-03-03 11:18:38.582892186 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,32 +95,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml +--- a/tests/data/metadata/fence_cisco_mds.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_cisco_mds.xml 2017-03-03 11:18:38.844889648 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml +--- a/tests/data/metadata/fence_cisco_ucs.xml 2017-03-03 10:46:36.321404371 +0100 ++++ b/tests/data/metadata/fence_cisco_ucs.xml 2017-03-03 11:18:38.768890384 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -100,22 +100,22 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + +@@ -125,12 +125,12 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml +--- a/tests/data/metadata/fence_compute.xml 2017-03-03 10:46:36.335404235 +0100 ++++ b/tests/data/metadata/fence_compute.xml 2017-03-03 11:18:39.219886015 +0100 +@@ -3,6 +3,11 @@ + Used to tell Nova that compute nodes are down and to reschedule flagged instances + + ++ ++ ++ ++ Region Name ++ + + + +@@ -14,7 +19,7 @@ + Script to retrieve password + + +- ++ + + Keystone Admin Auth URL + +@@ -43,6 +48,11 @@ + + Login Name + ++ ++ ++ ++ Allow Insecure TLS Requests ++ + + + +@@ -90,32 +100,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml +--- a/tests/data/metadata/fence_docker.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_docker.xml 2017-03-03 11:18:37.620901503 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -98,32 +98,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml +--- a/tests/data/metadata/fence_drac5.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_drac5.xml 2017-03-03 11:18:37.317904438 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -104,32 +104,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml +--- a/tests/data/metadata/fence_drac.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_drac.xml 2017-03-03 11:18:38.234895556 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -75,27 +75,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -105,7 +105,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml +--- a/tests/data/metadata/fence_dummy.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_dummy.xml 2017-03-03 11:18:37.433903315 +0100 +@@ -45,32 +45,32 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml +--- a/tests/data/metadata/fence_eaton_snmp.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_eaton_snmp.xml 2017-03-03 11:18:38.541892583 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml +--- a/tests/data/metadata/fence_emerson.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_emerson.xml 2017-03-03 11:18:38.120896660 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml +--- a/tests/data/metadata/fence_eps.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_eps.xml 2017-03-03 11:18:37.477902888 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -82,32 +82,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml +--- a/tests/data/metadata/fence_hds_cb.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_hds_cb.xml 2017-03-03 11:18:38.196895924 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,27 +95,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -125,7 +125,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml +--- a/tests/data/metadata/fence_hpblade.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_hpblade.xml 2017-03-03 11:18:37.961898200 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,27 +95,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -125,7 +125,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml +--- a/tests/data/metadata/fence_ibmblade.xml 2017-03-03 10:46:36.292404652 +0100 ++++ b/tests/data/metadata/fence_ibmblade.xml 2017-03-03 11:18:38.920888912 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml +--- a/tests/data/metadata/fence_idrac.xml 2017-03-03 10:46:36.349404099 +0100 ++++ b/tests/data/metadata/fence_idrac.xml 2017-03-03 11:18:37.924898559 +0100 +@@ -9,7 +9,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -121,32 +121,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- + Path to ipmitool binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -156,7 +155,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml +--- a/tests/data/metadata/fence_ifmib.xml 2017-03-03 10:46:36.293404642 +0100 ++++ b/tests/data/metadata/fence_ifmib.xml 2017-03-03 11:18:37.744900302 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -126,32 +126,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml +--- a/tests/data/metadata/fence_ilo2.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo2.xml 2017-03-03 11:18:38.082897028 +0100 +@@ -6,7 +6,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -101,27 +101,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -131,7 +131,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml +--- a/tests/data/metadata/fence_ilo3_ssh.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo3_ssh.xml 2017-03-03 11:18:37.547902210 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -100,27 +100,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -130,7 +130,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml +--- a/tests/data/metadata/fence_ilo3.xml 2017-03-03 10:46:36.349404099 +0100 ++++ b/tests/data/metadata/fence_ilo3.xml 2017-03-03 11:18:37.819899576 +0100 +@@ -9,7 +9,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -121,32 +121,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- + Path to ipmitool binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -156,7 +155,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml +--- a/tests/data/metadata/fence_ilo4_ssh.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo4_ssh.xml 2017-03-03 11:18:37.580901891 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -100,27 +100,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -130,7 +130,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml +--- a/tests/data/metadata/fence_ilo4.xml 2017-03-03 10:46:36.350404090 +0100 ++++ b/tests/data/metadata/fence_ilo4.xml 2017-03-03 11:18:37.854899237 +0100 +@@ -9,7 +9,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -121,32 +121,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- + Path to ipmitool binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -156,7 +155,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml +--- a/tests/data/metadata/fence_ilo_moonshot.xml 2017-03-03 10:46:36.293404642 +0100 ++++ b/tests/data/metadata/fence_ilo_moonshot.xml 2017-03-03 11:18:38.272895188 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,32 +95,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml +--- a/tests/data/metadata/fence_ilo_mp.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo_mp.xml 2017-03-03 11:18:38.619891827 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -90,27 +90,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -120,7 +120,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml +--- a/tests/data/metadata/fence_ilo_ssh.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo_ssh.xml 2017-03-03 11:18:37.515902520 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -100,27 +100,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -130,7 +130,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml +--- a/tests/data/metadata/fence_ilo.xml 2017-03-03 10:46:36.298404593 +0100 ++++ b/tests/data/metadata/fence_ilo.xml 2017-03-03 11:18:38.043897406 +0100 +@@ -6,7 +6,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -101,27 +101,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -131,7 +131,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml +--- a/tests/data/metadata/fence_imm.xml 2017-03-03 10:46:36.350404090 +0100 ++++ b/tests/data/metadata/fence_imm.xml 2017-03-03 11:18:37.889898898 +0100 +@@ -9,7 +9,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -121,32 +121,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- + Path to ipmitool binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -156,7 +155,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml +--- a/tests/data/metadata/fence_intelmodular.xml 2017-03-03 10:46:36.293404642 +0100 ++++ b/tests/data/metadata/fence_intelmodular.xml 2017-03-03 11:18:38.655891478 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -126,32 +126,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml +--- a/tests/data/metadata/fence_ipdu.xml 2017-03-03 10:46:36.293404642 +0100 ++++ b/tests/data/metadata/fence_ipdu.xml 2017-03-03 11:18:38.956888563 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -124,32 +124,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml +--- a/tests/data/metadata/fence_ipmilan.xml 2017-03-03 10:46:36.350404090 +0100 ++++ b/tests/data/metadata/fence_ipmilan.xml 2017-03-03 11:18:37.784899915 +0100 +@@ -9,7 +9,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -121,32 +121,31 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- + Path to ipmitool binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -156,7 +155,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml +--- a/tests/data/metadata/fence_ldom.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_ldom.xml 2017-03-03 11:18:39.153886655 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -97,32 +97,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml +--- a/tests/data/metadata/fence_lpar.xml 2017-03-03 10:46:36.351404080 +0100 ++++ b/tests/data/metadata/fence_lpar.xml 2017-03-03 11:18:38.350894433 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -109,32 +109,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml +--- a/tests/data/metadata/fence_mpath.xml 2017-03-03 10:46:36.332404264 +0100 ++++ b/tests/data/metadata/fence_mpath.xml 2017-03-03 11:18:38.994888195 +0100 +@@ -4,20 +4,20 @@ + The fence_mpath agent works by having a unique key for each node that has to be set in /etc/multipath.conf. Once registered, a single node will become the reservation holder by creating a "write exclusive, registrants only" reservation on the device(s). The result is that only registered nodes may write to the device(s). When a node failure occurs, the fence_mpath agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to the device(s). A manual reboot is required. + https://www.sourceware.org/dm/ + +- +- +- +- List of devices to use for current operation. Devices can be comma-separated list of device-mapper multipath devices (eg. /dev/mapper/3600508b400105df70000e00000ac0000 or /dev/mapper/mpath1). Each device must support SCSI-3 persistent reservations. ++ ++ ++ ++ Fencing Action + + + + + Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s). + +- +- +- +- Fencing Action ++ ++ ++ ++ List of devices to use for current operation. Devices can be comma-separated list of device-mapper multipath devices (eg. /dev/mapper/3600508b400105df70000e00000ac0000 or /dev/mapper/mpath1). Each device must support SCSI-3 persistent reservations. + + + +@@ -39,44 +39,42 @@ + + Display help and exit + +- +- +- +- Wait X seconds before fencing is started +- +- +- +- +- Wait X seconds for cmd prompt after issuing command +- +- +- +- +- Path to directory where fence agent can store information +- +- +- +- +- Test X seconds for status change after ON/OFF +- + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + ++ ++ ++ ++ Test X seconds for status change after ON/OFF ++ ++ ++ ++ ++ Wait X seconds before fencing is started ++ + + +- + Path to mpathpersist binary + ++ ++ ++ ++ Wait X seconds for cmd prompt after issuing command ++ ++ ++ ++ Path to directory where fence agent can store information ++ + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml +--- a/tests/data/metadata/fence_netio.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_netio.xml 2017-03-03 11:18:38.466893309 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -75,32 +75,32 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml +--- a/tests/data/metadata/fence_ovh.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_ovh.xml 2017-03-03 11:18:37.202905552 +0100 +@@ -60,32 +60,32 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml +--- a/tests/data/metadata/fence_pve.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_pve.xml 2017-03-03 11:18:39.114887033 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -80,32 +80,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml +--- a/tests/data/metadata/fence_raritan.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_raritan.xml 2017-03-03 11:18:38.728890771 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -75,32 +75,32 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml +--- a/tests/data/metadata/fence_rhevm.xml 2017-03-03 10:46:36.343404157 +0100 ++++ b/tests/data/metadata/fence_rhevm.xml 2017-03-03 11:18:38.882889280 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -75,7 +75,6 @@ + + + +- + The path of the API URL + + +@@ -105,32 +104,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml +--- a/tests/data/metadata/fence_rsa.xml 2017-03-03 10:46:36.299404584 +0100 ++++ b/tests/data/metadata/fence_rsa.xml 2017-03-03 11:18:38.692891120 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -90,27 +90,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -120,7 +120,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml +--- a/tests/data/metadata/fence_rsb.xml 2017-03-03 10:46:36.299404584 +0100 ++++ b/tests/data/metadata/fence_rsb.xml 2017-03-03 11:18:39.069887468 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -90,27 +90,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -120,7 +120,7 @@ + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml +--- a/tests/data/metadata/fence_sanbox2.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_sanbox2.xml 2017-03-03 11:18:39.032887827 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -80,32 +80,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml +--- a/tests/data/metadata/fence_sbd.xml 2017-03-03 10:46:36.346404128 +0100 ++++ b/tests/data/metadata/fence_sbd.xml 2017-03-03 11:18:38.504892941 +0100 +@@ -3,11 +3,6 @@ + fence_sbd is I/O Fencing agent which can be used in environments where sbd can be used (shared storage). + + +- +- +- +- Fencing action +- + + + +@@ -19,12 +14,17 @@ + +- Method to fence ++ Method to fence (onoff|cycle) ++ ++ ++ ++ ++ Fencing Action + + + + +- Physical plug number on device, UUID or identification of machine ++ Physical plug number, name of virtual machine or UUID + + + +@@ -49,41 +49,40 @@ + + + +- Separator for CSV created by 'list' operation ++ Separator for CSV created by operation list + +- +- +- +- Wait X seconds before fencing is started ++ ++ ++ ++ Wait X seconds for cmd prompt after issuing command + +- +- +- +- Wait X seconds for cmd prompt after login ++ ++ ++ ++ Wait X seconds after issuing ON/OFF + + + +- ++ + Test X seconds for status change after ON/OFF + +- +- +- +- Wait X seconds after issuing ON/OFF ++ ++ ++ ++ Wait X seconds before fencing is started + + + +- + Path to SBD binary + +- +- +- +- Wait X seconds for cmd prompt after issuing command ++ ++ ++ ++ Wait X seconds for cmd prompt after login + + + +- ++ + Count of attempts to retry power on + + +@@ -96,6 +95,5 @@ + + + +- + + +diff -uNr a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml +--- a/tests/data/metadata/fence_scsi.xml 2017-03-03 10:46:36.332404264 +0100 ++++ b/tests/data/metadata/fence_scsi.xml 2017-03-03 11:18:37.660901116 +0100 +@@ -56,52 +56,48 @@ + + + +- + Path to vgs binary + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- + Path to sg_persist binary + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- + Path to sg_turs binary + + + +- + Path to corosync-cmapctl binary + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml +--- a/tests/data/metadata/fence_virsh.xml 2017-03-03 10:46:36.323404351 +0100 ++++ b/tests/data/metadata/fence_virsh.xml 2017-03-03 11:18:37.242905165 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -97,37 +97,37 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + +- +- +- +- Missing port returns OFF instead of failure +- + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + ++ ++ ++ ++ Missing port returns OFF instead of failure ++ + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml +--- a/tests/data/metadata/fence_vmware_soap.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_vmware_soap.xml 2017-03-03 11:18:37.390903731 +0100 +@@ -7,7 +7,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -97,32 +97,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml +--- a/tests/data/metadata/fence_wti.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_wti.xml 2017-03-03 11:18:38.312894801 +0100 +@@ -5,7 +5,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -95,32 +95,32 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml +--- a/tests/data/metadata/fence_xenapi.xml 2017-03-03 10:46:36.294404632 +0100 ++++ b/tests/data/metadata/fence_xenapi.xml 2017-03-03 11:18:37.706900670 +0100 +@@ -60,32 +60,32 @@ + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Count of attempts to retry power on + + +diff -uNr a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml +--- a/tests/data/metadata/fence_zvmip.xml 2017-03-03 10:46:36.295404622 +0100 ++++ b/tests/data/metadata/fence_zvmip.xml 2017-03-03 11:18:38.000897823 +0100 +@@ -19,7 +19,7 @@ + + + +- ++ + TCP/UDP port to use for connection with device + + +@@ -97,27 +97,27 @@ + + + +- ++ + Wait X seconds after issuing ON/OFF + + + +- ++ + Wait X seconds for cmd prompt after login + + + +- ++ + Test X seconds for status change after ON/OFF + + + +- ++ + Wait X seconds before fencing is started + + + +- ++ + Wait X seconds for cmd prompt after issuing command + + +@@ -127,7 +127,7 @@ + + + +- ++ + Count of attempts to retry power on + + diff --git a/SOURCES/bz1377972-2-CI-dont-test-paths-in-metadata.patch b/SOURCES/bz1377972-2-CI-dont-test-paths-in-metadata.patch new file mode 100644 index 0000000..6f3ce3f --- /dev/null +++ b/SOURCES/bz1377972-2-CI-dont-test-paths-in-metadata.patch @@ -0,0 +1,88 @@ +diff -uNr a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml +--- a/tests/data/metadata/fence_rhevm.xml 2017-03-23 10:30:02.739217673 +0100 ++++ b/tests/data/metadata/fence_rhevm.xml 2017-03-23 10:31:07.439253864 +0100 +@@ -18,7 +18,7 @@ + + SSL connection with verifying fence device's certificate + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -28,7 +28,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -38,12 +38,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -68,11 +68,36 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + The path of the API URL +@@ -87,7 +112,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file diff --git a/SOURCES/bz1384073-fence_compute-fix-connectionerror-exception.patch b/SOURCES/bz1384073-fence_compute-fix-connectionerror-exception.patch new file mode 100644 index 0000000..a1484dd --- /dev/null +++ b/SOURCES/bz1384073-fence_compute-fix-connectionerror-exception.patch @@ -0,0 +1,22 @@ +From e7010cc1fe50866c54e98ba6775714445bdb8c80 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Mon, 17 Oct 2016 12:45:00 +0200 +Subject: [PATCH] fence_compute: fix ConnectionError by using full module name + +--- + fence/agents/compute/fence_compute.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py +index 0f05c12..ed51c25 100644 +--- a/fence/agents/compute/fence_compute.py ++++ b/fence/agents/compute/fence_compute.py +@@ -45,7 +45,7 @@ def get_power_status(_, options): + else: + logging.debug("Unknown status detected from nova: " + service.state) + break +- except ConnectionError as err: ++ except requests.exception.ConnectionError as err: + logging.warning("Nova connection failed: " + str(err)) + return status + diff --git a/SOURCES/bz1387590-compute-fix-plug-domain-name-nova-force-down.patch b/SOURCES/bz1387590-compute-fix-plug-domain-name-nova-force-down.patch index 26d1d0f..27e8e6f 100644 --- a/SOURCES/bz1387590-compute-fix-plug-domain-name-nova-force-down.patch +++ b/SOURCES/bz1387590-compute-fix-plug-domain-name-nova-force-down.patch @@ -1,4 +1,4 @@ ---- a/fence/agents/compute/fence_compute.py 2016-11-10 22:45:09.824853109 +1100 +--- a/fence/agents/compute/fence_compute.py 2016-11-10 18:03:41.473498575 +1100 +++ b/fence/agents/compute/fence_compute.py 2016-11-10 12:45:28.766603941 +1100 @@ -45,7 +45,7 @@ def get_power_status(_, options): else: @@ -137,7 +137,7 @@ + except Exception as e: + logging.warning("Nova connection failed. %s: %s" % (e.__class__.__name__, e)) + -+ fail_usage("Couldn't obtain a supported connection to nova, tried: %s" % repr(versions)) ++ logging.warning("Couldn't obtain a supported connection to nova, tried: %s\n" % repr(versions)) def define_new_opts(): all_opt["endpoint-type"] = { diff --git a/SOURCES/bz1390915-monitor_port_as_ip.patch b/SOURCES/bz1390915-monitor_port_as_ip.patch new file mode 100644 index 0000000..7d2585e --- /dev/null +++ b/SOURCES/bz1390915-monitor_port_as_ip.patch @@ -0,0 +1,30 @@ +From a22d964c8a4d21fa3cca5f4b8e284319d77c4779 Mon Sep 17 00:00:00 2001 +From: Marek 'marx' Grac +Date: Mon, 27 Jul 2015 11:02:31 +0200 +Subject: [PATCH] fencing: If --port-as-ip is used then monitor action should + be 'status', not 'list' + +Resolves: rhbz#1390915 +--- + fence/agents/lib/fencing.py.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +index 1cc1eb0..8fa81c7 100644 +--- a/fence/agents/lib/fencing.py.py ++++ b/fence/agents/lib/fencing.py.py +@@ -940,8 +940,9 @@ def fence_action(tn, options, set_power_fn, get_power_fn, get_outlet_list=None, + + ## Process options that manipulate fencing device + ##### +- if options["--action"] in ["list", "list-status"] or \ +- ((options["--action"] == "monitor") and 1 == options["device_opt"].count("port")): ++ if (options["--action"] in ["list", "list-status"]) or \ ++ ((options["--action"] == "monitor") and 1 == options["device_opt"].count("port") and \ ++ 0 == options["device_opt"].count("port_as_ip")): + + if 0 == options["device_opt"].count("port"): + print "N/A" +-- +2.4.11 + diff --git a/SOURCES/bz1393962-fence_vmware_soap-ssl-insecure-suppress-warning.patch b/SOURCES/bz1393962-fence_vmware_soap-ssl-insecure-suppress-warning.patch new file mode 100644 index 0000000..2d93a82 --- /dev/null +++ b/SOURCES/bz1393962-fence_vmware_soap-ssl-insecure-suppress-warning.patch @@ -0,0 +1,22 @@ +From 9a7be1c6f8deb73070b12baa2332cd26ef17d0cd Mon Sep 17 00:00:00 2001 +From: Isaac Freeman +Date: Mon, 21 Nov 2016 11:30:05 -0500 +Subject: [PATCH] Suppress InsecureRequestWarning when ssl_insecure is given + +--- + fence/agents/vmware_soap/fence_vmware_soap.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py b/fence/agents/vmware_soap/fence_vmware_soap.py +index df84ae5..93f9658 100644 +--- a/fence/agents/vmware_soap/fence_vmware_soap.py ++++ b/fence/agents/vmware_soap/fence_vmware_soap.py +@@ -42,6 +42,8 @@ def soap_login(options): + + if options.has_key("--ssl") or options.has_key("--ssl-secure") or options.has_key("--ssl-insecure"): + if options.has_key("--ssl-insecure"): ++ from requests.packages.urllib3.exceptions import InsecureRequestWarning ++ requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + verify = False + else: + verify = True diff --git a/SOURCES/bz1397889-monitor_port_as_ip.patch b/SOURCES/bz1397889-monitor_port_as_ip.patch deleted file mode 100644 index 7d2585e..0000000 --- a/SOURCES/bz1397889-monitor_port_as_ip.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a22d964c8a4d21fa3cca5f4b8e284319d77c4779 Mon Sep 17 00:00:00 2001 -From: Marek 'marx' Grac -Date: Mon, 27 Jul 2015 11:02:31 +0200 -Subject: [PATCH] fencing: If --port-as-ip is used then monitor action should - be 'status', not 'list' - -Resolves: rhbz#1390915 ---- - fence/agents/lib/fencing.py.py | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py -index 1cc1eb0..8fa81c7 100644 ---- a/fence/agents/lib/fencing.py.py -+++ b/fence/agents/lib/fencing.py.py -@@ -940,8 +940,9 @@ def fence_action(tn, options, set_power_fn, get_power_fn, get_outlet_list=None, - - ## Process options that manipulate fencing device - ##### -- if options["--action"] in ["list", "list-status"] or \ -- ((options["--action"] == "monitor") and 1 == options["device_opt"].count("port")): -+ if (options["--action"] in ["list", "list-status"]) or \ -+ ((options["--action"] == "monitor") and 1 == options["device_opt"].count("port") and \ -+ 0 == options["device_opt"].count("port_as_ip")): - - if 0 == options["device_opt"].count("port"): - print "N/A" --- -2.4.11 - diff --git a/SOURCES/bz1403028-fencing-parameters_stdin.patch b/SOURCES/bz1403028-fencing-parameters_stdin.patch new file mode 100644 index 0000000..7654637 --- /dev/null +++ b/SOURCES/bz1403028-fencing-parameters_stdin.patch @@ -0,0 +1,4932 @@ +From ba136b80c495bf867eb71afbf295f84f36132d46 Mon Sep 17 00:00:00 2001 +From: Marek 'marx' Grac +Date: Wed, 22 Mar 2017 17:32:38 +0100 +Subject: [PATCH] fencing: Parameters from command-line can be used also on + STDIN + +Resolves: rhbz#1403028 +--- + fence/agents/lib/fence2man.xsl | 6 +++ + fence/agents/lib/fencing.py.py | 56 ++++++++++++++------ + fence/agents/lib/metadata.rng | 3 +- + tests/data/metadata/fence_alom.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_amt.xml | 42 ++++++++++++--- + tests/data/metadata/fence_amt_ws.xml | 35 +++++++++++-- + tests/data/metadata/fence_apc.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_apc_snmp.xml | 42 ++++++++++++--- + tests/data/metadata/fence_bladecenter.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_brocade.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_cisco_mds.xml | 42 ++++++++++++--- + tests/data/metadata/fence_cisco_ucs.xml | 42 ++++++++++++--- + tests/data/metadata/fence_compute.xml | 84 +++++++++++++++++++++++++----- + tests/data/metadata/fence_docker.xml | 21 ++++++-- + tests/data/metadata/fence_drac.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_drac5.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_dummy.xml | 7 ++- + tests/data/metadata/fence_eaton_snmp.xml | 42 ++++++++++++--- + tests/data/metadata/fence_emerson.xml | 42 ++++++++++++--- + tests/data/metadata/fence_eps.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_hds_cb.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_hpblade.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_ibmblade.xml | 42 ++++++++++++--- + tests/data/metadata/fence_idrac.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ifmib.xml | 42 ++++++++++++--- + tests/data/metadata/fence_ilo.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ilo2.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ilo3.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ilo3_ssh.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_ilo4.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ilo4_ssh.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_ilo_moonshot.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_ilo_mp.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_ilo_ssh.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_imm.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_intelmodular.xml | 42 ++++++++++++--- + tests/data/metadata/fence_ipdu.xml | 42 ++++++++++++--- + tests/data/metadata/fence_ipmilan.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_ldom.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_lpar.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_mpath.xml | 14 ++++- + tests/data/metadata/fence_netio.xml | 42 ++++++++++++--- + tests/data/metadata/fence_ovh.xml | 35 +++++++++++-- + tests/data/metadata/fence_pve.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_raritan.xml | 42 ++++++++++++--- + tests/data/metadata/fence_rhevm.xml | 42 ++++++++++++--- + tests/data/metadata/fence_rsa.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_rsb.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_sanbox2.xml | 49 ++++++++++++++--- + tests/data/metadata/fence_sbd.xml | 14 ++++- + tests/data/metadata/fence_scsi.xml | 13 ++++- + tests/data/metadata/fence_virsh.xml | 63 ++++++++++++++++++---- + tests/data/metadata/fence_vmware_soap.xml | 42 ++++++++++++--- + tests/data/metadata/fence_wti.xml | 56 +++++++++++++++++--- + tests/data/metadata/fence_xenapi.xml | 35 +++++++++++-- + tests/data/metadata/fence_zvmip.xml | 42 ++++++++++++--- + 56 files changed, 2140 insertions(+), 367 deletions(-) + +diff --git a/fence/agents/lib/fence2man.xsl b/fence/agents/lib/fence2man.xsl +index b31d33e..06fb7ab 100644 +--- a/fence/agents/lib/fence2man.xsl ++++ b/fence/agents/lib/fence2man.xsl +@@ -2,6 +2,7 @@ + + + ++ + .TP + .B + .B +@@ -9,6 +10,11 @@ + + This parameter is always required. + (Default Value: ) ++ ++ Obsoletes: ++ ++ ++ + + + +diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +index 3646d60..399dbf2 100644 +--- a/fence/agents/lib/fencing.py.py ++++ b/fence/agents/lib/fencing.py.py +@@ -521,7 +521,12 @@ def usage(avail_opt): + + def metadata(avail_opt, options, docs): + # avail_opt has to be unique, if there are duplicities then they should be removed +- sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt))] ++ sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt)) if "longopt" in all_opt[key]] ++ # Find keys that are going to replace inconsistent names ++ mapping = dict([(opt["longopt"].replace("-", "_"), key) for (key, opt) in sorted_list if (key != opt["longopt"].replace("-", "_"))]) ++ new_options = [(key, all_opt[mapping[key]]) for key in mapping] ++ sorted_list.extend(new_options) ++ + sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"])) + + print "" +@@ -534,22 +539,32 @@ def metadata(avail_opt, options, docs): + if docs.has_key("vendorurl"): + print "" + docs["vendorurl"] + "" + print "" +- for option, _ in sorted_list: +- if all_opt[option].has_key("shortdesc"): +- print "\t" ++ ++ for (key, opt) in sorted_list: ++ info = "" ++ if key in all_opt: ++ if key != all_opt[key].get('longopt', key).replace("-", "_"): ++ info = "deprecated=\"1\"" ++ else: ++ info = "obsoletes=\"%s\"" % (mapping.get(key)) ++ ++ if opt.has_key("shortdesc"): ++ if info != "": ++ info = " " + info ++ print "\t" + + default = "" +- if all_opt[option].has_key("default"): +- default = str(all_opt[option]["default"]) +- elif options.has_key("--" + all_opt[option]["longopt"]) and all_opt[option]["getopt"].endswith(":"): +- if options["--" + all_opt[option]["longopt"]]: ++ if opt.has_key("default"): ++ default = str(opt["default"]) ++ elif options.has_key("--" + opt["longopt"]) and opt["getopt"].endswith(":"): ++ if options["--" + opt["longopt"]]: + try: +- default = options["--" + all_opt[option]["longopt"]] ++ default = options["--" + opt["longopt"]] + except TypeError: + ## @todo/@note: Currently there is no clean way how to handle lists + ## we can create a string from it but we can't set it on command line +- default = str(options["--" + all_opt[option]["longopt"]]) +- elif options.has_key("--" + all_opt[option]["longopt"]): ++ default = str(options["--" + opt["longopt"]]) ++ elif options.has_key("--" + opt["longopt"]): + default = "true" + + if default: +@@ -560,7 +575,7 @@ def metadata(avail_opt, options, docs): + default = default.replace("'", "'") + default = "default=\"" + default + "\" " + +- mixed = all_opt[option]["help"] ++ mixed = opt["help"] + ## split it between option and help text + res = re.compile(r"^(.*?--\S+)\s+", re.IGNORECASE | re.S).search(mixed) + if None != res: +@@ -568,18 +583,18 @@ def metadata(avail_opt, options, docs): + mixed = mixed.replace("<", "<").replace(">", ">") + print "\t\t" + +- if all_opt[option].has_key("choices"): ++ if opt.has_key("choices"): + print "\t\t" +- for choice in all_opt[option]["choices"]: ++ for choice in opt["choices"]: + print "\t\t\t" +- elif all_opt[option]["getopt"].count(":") > 0: +- t = all_opt[option].get("type", "string") ++ elif opt["getopt"].count(":") > 0: ++ t = opt.get("type", "string") + print("\t\t") + else: + print "\t\t" + +- print "\t\t" + all_opt[option]["shortdesc"] + "" ++ print "\t\t" + opt["shortdesc"] + "" + print "\t" + print "" + print "" +@@ -678,14 +693,21 @@ def process_input(avail_opt): + else: + opt = {} + name = "" ++ ++ mapping_longopt_names = dict([(all_opt[o].get("longopt"), o) for o in avail_opt]) ++ + for line in sys.stdin.readlines(): + line = line.strip() + if (line.startswith("#")) or (len(line) == 0): + continue + + (name, value) = (line + "=").split("=", 1) ++ name = name.replace("-", "_"); + value = value[:-1] + ++ if name in mapping_longopt_names: ++ name = mapping_longopt_names[name] ++ + if avail_opt.count(name) == 0 and name in ["nodename"]: + continue + elif avail_opt.count(name) == 0: +diff --git a/fence/agents/lib/metadata.rng b/fence/agents/lib/metadata.rng +index 2185cbf..e0cd441 100644 +--- a/fence/agents/lib/metadata.rng ++++ b/fence/agents/lib/metadata.rng +@@ -19,7 +19,8 @@ + + + +- ++ ++ + + + +diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml +index f266e84..bcad280 100644 +--- a/tests/data/metadata/fence_alom.xml ++++ b/tests/data/metadata/fence_alom.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml +index 6c0dacb..5fad57f 100644 +--- a/tests/data/metadata/fence_amt.xml ++++ b/tests/data/metadata/fence_amt.xml +@@ -8,7 +8,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -18,7 +18,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -36,12 +36,12 @@ + + Method to fence (onoff|cycle) + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -62,12 +62,37 @@ + + Fencing Action + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -121,7 +146,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml +index bd99eb2..eeb830c 100644 +--- a/tests/data/metadata/fence_apc.xml ++++ b/tests/data/metadata/fence_apc.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -68,17 +68,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml +index d7f6e1b..9bf7322 100644 +--- a/tests/data/metadata/fence_apc_snmp.xml ++++ b/tests/data/metadata/fence_apc_snmp.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml +index 70c76b7..26f2d00 100644 +--- a/tests/data/metadata/fence_bladecenter.xml ++++ b/tests/data/metadata/fence_bladecenter.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml +index fd0c399..38d2ac1 100644 +--- a/tests/data/metadata/fence_brocade.xml ++++ b/tests/data/metadata/fence_brocade.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml +index 305ac51..8a18ecb 100644 +--- a/tests/data/metadata/fence_cisco_mds.xml ++++ b/tests/data/metadata/fence_cisco_mds.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml +index 34b280a..b2ab55d 100644 +--- a/tests/data/metadata/fence_cisco_ucs.xml ++++ b/tests/data/metadata/fence_cisco_ucs.xml +@@ -23,7 +23,7 @@ + + SSL connection with verifying fence device's certificate + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -33,7 +33,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -68,17 +68,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml +index d90f167..0da03af 100644 +--- a/tests/data/metadata/fence_compute.xml ++++ b/tests/data/metadata/fence_compute.xml +@@ -3,37 +3,37 @@ + Used to tell Nova that compute nodes are down and to reschedule flagged instances + + +- ++ + + + Region Name + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + Script to retrieve password + +- ++ + + + Keystone Admin Auth URL + +- ++ + + + Login password or passphrase + +- ++ + + + Nova Endpoint type + +- ++ + + + Keystone Admin Tenant +@@ -43,11 +43,51 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Region Name ++ ++ ++ ++ ++ Keystone Admin Tenant ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ Nova Endpoint type ++ ++ ++ ++ ++ Keystone Admin Auth URL ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + +@@ -58,27 +98,47 @@ + + DNS domain in which hosts live + +- ++ + + + Allow instances to be evacuated + +- ++ + + + Disable functionality for dealing with shared storage + +- ++ ++ ++ ++ Only record the target as needing evacuation ++ ++ + + + Only record the target as needing evacuation + ++ ++ ++ ++ Allow instances to be evacuated ++ ++ ++ ++ ++ Disable functionality for dealing with shared storage ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml +index 4842fa3..a56bd39 100644 +--- a/tests/data/metadata/fence_docker.xml ++++ b/tests/data/metadata/fence_docker.xml +@@ -13,7 +13,7 @@ + + SSL connection with verifying fence device's certificate + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -23,7 +23,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -56,6 +56,16 @@ + + Fencing Action + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ IP Address or Hostname ++ + + + +@@ -76,7 +86,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml +index 18ca08c..00665a0 100644 +--- a/tests/data/metadata/fence_drac.xml ++++ b/tests/data/metadata/fence_drac.xml +@@ -8,12 +8,12 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + Force Python regex for command prompt +@@ -23,7 +23,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -33,12 +33,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -48,17 +48,52 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml +index 221c630..2990d7f 100644 +--- a/tests/data/metadata/fence_drac5.xml ++++ b/tests/data/metadata/fence_drac5.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -72,17 +72,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml +index a7f4cb2..e54bc10 100644 +--- a/tests/data/metadata/fence_dummy.xml ++++ b/tests/data/metadata/fence_dummy.xml +@@ -28,7 +28,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml +index 5a566a1..45eae2f 100644 +--- a/tests/data/metadata/fence_eaton_snmp.xml ++++ b/tests/data/metadata/fence_eaton_snmp.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml +index 5c7c08d..29dd4de 100644 +--- a/tests/data/metadata/fence_emerson.xml ++++ b/tests/data/metadata/fence_emerson.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml +index acfd5f8..916cff4 100644 +--- a/tests/data/metadata/fence_eps.xml ++++ b/tests/data/metadata/fence_eps.xml +@@ -10,7 +10,7 @@ Agent basically works by connecting to hidden page and pass appropriate argument + + TCP/UDP port to use for connection with device + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -20,7 +20,7 @@ Agent basically works by connecting to hidden page and pass appropriate argument + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -30,17 +30,17 @@ Agent basically works by connecting to hidden page and pass appropriate argument + + Forces agent to use IPv4 addresses only + +- ++ + + + Name of hidden page + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -50,17 +50,52 @@ Agent basically works by connecting to hidden page and pass appropriate argument + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Name of hidden page ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml +index 282a575..3addcde 100644 +--- a/tests/data/metadata/fence_hds_cb.xml ++++ b/tests/data/metadata/fence_hds_cb.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml +index f77d928..d822658 100644 +--- a/tests/data/metadata/fence_hpblade.xml ++++ b/tests/data/metadata/fence_hpblade.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml +index 7b04732..0884401 100644 +--- a/tests/data/metadata/fence_ibmblade.xml ++++ b/tests/data/metadata/fence_ibmblade.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml +index c1604a4..b768421 100644 +--- a/tests/data/metadata/fence_idrac.xml ++++ b/tests/data/metadata/fence_idrac.xml +@@ -12,7 +12,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -22,12 +22,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + Script to retrieve password +@@ -45,7 +45,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ + + Timeout (sec) for IPMI operation + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -158,7 +188,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml +index 8e347b5..56b3c24 100644 +--- a/tests/data/metadata/fence_ifmib.xml ++++ b/tests/data/metadata/fence_ifmib.xml +@@ -32,7 +32,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -42,7 +42,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -70,7 +70,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -84,7 +84,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml +index 93bcb59..5966a42 100644 +--- a/tests/data/metadata/fence_ilo.xml ++++ b/tests/data/metadata/fence_ilo.xml +@@ -14,7 +14,7 @@ + + Disable TLS negotiation, force SSL 3.0 + +- ++ + + + Force ribcl version to use +@@ -34,12 +34,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -49,7 +49,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -59,7 +59,7 @@ + + Disable TLS negotiaton, force TLS 1.0 + +- ++ + + + Login password or passphrase +@@ -74,17 +74,52 @@ + + SSL connection without verifying fence device's certificate + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force ribcl version to use ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml +index b607aea..c07f7a3 100644 +--- a/tests/data/metadata/fence_ilo2.xml ++++ b/tests/data/metadata/fence_ilo2.xml +@@ -14,7 +14,7 @@ + + Disable TLS negotiation, force SSL 3.0 + +- ++ + + + Force ribcl version to use +@@ -34,12 +34,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -49,7 +49,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -59,7 +59,7 @@ + + Disable TLS negotiaton, force TLS 1.0 + +- ++ + + + Login password or passphrase +@@ -74,17 +74,52 @@ + + SSL connection without verifying fence device's certificate + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force ribcl version to use ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml +index 6623070..875d19e 100644 +--- a/tests/data/metadata/fence_ilo3.xml ++++ b/tests/data/metadata/fence_ilo3.xml +@@ -12,7 +12,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -22,12 +22,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + Script to retrieve password +@@ -45,7 +45,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ + + Timeout (sec) for IPMI operation + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -158,7 +188,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml +index 5c1eec4..ee43daa 100644 +--- a/tests/data/metadata/fence_ilo3_ssh.xml ++++ b/tests/data/metadata/fence_ilo3_ssh.xml +@@ -10,22 +10,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -53,12 +53,12 @@ + + Method to fence (onoff|cycle) + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -73,17 +73,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml +index 4562c86..18ce056 100644 +--- a/tests/data/metadata/fence_ilo4.xml ++++ b/tests/data/metadata/fence_ilo4.xml +@@ -12,7 +12,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -22,12 +22,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + Script to retrieve password +@@ -45,7 +45,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ + + Timeout (sec) for IPMI operation + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -158,7 +188,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml +index 6c01add..9e37ebb 100644 +--- a/tests/data/metadata/fence_ilo4_ssh.xml ++++ b/tests/data/metadata/fence_ilo4_ssh.xml +@@ -10,22 +10,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -53,12 +53,12 @@ + + Method to fence (onoff|cycle) + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -73,17 +73,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml +index 8a5bd21..a162daf 100644 +--- a/tests/data/metadata/fence_ilo_moonshot.xml ++++ b/tests/data/metadata/fence_ilo_moonshot.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml +index d1cbf04..59205ce 100644 +--- a/tests/data/metadata/fence_ilo_mp.xml ++++ b/tests/data/metadata/fence_ilo_mp.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml +index 0c62fba..4489f01 100644 +--- a/tests/data/metadata/fence_ilo_ssh.xml ++++ b/tests/data/metadata/fence_ilo_ssh.xml +@@ -10,22 +10,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -53,12 +53,12 @@ + + Method to fence (onoff|cycle) + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -73,17 +73,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml +index 7966384..0b1a3f7 100644 +--- a/tests/data/metadata/fence_imm.xml ++++ b/tests/data/metadata/fence_imm.xml +@@ -12,7 +12,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -22,12 +22,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + Script to retrieve password +@@ -45,7 +45,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ + + Timeout (sec) for IPMI operation + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -158,7 +188,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml +index 5d7b7ed..5cb1759 100644 +--- a/tests/data/metadata/fence_intelmodular.xml ++++ b/tests/data/metadata/fence_intelmodular.xml +@@ -32,7 +32,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -42,7 +42,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -70,7 +70,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -84,7 +84,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml +index 5c613bf..0f4797a 100644 +--- a/tests/data/metadata/fence_ipdu.xml ++++ b/tests/data/metadata/fence_ipdu.xml +@@ -30,7 +30,7 @@ + + Set privacy protocol (DES|AES) + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -40,7 +40,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -68,7 +68,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password +@@ -82,7 +82,7 @@ + + Set security level (noAuthNoPriv|authNoPriv|authPriv) + +- ++ + + + Login password or passphrase +@@ -92,17 +92,47 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml +index a8efcfa..25079dd 100644 +--- a/tests/data/metadata/fence_ipmilan.xml ++++ b/tests/data/metadata/fence_ipmilan.xml +@@ -12,7 +12,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) +@@ -22,12 +22,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname + +- ++ + + + Script to retrieve password +@@ -45,7 +45,7 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login password or passphrase +@@ -94,17 +94,47 @@ + + Timeout (sec) for IPMI operation + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -158,7 +188,12 @@ + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml +index dc0147a..d697d0a 100644 +--- a/tests/data/metadata/fence_ldom.xml ++++ b/tests/data/metadata/fence_ldom.xml +@@ -10,22 +10,22 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -45,12 +45,12 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -65,17 +65,57 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml +index 77d61a1..f42ca1e 100644 +--- a/tests/data/metadata/fence_lpar.xml ++++ b/tests/data/metadata/fence_lpar.xml +@@ -13,17 +13,17 @@ + + Managed system name + +- ++ + + + SSH connection + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + Force Python regex for command prompt +@@ -33,7 +33,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -57,12 +57,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -77,17 +77,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml +index b29d526..6e02a14 100644 +--- a/tests/data/metadata/fence_mpath.xml ++++ b/tests/data/metadata/fence_mpath.xml +@@ -24,7 +24,12 @@ The fence_mpath agent works by having an unique key for each pair of node and de + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -77,7 +82,12 @@ The fence_mpath agent works by having an unique key for each pair of node and de + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml +index 9b051db..ae0c918 100644 +--- a/tests/data/metadata/fence_netio.xml ++++ b/tests/data/metadata/fence_netio.xml +@@ -13,12 +13,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + Login password or passphrase + +- ++ + + + IP Address or Hostname +@@ -33,17 +33,42 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login Name + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ + + + Script to retrieve password +@@ -53,7 +78,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml +index bdf2676..b0e6434 100644 +--- a/tests/data/metadata/fence_ovh.xml ++++ b/tests/data/metadata/fence_ovh.xml +@@ -3,7 +3,7 @@ + fence_ovh is an Power Fencing agent which can be used within OVH datecentre. Poweroff is simulated with a reboot into rescue-pro mode. + http://www.ovh.net + +- ++ + + + Login password or passphrase +@@ -18,17 +18,37 @@ + + Fencing Action + +- ++ + + + Script to retrieve password + +- ++ + + + Login Name + +- ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ + + + Physical plug number, name of virtual machine or UUID +@@ -38,7 +58,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml +index 03a1124..42b8cbb 100644 +--- a/tests/data/metadata/fence_pve.xml ++++ b/tests/data/metadata/fence_pve.xml +@@ -8,7 +8,7 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + Id of the virtual machine. +@@ -18,7 +18,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname of a node within the Proxmox cluster. +@@ -28,12 +28,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -43,12 +43,42 @@ + + Fencing Action + +- ++ + + + Login Name + +- ++ ++ ++ ++ Id of the virtual machine. ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname of a node within the Proxmox cluster. ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Node on which machine is located. (Optional, will be automatically determined) ++ ++ + + + Node on which machine is located. (Optional, will be automatically determined) +@@ -58,7 +88,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml +index f1910bb..697972b 100644 +--- a/tests/data/metadata/fence_raritan.xml ++++ b/tests/data/metadata/fence_raritan.xml +@@ -13,12 +13,12 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + Login password or passphrase + +- ++ + + + IP Address or Hostname +@@ -33,17 +33,42 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Login Name + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ + + + Script to retrieve password +@@ -53,7 +78,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml +index 16f9184..df6aacf 100644 +--- a/tests/data/metadata/fence_rsa.xml ++++ b/tests/data/metadata/fence_rsa.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml +index 554fd18..220926a 100644 +--- a/tests/data/metadata/fence_rsb.xml ++++ b/tests/data/metadata/fence_rsb.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + IP address or hostname of fencing device (together with --port-as-ip) + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ IP address or hostname of fencing device (together with --port-as-ip) ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml +index 3d42e6e..57ad2a7 100644 +--- a/tests/data/metadata/fence_sanbox2.xml ++++ b/tests/data/metadata/fence_sanbox2.xml +@@ -8,12 +8,12 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + Force Python regex for command prompt +@@ -23,7 +23,7 @@ + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -33,12 +33,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -48,17 +48,52 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml +index e5de1f6..b1820d5 100644 +--- a/tests/data/metadata/fence_sbd.xml ++++ b/tests/data/metadata/fence_sbd.xml +@@ -21,7 +21,12 @@ + + Fencing Action + +- ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ + + + Physical plug number, name of virtual machine or UUID +@@ -31,7 +36,12 @@ + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml +index 2b7d9d7..f947259 100644 +--- a/tests/data/metadata/fence_scsi.xml ++++ b/tests/data/metadata/fence_scsi.xml +@@ -39,7 +39,12 @@ The fence_scsi agent works by having each node in the cluster register a unique + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -91,7 +96,11 @@ The fence_scsi agent works by having each node in the cluster register a unique + + Path to sg_turs binary + +- ++ ++ ++ Path to corosync-cmapctl binary ++ ++ + + Path to corosync-cmapctl binary + +diff --git a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml +index b381345..bae3cdc 100644 +--- a/tests/data/metadata/fence_virsh.xml ++++ b/tests/data/metadata/fence_virsh.xml +@@ -10,22 +10,22 @@ By default, virsh needs root account to do properly work. So you must allow ssh + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -45,12 +45,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -65,17 +65,57 @@ By default, virsh needs root account to do properly work. So you must allow ssh + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +@@ -130,7 +170,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh + + Count of attempts to retry power on + +- ++ ++ ++ ++ Use sudo (without password) when calling 3rd party sotfware. ++ ++ + + + Use sudo (without password) when calling 3rd party sotfware. +diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml +index f5d6d76..b174406 100644 +--- a/tests/data/metadata/fence_vmware_soap.xml ++++ b/tests/data/metadata/fence_vmware_soap.xml +@@ -20,7 +20,7 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g + + SSL connection with verifying fence device's certificate + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -30,7 +30,7 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -40,12 +40,12 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -65,17 +65,47 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml +index bfbcb35..e1485ad 100644 +--- a/tests/data/metadata/fence_wti.xml ++++ b/tests/data/metadata/fence_wti.xml +@@ -8,22 +8,22 @@ + + TCP/UDP port to use for connection with device + +- ++ + + + IP Address or Hostname + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + SSH connection + +- ++ + + + Force Python regex for command prompt +@@ -43,12 +43,12 @@ + + Forces agent to use IPv4 addresses only + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -63,17 +63,57 @@ + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ SSH connection ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Force Python regex for command prompt ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml +index 156ed53..4d74033 100644 +--- a/tests/data/metadata/fence_xenapi.xml ++++ b/tests/data/metadata/fence_xenapi.xml +@@ -3,7 +3,7 @@ + fence_cxs is an I/O Fencing agent used on Citrix XenServer hosts. It uses the XenAPI, supplied by Citrix, to establish an XML-RPC sesssion to a XenServer host. Once the session is established, further XML-RPC commands are issued in order to switch on, switch off, restart and query the status of virtual machines running on the host. + http://www.xenproject.org + +- ++ + + + Login password or passphrase +@@ -18,27 +18,52 @@ + + Fencing Action + +- ++ + + + Login Name + +- ++ + + + Physical plug number, name of virtual machine or UUID + +- ++ + + + Script to retrieve password + ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml +index 5222a22..41393c2 100644 +--- a/tests/data/metadata/fence_zvmip.xml ++++ b/tests/data/metadata/fence_zvmip.xml +@@ -22,7 +22,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t + + TCP/UDP port to use for connection with device + +- ++ + + + Physical plug number, name of virtual machine or UUID +@@ -32,7 +32,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t + + Forces agent to use IPv6 addresses only + +- ++ + + + IP Address or Hostname +@@ -50,12 +50,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t + + Method to fence (onoff|cycle) + +- ++ + + + Script to retrieve password + +- ++ + + + Login password or passphrase +@@ -65,17 +65,47 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t + + Fencing Action + +- ++ + + + Login Name + ++ ++ ++ ++ Physical plug number, name of virtual machine or UUID ++ ++ ++ ++ ++ Login Name ++ ++ ++ ++ ++ IP Address or Hostname ++ ++ ++ ++ ++ Login password or passphrase ++ ++ ++ ++ ++ Script to retrieve password ++ + + + + Verbose mode + +- ++ ++ ++ ++ Write debug information to given file ++ ++ + + + Write debug information to given file +-- +2.4.11 + diff --git a/SOURCES/bz1410881-cisco_ucs-admin.patch b/SOURCES/bz1410881-cisco_ucs-admin.patch new file mode 100644 index 0000000..22076ce --- /dev/null +++ b/SOURCES/bz1410881-cisco_ucs-admin.patch @@ -0,0 +1,28 @@ +From eb43835fc430651712271a046c61eec1c5ecdedb Mon Sep 17 00:00:00 2001 +From: Marek 'marx' Grac +Date: Mon, 23 Jan 2017 14:49:14 +0100 +Subject: [PATCH] fence_cisco_ucs: Commands sent to Cisco UCS are changed to + +Resolves: rhbz#1410881 +--- + fence/agents/cisco_ucs/fence_cisco_ucs.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py +index d21b278..701f690 100644 +--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py ++++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py +@@ -71,8 +71,8 @@ def set_power_status(conn, options): + del conn + + action = { +- 'on' : "up", +- 'off' : "down" ++ 'on' : "admin-up", ++ 'off' : "admin-down" + }[options["--action"]] + + send_command(options, "" + +-- +2.4.11 + diff --git a/SOURCES/bz1412722-cisco_ucs-admin.patch b/SOURCES/bz1412722-cisco_ucs-admin.patch deleted file mode 100644 index 22076ce..0000000 --- a/SOURCES/bz1412722-cisco_ucs-admin.patch +++ /dev/null @@ -1,28 +0,0 @@ -From eb43835fc430651712271a046c61eec1c5ecdedb Mon Sep 17 00:00:00 2001 -From: Marek 'marx' Grac -Date: Mon, 23 Jan 2017 14:49:14 +0100 -Subject: [PATCH] fence_cisco_ucs: Commands sent to Cisco UCS are changed to - -Resolves: rhbz#1410881 ---- - fence/agents/cisco_ucs/fence_cisco_ucs.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py -index d21b278..701f690 100644 ---- a/fence/agents/cisco_ucs/fence_cisco_ucs.py -+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py -@@ -71,8 +71,8 @@ def set_power_status(conn, options): - del conn - - action = { -- 'on' : "up", -- 'off' : "down" -+ 'on' : "admin-up", -+ 'off' : "admin-down" - }[options["--action"]] - - send_command(options, "" + --- -2.4.11 - diff --git a/SOURCES/bz1422499-fence_rhevm-disable-http-filter.patch b/SOURCES/bz1422499-fence_rhevm-disable-http-filter.patch new file mode 100644 index 0000000..d34f7f3 --- /dev/null +++ b/SOURCES/bz1422499-fence_rhevm-disable-http-filter.patch @@ -0,0 +1,61 @@ +diff -uNr a/fence/agents/rhevm/fence_rhevm.py b/fence/agents/rhevm/fence_rhevm.py +--- a/fence/agents/rhevm/fence_rhevm.py 2017-03-21 14:38:42.785643063 +0100 ++++ b/fence/agents/rhevm/fence_rhevm.py 2017-03-21 14:40:24.199654871 +0100 +@@ -85,6 +85,10 @@ + api_path = opt["--api-path"] + else: + api_path = "/ovirt-engine/api" ++ if opt.has_key("--disable-http-filter"): ++ http_filter = 'false' ++ else: ++ http_filter = 'true' + + url += "//" + opt["--ip"] + ":" + str(opt["--ipport"]) + api_path + "/" + command + +@@ -97,7 +101,7 @@ + "Content-type: application/xml", + "Accept: application/xml", + "Prefer: persistent-auth", +- "Filter: true", ++ "Filter: {}".format(http_filter), + ]) + + if opt.has_key("cookie"): +@@ -154,6 +158,14 @@ + "required" : "0", + "shortdesc" : "The path of the API URL", + "order" : 2} ++ all_opt["disable_http_filter"] = { ++ "getopt" : "", ++ "longopt" : "disable-http-filter", ++ "help" : "--disable-http-filter Set HTTP Filter header to false", ++ "required" : "0", ++ "shortdesc" : "Set HTTP Filter header to false", ++ "order" : 3} ++ + + def main(): + device_opt = [ +@@ -166,6 +178,7 @@ + "web", + "port", + "use_cookies", ++ "disable_http_filter", + ] + + atexit.register(atexit_handler) +diff -uNr a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml +--- a/tests/data/metadata/fence_rhevm.xml 2017-03-21 14:38:42.808642839 +0100 ++++ b/tests/data/metadata/fence_rhevm.xml 2017-03-21 14:40:54.832356380 +0100 +@@ -77,6 +77,11 @@ + + The path of the API URL + ++ ++ ++ ++ Set HTTP Filter header to false ++ + + + diff --git a/SOURCES/bz1426693-1-fence_compute-project_id-to-project_name.patch b/SOURCES/bz1426693-1-fence_compute-project_id-to-project_name.patch new file mode 100644 index 0000000..1823835 --- /dev/null +++ b/SOURCES/bz1426693-1-fence_compute-project_id-to-project_name.patch @@ -0,0 +1,77 @@ +diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py +index 0a238b6..4b229b0 100644 +--- a/fence/agents/compute/fence_compute.py ++++ b/fence/agents/compute/fence_compute.py +@@ -4,6 +4,7 @@ import sys + import time + import atexit + import logging ++import inspect + import requests.exceptions + + sys.path.append("@FENCEAGENTSLIBDIR@") +@@ -310,15 +311,46 @@ def create_nova_connection(options): + + versions = [ "2.11", "2" ] + for version in versions: +- nova = client.Client(version, +- options["--username"], +- options["--password"], +- options["--tenant-name"], +- options["--auth-url"], +- insecure=options["--insecure"], +- region_name=options["--region-name"], +- endpoint_type=options["--endpoint-type"], +- http_log_debug=options.has_key("--verbose")) ++ clientargs = inspect.getargspec(client.Client).varargs ++ ++ # Some versions of Openstack prior to Ocata only ++ # supported positional arguments for username, ++ # password and tenant. ++ # ++ # Versions since Ocata only support named arguments. ++ # ++ # So we need to use introspection to figure out how to ++ # create a Nova client. ++ # ++ # Happy days ++ # ++ if clientargs: ++ # OSP < 11 ++ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], ++ # varargs=None, ++ # keywords='kwargs', defaults=(None, None, None, None)) ++ nova = client.Client(version, ++ options["--username"], ++ options["--password"], ++ options["--tenant-name"], ++ options["--auth-url"], ++ insecure=options["--insecure"], ++ region_name=options["--region-name"], ++ endpoint_type=options["--endpoint-type"], ++ http_log_debug=options.has_key("--verbose")) ++ else: ++ # OSP >= 11 ++ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) ++ nova = client.Client(version, ++ username=options["--username"], ++ password=options["--password"], ++ tenant_name=options["--tenant-name"], ++ auth_url=options["--auth-url"], ++ insecure=options["--insecure"], ++ region_name=options["--region-name"], ++ endpoint_type=options["--endpoint-type"], ++ http_log_debug=options.has_key("--verbose")) ++ + try: + nova.hypervisors.list() + return +@@ -417,7 +449,7 @@ def main(): + global override_status + atexit.register(atexit_handler) + +- device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", "on_target", ++ device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", + "no_login", "no_password", "port", "domain", "no-shared-storage", "endpoint-type", + "record-only", "instance-filtering", "insecure", "region-name"] + define_new_opts() diff --git a/SOURCES/bz1426693-2-fence_compute-project_id-to-project_name.patch b/SOURCES/bz1426693-2-fence_compute-project_id-to-project_name.patch new file mode 100644 index 0000000..2b2e158 --- /dev/null +++ b/SOURCES/bz1426693-2-fence_compute-project_id-to-project_name.patch @@ -0,0 +1,121 @@ +diff -uNr a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py +--- a/fence/agents/compute/fence_compute.py 2017-04-03 13:54:40.694961510 +0200 ++++ b/fence/agents/compute/fence_compute.py 2017-04-03 14:29:52.957804288 +0200 +@@ -314,45 +314,45 @@ + + versions = [ "2.11", "2" ] + for version in versions: +- clientargs = inspect.getargspec(client.Client).varargs ++ clientargs = inspect.getargspec(client.Client).varargs + +- # Some versions of Openstack prior to Ocata only +- # supported positional arguments for username, +- # password and tenant. +- # +- # Versions since Ocata only support named arguments. +- # +- # So we need to use introspection to figure out how to +- # create a Nova client. +- # +- # Happy days +- # +- if clientargs: +- # OSP < 11 +- # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], +- # varargs=None, +- # keywords='kwargs', defaults=(None, None, None, None)) +- nova = client.Client(version, +- options["--username"], +- options["--password"], +- options["--tenant-name"], +- options["--auth-url"], +- insecure=options["--insecure"], +- region_name=options["--region-name"], +- endpoint_type=options["--endpoint-type"], +- http_log_debug=options.has_key("--verbose")) +- else: +- # OSP >= 11 +- # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) +- nova = client.Client(version, +- username=options["--username"], +- password=options["--password"], +- tenant_name=options["--tenant-name"], +- auth_url=options["--auth-url"], +- insecure=options["--insecure"], +- region_name=options["--region-name"], +- endpoint_type=options["--endpoint-type"], +- http_log_debug=options.has_key("--verbose")) ++ # Some versions of Openstack prior to Ocata only ++ # supported positional arguments for username, ++ # password and tenant. ++ # ++ # Versions since Ocata only support named arguments. ++ # ++ # So we need to use introspection to figure out how to ++ # create a Nova client. ++ # ++ # Happy days ++ # ++ if clientargs: ++ # OSP < 11 ++ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], ++ # varargs=None, ++ # keywords='kwargs', defaults=(None, None, None, None)) ++ nova = client.Client(version, ++ options["--username"], ++ options["--password"], ++ options["--tenant-name"], ++ options["--auth-url"], ++ insecure=options["--insecure"], ++ region_name=options["--region-name"], ++ endpoint_type=options["--endpoint-type"], ++ http_log_debug=options.has_key("--verbose")) ++ else: ++ # OSP >= 11 ++ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) ++ nova = client.Client(version, ++ username=options["--username"], ++ password=options["--password"], ++ tenant_name=options["--tenant-name"], ++ auth_url=options["--auth-url"], ++ insecure=options["--insecure"], ++ region_name=options["--region-name"], ++ endpoint_type=options["--endpoint-type"], ++ http_log_debug=options.has_key("--verbose")) + + try: + nova.hypervisors.list() +diff -uNr a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml +--- a/tests/data/metadata/fence_compute.xml 2017-04-03 13:54:40.687961577 +0200 ++++ b/tests/data/metadata/fence_compute.xml 2017-04-03 14:30:35.975395245 +0200 +@@ -113,16 +113,16 @@ + + Only record the target as needing evacuation + +- +- +- +- Only record the target as needing evacuation +- + + + + Allow instances to be evacuated + ++ ++ ++ ++ Only record the target as needing evacuation ++ + + + +@@ -190,7 +190,7 @@ + + + +- ++ + + + diff --git a/SOURCES/bz1433948-1-validate-all-action.patch b/SOURCES/bz1433948-1-validate-all-action.patch new file mode 100644 index 0000000..5b348ac --- /dev/null +++ b/SOURCES/bz1433948-1-validate-all-action.patch @@ -0,0 +1,672 @@ +diff -uNr a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +--- a/fence/agents/lib/fencing.py.py 2017-03-20 15:01:35.821589253 +0100 ++++ b/fence/agents/lib/fencing.py.py 2017-03-20 16:09:44.303299554 +0100 +@@ -20,6 +20,7 @@ + __all__ = ['atexit_handler', 'check_input', 'process_input', 'all_opt', 'show_docs', + 'fence_login', 'fence_action', 'fence_logout'] + ++EC_OK = 0 + EC_GENERIC_ERROR = 1 + EC_BAD_ARGS = 2 + EC_LOGIN_DENIED = 3 +@@ -485,11 +486,12 @@ + + return added_opt + +-def fail_usage(message=""): ++def fail_usage(message="", stop=True): + if len(message) > 0: + logging.error("%s\n", message) +- logging.error("Please use '-h' for usage\n") +- sys.exit(EC_GENERIC_ERROR) ++ if stop: ++ logging.error("Please use '-h' for usage\n") ++ sys.exit(EC_GENERIC_ERROR) + + def fail(error_code): + message = { +@@ -602,6 +604,7 @@ + print "\t" + print "\t" + print "\t" ++ print "\t" + if avail_opt.count("diag") == 1: + print "\t" + print "" +@@ -707,7 +710,7 @@ + ## in each of the fencing agents. It looks for possible errors and run + ## password script to set a correct password + ###### +-def check_input(device_opt, opt): ++def check_input(device_opt, opt, other_conditions = False): + + device_opt.extend(add_dependency_options(device_opt)) + +@@ -784,7 +787,7 @@ + ## add loggint to stderr + logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stderr)) + +- acceptable_actions = ["on", "off", "status", "list", "list-status", "monitor"] ++ acceptable_actions = ["on", "off", "status", "list", "list-status", "monitor", "validate-all"] + if 1 == device_opt.count("fabric_fencing"): + ## Compatibility layer + ##### +@@ -808,6 +811,12 @@ + if options["--action"] == "disable": + options["--action"] = "off" + ++ if options["--action"] == "validate-all" and not other_conditions: ++ _validate_input(options, False) ++ sys.exit(EC_OK) ++ else: ++ _validate_input(options, True) ++ + ## automatic detection and set of valid UUID from --plug + if not options.has_key("--username") and \ + device_opt.count("login") and (device_opt.count("no_login") == 0): +@@ -1282,6 +1291,80 @@ + syslog.syslog(syslog_level, msg.replace("\x00","\n")) + return + ++# stop = True/False : exit fence agent when problem is encountered ++def _validate_input(options, stop = True): ++ device_opt = options["device_opt"] ++ valid_input = True ++ ++ if "--username" not in options and \ ++ device_opt.count("login") and (device_opt.count("no_login") == 0): ++ valid_input = False ++ fail_usage("Failed: You have to set login name", stop) ++ ++ if device_opt.count("ipaddr") and "--ip" not in options and "--managed" not in options and "--target" not in options: ++ valid_input = False ++ fail_usage("Failed: You have to enter fence address", stop) ++ ++ if device_opt.count("no_password") == 0: ++ if 0 == device_opt.count("identity_file"): ++ if not ("--password" in options or "--password-script" in options): ++ valid_input = False ++ fail_usage("Failed: You have to enter password or password script", stop) ++ else: ++ if not ("--password" in options or \ ++ "--password-script" in options or "--identity-file" in options): ++ valid_input = False ++ fail_usage("Failed: You have to enter password, password script or identity file", stop) ++ ++ if "--ssh" not in options and "--identity-file" in options: ++ valid_input = False ++ fail_usage("Failed: You have to use identity file together with ssh connection (-x)", stop) ++ ++ if "--identity-file" in options and not os.path.isfile(options["--identity-file"]): ++ valid_input = False ++ fail_usage("Failed: Identity file " + options["--identity-file"] + " does not exist", stop) ++ ++ if (0 == ["list", "list-status", "monitor"].count(options["--action"])) and \ ++ "--plug" not in options and device_opt.count("port") and \ ++ device_opt.count("no_port") == 0 and not device_opt.count("port_as_ip"): ++ valid_input = False ++ fail_usage("Failed: You have to enter plug number or machine identification", stop) ++ ++ if "--plug" in options and len(options["--plug"].split(",")) > 1 and \ ++ "--method" in options and options["--method"] == "cycle": ++ valid_input = False ++ fail_usage("Failed: Cannot use --method cycle for more than 1 plug", stop) ++ ++ for failed_opt in _get_opts_with_invalid_choices(options): ++ valid_input = False ++ fail_usage("Failed: You have to enter a valid choice for %s from the valid values: %s" % \ ++ ("--" + all_opt[failed_opt]["longopt"], str(all_opt[failed_opt]["choices"])), stop) ++ ++ for failed_opt in _get_opts_with_invalid_types(options): ++ valid_input = False ++ if all_opt[failed_opt]["type"] == "second": ++ fail_usage("Failed: The value you have entered for %s is not a valid time in seconds" % \ ++ ("--" + all_opt[failed_opt]["longopt"]), stop) ++ else: ++ fail_usage("Failed: The value you have entered for %s is not a valid %s" % \ ++ ("--" + all_opt[failed_opt]["longopt"], all_opt[failed_opt]["type"]), stop) ++ ++ return valid_input ++ ++def _get_opts_with_invalid_choices(options): ++ options_failed = [] ++ device_opt = options["device_opt"] ++ ++ for opt in device_opt: ++ if "choices" in all_opt[opt]: ++ longopt = "--" + all_opt[opt]["longopt"] ++ possible_values_upper = [y.upper() for y in all_opt[opt]["choices"]] ++ if longopt in options: ++ options[longopt] = options[longopt].upper() ++ if not options["--" + all_opt[opt]["longopt"]] in possible_values_upper: ++ options_failed.append(opt) ++ return options_failed ++ + def _get_opts_with_invalid_types(options): + options_failed = [] + device_opt = options["device_opt"] +diff -uNr a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml +--- a/tests/data/metadata/fence_alom.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_alom.xml 2017-03-20 16:11:03.193530549 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml +--- a/tests/data/metadata/fence_amt.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_amt.xml 2017-03-20 16:11:03.193530549 +0100 +@@ -136,5 +136,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml +--- a/tests/data/metadata/fence_apc_snmp.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_apc_snmp.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -162,5 +162,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml +--- a/tests/data/metadata/fence_apc.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_apc.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -138,5 +138,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml +--- a/tests/data/metadata/fence_bladecenter.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_bladecenter.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -138,5 +138,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml +--- a/tests/data/metadata/fence_brocade.xml 2017-03-20 15:01:35.822589244 +0100 ++++ b/tests/data/metadata/fence_brocade.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -132,5 +132,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml +--- a/tests/data/metadata/fence_cisco_mds.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_cisco_mds.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -161,5 +161,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml +--- a/tests/data/metadata/fence_cisco_ucs.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_cisco_ucs.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -143,5 +143,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml +--- a/tests/data/metadata/fence_compute.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_compute.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -137,5 +137,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml +--- a/tests/data/metadata/fence_docker.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_docker.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -136,5 +136,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml +--- a/tests/data/metadata/fence_drac5.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_drac5.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -142,5 +142,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml +--- a/tests/data/metadata/fence_drac.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_drac.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -118,5 +118,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml +--- a/tests/data/metadata/fence_dummy.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_dummy.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -83,5 +83,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml +--- a/tests/data/metadata/fence_eaton_snmp.xml 2017-03-20 15:01:35.823589234 +0100 ++++ b/tests/data/metadata/fence_eaton_snmp.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -162,5 +162,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml +--- a/tests/data/metadata/fence_emerson.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_emerson.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -162,5 +162,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml +--- a/tests/data/metadata/fence_eps.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_eps.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -120,5 +120,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml +--- a/tests/data/metadata/fence_hds_cb.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_hds_cb.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -138,5 +138,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml +--- a/tests/data/metadata/fence_hpblade.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_hpblade.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -138,5 +138,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml +--- a/tests/data/metadata/fence_ibmblade.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_ibmblade.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -162,5 +162,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml +--- a/tests/data/metadata/fence_idrac.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_idrac.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -173,6 +173,7 @@ + + + ++ + + + +diff -uNr a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml +--- a/tests/data/metadata/fence_ifmib.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_ifmib.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -163,5 +163,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml +--- a/tests/data/metadata/fence_ilo2.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_ilo2.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -144,5 +144,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml +--- a/tests/data/metadata/fence_ilo3_ssh.xml 2017-03-20 15:01:35.824589224 +0100 ++++ b/tests/data/metadata/fence_ilo3_ssh.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -143,5 +143,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml +--- a/tests/data/metadata/fence_ilo3.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo3.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -173,6 +173,7 @@ + + + ++ + + + +diff -uNr a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml +--- a/tests/data/metadata/fence_ilo4_ssh.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo4_ssh.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -143,5 +143,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml +--- a/tests/data/metadata/fence_ilo4.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo4.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -173,6 +173,7 @@ + + + ++ + + + +diff -uNr a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml +--- a/tests/data/metadata/fence_ilo_moonshot.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo_moonshot.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml +--- a/tests/data/metadata/fence_ilo_mp.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo_mp.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml +--- a/tests/data/metadata/fence_ilo_ssh.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo_ssh.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -143,5 +143,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml +--- a/tests/data/metadata/fence_ilo.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_ilo.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -144,5 +144,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml +--- a/tests/data/metadata/fence_imm.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_imm.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -173,6 +173,7 @@ + + + ++ + + + +diff -uNr a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml +--- a/tests/data/metadata/fence_intelmodular.xml 2017-03-20 15:01:35.825589214 +0100 ++++ b/tests/data/metadata/fence_intelmodular.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -164,5 +164,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml +--- a/tests/data/metadata/fence_ipdu.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_ipdu.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -162,5 +162,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml +--- a/tests/data/metadata/fence_ipmilan.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_ipmilan.xml 2017-03-20 16:11:03.194530540 +0100 +@@ -173,6 +173,7 @@ + + + ++ + + + +diff -uNr a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml +--- a/tests/data/metadata/fence_ldom.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_ldom.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -135,5 +135,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml +--- a/tests/data/metadata/fence_lpar.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_lpar.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -147,5 +147,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml +--- a/tests/data/metadata/fence_mpath.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_mpath.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -91,5 +91,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml +--- a/tests/data/metadata/fence_netio.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_netio.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -113,5 +113,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml +--- a/tests/data/metadata/fence_ovh.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_ovh.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -97,5 +97,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml +--- a/tests/data/metadata/fence_pve.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_pve.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -118,5 +118,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml +--- a/tests/data/metadata/fence_raritan.xml 2017-03-20 15:01:35.826589205 +0100 ++++ b/tests/data/metadata/fence_raritan.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -113,5 +113,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml +--- a/tests/data/metadata/fence_rhevm.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_rhevm.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -142,5 +142,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml +--- a/tests/data/metadata/fence_rsa.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_rsa.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml +--- a/tests/data/metadata/fence_rsb.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_rsb.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml +--- a/tests/data/metadata/fence_sanbox2.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_sanbox2.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -117,5 +117,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml +--- a/tests/data/metadata/fence_sbd.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_sbd.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -95,5 +95,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml +--- a/tests/data/metadata/fence_scsi.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_scsi.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -109,5 +109,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml +--- a/tests/data/metadata/fence_virsh.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_virsh.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -145,5 +145,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml +--- a/tests/data/metadata/fence_vmware_soap.xml 2017-03-20 15:01:35.827589195 +0100 ++++ b/tests/data/metadata/fence_vmware_soap.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -135,5 +135,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml +--- a/tests/data/metadata/fence_wti.xml 2017-03-20 15:01:35.828589185 +0100 ++++ b/tests/data/metadata/fence_wti.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -133,5 +133,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml +--- a/tests/data/metadata/fence_xenapi.xml 2017-03-20 15:01:35.828589185 +0100 ++++ b/tests/data/metadata/fence_xenapi.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -98,5 +98,6 @@ + + + ++ + + +diff -uNr a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml +--- a/tests/data/metadata/fence_zvmip.xml 2017-03-20 15:01:35.828589185 +0100 ++++ b/tests/data/metadata/fence_zvmip.xml 2017-03-20 16:11:03.195530530 +0100 +@@ -140,5 +140,6 @@ + + + ++ + + diff --git a/SOURCES/bz1433948-2-validate-all-action.patch b/SOURCES/bz1433948-2-validate-all-action.patch new file mode 100644 index 0000000..cdf66d6 --- /dev/null +++ b/SOURCES/bz1433948-2-validate-all-action.patch @@ -0,0 +1,23 @@ +From 57782246a43fac8640086c737597b7747120bb6d Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Tue, 21 Mar 2017 13:29:42 +0100 +Subject: [PATCH] validate-all: check _validate_input() return code + +--- + fence/agents/lib/fencing.py.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py +index 6d32101..546640e 100644 +--- a/fence/agents/lib/fencing.py.py ++++ b/fence/agents/lib/fencing.py.py +@@ -680,7 +680,8 @@ def check_input(device_opt, opt, other_conditions = False): + + + if options["--action"] == "validate-all" and not other_conditions: +- _validate_input(options, False) ++ if not _validate_input(options, False): ++ fail_usage("validate-all failed") + sys.exit(EC_OK) + else: + _validate_input(options, True) diff --git a/SOURCES/bz1437965-1-fence_compute-project_id-to-project_name.patch b/SOURCES/bz1437965-1-fence_compute-project_id-to-project_name.patch deleted file mode 100644 index 1cefeb8..0000000 --- a/SOURCES/bz1437965-1-fence_compute-project_id-to-project_name.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py -index 0a238b6..4b229b0 100644 ---- a/fence/agents/compute/fence_compute.py -+++ b/fence/agents/compute/fence_compute.py -@@ -4,6 +4,7 @@ import sys - import time - import atexit - import logging -+import inspect - import requests.exceptions - - sys.path.append("@FENCEAGENTSLIBDIR@") -@@ -310,15 +311,46 @@ def create_nova_connection(options): - - versions = [ "2.11", "2" ] - for version in versions: -- nova = client.Client(version, -- options["--username"], -- options["--password"], -- options["--tenant-name"], -- options["--auth-url"], -- insecure=options["--insecure"], -- region_name=options["--region-name"], -- endpoint_type=options["--endpoint-type"], -- http_log_debug=options.has_key("--verbose")) -+ clientargs = inspect.getargspec(client.Client).varargs -+ -+ # Some versions of Openstack prior to Ocata only -+ # supported positional arguments for username, -+ # password and tenant. -+ # -+ # Versions since Ocata only support named arguments. -+ # -+ # So we need to use introspection to figure out how to -+ # create a Nova client. -+ # -+ # Happy days -+ # -+ if clientargs: -+ # OSP < 11 -+ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], -+ # varargs=None, -+ # keywords='kwargs', defaults=(None, None, None, None)) -+ nova = client.Client(version, -+ options["--username"], -+ options["--password"], -+ options["--tenant-name"], -+ options["--auth-url"], -+ insecure=options["--insecure"], -+ region_name=options["--region-name"], -+ endpoint_type=options["--endpoint-type"], -+ http_log_debug=options.has_key("--verbose")) -+ else: -+ # OSP >= 11 -+ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) -+ nova = client.Client(version, -+ username=options["--username"], -+ password=options["--password"], -+ tenant_name=options["--tenant-name"], -+ auth_url=options["--auth-url"], -+ insecure=options["--insecure"], -+ region_name=options["--region-name"], -+ endpoint_type=options["--endpoint-type"], -+ http_log_debug=options.has_key("--verbose")) -+ - try: - nova.hypervisors.list() - return -@@ -329,7 +361,7 @@ def create_nova_connection(options): - except Exception as e: - logging.warning("Nova connection failed. %s: %s" % (e.__class__.__name__, e)) - -- fail_usage("Couldn't obtain a supported connection to nova, tried: %s" % repr(versions)) -+ logging.warning("Couldn't obtain a supported connection to nova, tried: %s\n" % repr(versions)) - - def define_new_opts(): - all_opt["endpoint-type"] = { -@@ -417,7 +449,7 @@ def main(): - global override_status - atexit.register(atexit_handler) - -- device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", "on_target", -+ device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", - "no_login", "no_password", "port", "domain", "no-shared-storage", "endpoint-type", - "record-only", "instance-filtering", "insecure", "region-name"] - define_new_opts() diff --git a/SOURCES/bz1437965-2-fence_compute-project_id-to-project_name.patch b/SOURCES/bz1437965-2-fence_compute-project_id-to-project_name.patch deleted file mode 100644 index 4a7cf09..0000000 --- a/SOURCES/bz1437965-2-fence_compute-project_id-to-project_name.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff -uNr a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py ---- a/fence/agents/compute/fence_compute.py 2017-04-03 13:46:57.686399749 +0200 -+++ b/fence/agents/compute/fence_compute.py 2017-04-03 14:26:37.882659207 +0200 -@@ -314,45 +314,45 @@ - - versions = [ "2.11", "2" ] - for version in versions: -- clientargs = inspect.getargspec(client.Client).varargs -+ clientargs = inspect.getargspec(client.Client).varargs - -- # Some versions of Openstack prior to Ocata only -- # supported positional arguments for username, -- # password and tenant. -- # -- # Versions since Ocata only support named arguments. -- # -- # So we need to use introspection to figure out how to -- # create a Nova client. -- # -- # Happy days -- # -- if clientargs: -- # OSP < 11 -- # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], -- # varargs=None, -- # keywords='kwargs', defaults=(None, None, None, None)) -- nova = client.Client(version, -- options["--username"], -- options["--password"], -- options["--tenant-name"], -- options["--auth-url"], -- insecure=options["--insecure"], -- region_name=options["--region-name"], -- endpoint_type=options["--endpoint-type"], -- http_log_debug=options.has_key("--verbose")) -- else: -- # OSP >= 11 -- # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) -- nova = client.Client(version, -- username=options["--username"], -- password=options["--password"], -- tenant_name=options["--tenant-name"], -- auth_url=options["--auth-url"], -- insecure=options["--insecure"], -- region_name=options["--region-name"], -- endpoint_type=options["--endpoint-type"], -- http_log_debug=options.has_key("--verbose")) -+ # Some versions of Openstack prior to Ocata only -+ # supported positional arguments for username, -+ # password and tenant. -+ # -+ # Versions since Ocata only support named arguments. -+ # -+ # So we need to use introspection to figure out how to -+ # create a Nova client. -+ # -+ # Happy days -+ # -+ if clientargs: -+ # OSP < 11 -+ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'], -+ # varargs=None, -+ # keywords='kwargs', defaults=(None, None, None, None)) -+ nova = client.Client(version, -+ options["--username"], -+ options["--password"], -+ options["--tenant-name"], -+ options["--auth-url"], -+ insecure=options["--insecure"], -+ region_name=options["--region-name"], -+ endpoint_type=options["--endpoint-type"], -+ http_log_debug=options.has_key("--verbose")) -+ else: -+ # OSP >= 11 -+ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None) -+ nova = client.Client(version, -+ username=options["--username"], -+ password=options["--password"], -+ tenant_name=options["--tenant-name"], -+ auth_url=options["--auth-url"], -+ insecure=options["--insecure"], -+ region_name=options["--region-name"], -+ endpoint_type=options["--endpoint-type"], -+ http_log_debug=options.has_key("--verbose")) - - try: - nova.hypervisors.list() diff --git a/SOURCES/bz1459199-fence_vmware_soap-fix-for-selfsigned-certificate.patch b/SOURCES/bz1459199-fence_vmware_soap-fix-for-selfsigned-certificate.patch new file mode 100644 index 0000000..fa50b6c --- /dev/null +++ b/SOURCES/bz1459199-fence_vmware_soap-fix-for-selfsigned-certificate.patch @@ -0,0 +1,24 @@ +From ffb302ccca647984a9903074fd3ac97ba701741e Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Tue, 6 Jun 2017 17:18:42 +0200 +Subject: [PATCH] fence_vmware_soap: fix for selfsigned certificate + +--- + fence/agents/vmware_soap/fence_vmware_soap.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py b/fence/agents/vmware_soap/fence_vmware_soap.py +index 93f96583..007a1c67 100644 +--- a/fence/agents/vmware_soap/fence_vmware_soap.py ++++ b/fence/agents/vmware_soap/fence_vmware_soap.py +@@ -42,7 +42,10 @@ def soap_login(options): + + if options.has_key("--ssl") or options.has_key("--ssl-secure") or options.has_key("--ssl-insecure"): + if options.has_key("--ssl-insecure"): ++ import ssl + from requests.packages.urllib3.exceptions import InsecureRequestWarning ++ if hasattr(ssl, '_create_unverified_context'): ++ ssl._create_default_https_context = ssl._create_unverified_context + requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + verify = False + else: diff --git a/SPECS/fence-agents.spec b/SPECS/fence-agents.spec index cfda945..785e25e 100644 --- a/SPECS/fence-agents.spec +++ b/SPECS/fence-agents.spec @@ -16,7 +16,7 @@ Name: fence-agents Summary: Fence Agents for Red Hat Cluster Version: 4.0.11 -Release: 47%{?alphatag:.%{alphatag}}%{?dist}.5 +Release: 66%{?alphatag:.%{alphatag}}%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Base URL: http://sourceware.org/cluster/wiki/ @@ -119,17 +119,34 @@ Patch94: bz1287311-2-fence_compute-real-status-in-record-only-mode.patch Patch95: bz1298430-2-fence_cisco_ucs-status.patch Patch96: bz1287059-2-fence_rhevm-add-filter-header.patch Patch97: bz1387590-compute-fix-plug-domain-name-nova-force-down.patch -Patch98: bz1397889-monitor_port_as_ip.patch -Patch99: bz1412722-cisco_ucs-admin.patch -Patch100: bz1437965-1-fence_compute-project_id-to-project_name.patch -Patch101: bz1437965-2-fence_compute-project_id-to-project_name.patch +Patch98: bz1390915-monitor_port_as_ip.patch +Patch99: bz1337236-fence_sbd.patch +Patch100: bz1410881-cisco_ucs-admin.patch +Patch101: bz1384073-fence_compute-fix-connectionerror-exception.patch +Patch102: bz1377389-fence_ipmilan-add-target-support.patch +Patch103: bz1376481-1-fence_lpar-fix-monitor-fails.patch +Patch104: bz1376481-2-fence_lpar-fix-monitor-fails.patch +Patch105: bz1393962-fence_vmware_soap-ssl-insecure-suppress-warning.patch +Patch106: bz1377972-1-CI-dont-test-paths-in-metadata.patch +Patch107: bz1433948-1-validate-all-action.patch +Patch108: bz1433948-2-validate-all-action.patch +Patch109: bz1422499-fence_rhevm-disable-http-filter.patch +Patch110: bz1403028-fencing-parameters_stdin.patch +Patch111: bz1377972-2-CI-dont-test-paths-in-metadata.patch +Patch112: bz1426693-1-fence_compute-project_id-to-project_name.patch +Patch113: bz1426693-2-fence_compute-project_id-to-project_name.patch +Patch114: bz1459199-fence_vmware_soap-fix-for-selfsigned-certificate.patch %if 0%{?rhel} -%global supportedagents apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan mpath kdump rhevm rsa rsb scsi vmware_soap wti -%global allfenceagents fence-agents-apc fence-agents-apc-snmp fence-agents-bladecenter fence-agents-brocade fence-agents-cisco-mds fence-agents-cisco-ucs fence-agents-compute fence-agents-drac5 fence-agents-eaton-snmp fence-agents-emerson fence-agents-eps fence-agents-hpblade fence-agents-ibmblade fence-agents-ifmib fence-agents-ilo2 fence-agents-ilo-moonshot fence-agents-ilo-mp fence-agents-ilo-ssh fence-agents-intelmodular fence-agents-ipdu fence-agents-ipmilan fence-agents-mpath fence-agents-kdump fence-agents-rhevm fence-agents-rsa fence-agents-rsb fence-agents-scsi fence-agents-vmware-soap fence-agents-wti +%global supportedagents apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan mpath kdump rhevm rsa rsb sbd scsi vmware_soap wti +%global allfenceagents fence-agents-apc fence-agents-apc-snmp fence-agents-bladecenter fence-agents-brocade fence-agents-cisco-mds fence-agents-cisco-ucs fence-agents-compute fence-agents-drac5 fence-agents-eaton-snmp fence-agents-emerson fence-agents-eps fence-agents-hpblade fence-agents-ibmblade fence-agents-ifmib fence-agents-ilo2 fence-agents-ilo-moonshot fence-agents-ilo-mp fence-agents-ilo-ssh fence-agents-intelmodular fence-agents-ipdu fence-agents-ipmilan fence-agents-mpath fence-agents-kdump fence-agents-rhevm fence-agents-rsa fence-agents-rsb fence-agents-sbd fence-agents-scsi fence-agents-vmware-soap fence-agents-wti +%ifarch ppc64le +%global testagents virsh lpar +%endif %ifarch s390x %global testagents virsh zvm -%else +%endif +%ifnarch ppc64le s390x %global testagents virsh %endif %endif @@ -245,11 +262,24 @@ BuildRequires: autoconf automake libtool %patch94 -p1 -F2 -b .bz1287311-2 %patch95 -p1 -b .bz1298430-2 %patch96 -p1 -F2 -b .bz1287059-2 -%patch97 -p1 -b .bz1393789 -%patch98 -p1 -b .bz1397889 -%patch99 -p1 -b .bz1412722 -%patch100 -p1 -b .bz1437965-1 -%patch101 -p1 -b .bz1437965-2 +%patch97 -p1 -b .bz1387590 +%patch98 -p1 -b .bz1390915 +%patch99 -p1 -b .bz1337236 +%patch100 -p1 -b .bz1410881 +%patch101 -p1 -b .bz1384073 +%patch102 -p1 -b .bz1377389 +%patch103 -p1 -F2 -b .bz1376481-1 +%patch104 -p1 -b .bz1376481-2 +%patch105 -p1 -b .bz1393962 +%patch106 -p1 -b .bz1377972-1 +%patch107 -p1 -b .bz1433948-1 +%patch108 -p1 -F1 -b .bz1433948-2 +%patch109 -p1 -b .bz1422499 +%patch110 -p1 -b .bz1403028 +%patch111 -p1 -b .bz1377972-2 +%patch112 -p1 -b .bz1426693-1 +%patch113 -p1 -b .bz1426693-2 +%patch114 -p1 -b .bz1459199 %build ./autogen.sh @@ -277,9 +307,12 @@ power management for several devices. License: GPLv2+ and LGPLv2+ Group: System Environment/Base Summary: Common utilities for fence agents -Requires: python pexpect python-pycurl +Requires: python pexpect python-pycurl policycoreutils-python %description common Red Hat Fence Agents is a collection of scripts and libraries to handle remote power management for various devices. +%post common +/usr/sbin/semanage boolean -S targeted -N -m --on fenced_can_ssh +/usr/sbin/semanage boolean -S targeted -N -m --on fenced_can_network_connect %files common %defattr(-,root,root,-) %doc doc/COPYING.* doc/COPYRIGHT doc/README.licence @@ -296,6 +329,12 @@ Requires: %{allfenceagents} %ifarch i686 x86_64 Requires: fence-virt %endif +%ifarch ppc64le +Requires: fence-agents-lpar +%endif +%ifarch s390x +Requires: fence-agents-zvm +%endif Provides: fence-agents = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description all @@ -669,7 +708,7 @@ The fence-agents-ldom package contains a fence agent for Sun LDom devices that a %{_mandir}/man8/fence_ldom.8* %endif -%if 0%{?fedora} +%ifarch ppc64le %package lpar License: GPLv2+ and LGPLv2+ Group: System Environment/Base @@ -742,6 +781,19 @@ The fence-agents-sanbox2 package contains a fence agent for QLogic SANBox2 switc %{_mandir}/man8/fence_sanbox2.8* %endif +%package sbd +License: GPLv2+ and LGPLv2+ +Group: System Environment/Base +Summary: Fence agent for SBD (storage-based death) +Requires: fence-agents-common >= %{version}-%{release} +Obsoletes: fence-agents +%description sbd +The fence-agents-sbd package contains fence agent for SBD (storage-based death) +%files sbd +%defattr(-,root,root,-) +%{_sbindir}/fence_sbd +%{_mandir}/man8/fence_sbd.8* + %package scsi License: GPLv2+ and LGPLv2+ Group: System Environment/Base @@ -817,21 +869,84 @@ The fence-agents-zvm package contains a fence agent for z/VM hypervisors %endif %changelog -* Mon Apr 3 2017 Oyvind Albrigtsen - 4.0.11-47.5 -- fence_compute: fix project_id changed to project_name in Nova API - Resolves: rhbz#1437965 +* Fri Jun 16 2017 Marek Grac - 4.0.11-66 +- Set SELinux booleans even when SELinux is disabled + Resolves: rhbz#1457887 -* Mon Jan 23 2017 Marek Grac - 4.0.11-47.3 -- fence_cisco_ucs: Change command sent to UCS - Resolves: rhbz#1412722 +* Thu Jun 15 2017 Marek Grac - 4.0.11-65 +- Set SELinux booleans even when SELinux is disabled + Resolves: rhbz#1457887 -* Wed Nov 23 2016 Marek Grac - 4.0.11-47.2 -- fencing: Fix 'monitor' action for devices with --port-as-ip - Resolves: rhbz#1397889 +* Wed Jun 7 2017 Oyvind Albrigtsen - 4.0.11-64 +- fence_vmware_soap: fix for self-signed certificates + Resolves: rhbz#1459199 + +* Tue May 30 2017 Marek Grac - 4.0.11-63 +- Add dependencies on policycoreutils + Resolves: rhbz#1427986 -* Wed Nov 9 2016 Andrew Beekhof - 4.0.11-47.1 +* Wed May 17 2017 Marek Grac - 4.0.11-62 +- Set SELinux booleans required for fence agent integration with cluster + Resolves: rhbz#1427986 + +* Thu May 4 2017 Oyvind Albrigtsen - 4.0.11-61 +- fence_ipmilan: add target (ipmilan -t ) support + Resolves: rhbz#1377389 + +* Mon Apr 3 2017 Oyvind Albrigtsen - 4.0.11-60 +- fence_compute: fix project_id changed to project_name in Nova API + Resolves: rhbz#1426693 + +* Thu Mar 23 2017 Oyvind Albrigtsen - 4.0.11-58 +- CI: dont test paths in metadata + Resolves: rhbz#1377972 + +* Wed Mar 22 2017 Marek Grac - 4.0.11-57 +- Set SELinux booleans required for fence agent integration with cluster + Resolves: rhbz#1427986 +- Add consistency of parameters between STDIN and command-line + Resolves: rhbz#1403028 + +* Tue Mar 21 2017 Oyvind Albrigtsen - 4.0.11-56 +- fencing: add validate-all action + Resolves: rhbz#1433948 +- fence_rhevm: add "--disable-http-filter" to be able to explicitly + use oVirt API version 3 + Resolves: rhbz#1422499 + +* Wed Mar 01 2017 Marek Grac - 4.0.11-54 +- fence_lpar: Fix monitor action on IVM systems + Resolves: rhbz#1376481 + +* Tue Feb 21 2017 Oyvind Albrigtsen - 4.0.11-53 - fence_compute: Improved FQDN and Nova handling - Resolves: rhbz#1393789 + Resolves: rhbz#1387590 + +* Tue Feb 14 2017 Oyvind Albrigtsen - 4.0.11-52 +- fence_compute: fix ConnectionError + Resolves: rhbz#1384073 +- fence_lpar: add IVM support and improve error handling + Resolves: rhbz#1376481 +- fence_vmware_soap: suppress warning for --ssl-insecure + Resolves: rhbz#1393962 +- Add support for "s" for seconds for delay, *_timeout, *_wait parameters + Resolves: rhbz#1377928 +- fence-agents-zvm: add to fence-agents-all dependencies for s390x + Resolves: rhbz#1255700 +- Build for ppc64le + Resolves: rhbz#1402566 + +* Mon Jan 23 2017 Marek Grac +- fence_cisco_ucs: Change commands send to UCS + Resolves: rhbz#1410881 + +* Wed Jan 11 2017 Oyvind Albrigtsen - 4.0.11-50 +- fence_sbd: new fence agent + Resolves: rhbz#1337236 + +* Wed Nov 23 2016 Marek Grac - 4.0.11-49 +- fencing: Fix 'monitor' action for devices with --port-as-ip + Resolves: rhbz#1390915 * Wed Aug 31 2016 Oyvind Albrigtsen - 4.0.11-47 - fence_rhevm: fix issues on RHEV 4 @@ -896,7 +1011,7 @@ The fence-agents-zvm package contains a fence agent for z/VM hypervisors - fence_amt_ws: new fence agent Resolves: rhbz#1296201 - fence_compute: fix to locate all instances to be evacuated - Resolves: rhbz#1313561 + Resolves: rhbz#1313561 * Mon Feb 22 2016 Marek Grac - 4.0.11-33 - fence_cisco_ucs: Obtain status from different attribute