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 @@
++<?xml version="1.0" ?>
++<resource-agent name="fence_sbd" shortdesc="Fence agent for sbd" >
++<longdesc>fence_sbd is I/O Fencing agent which can be used in environments where sbd can be used (shared storage).</longdesc>
++<vendor-url></vendor-url>
++<parameters>
++	<parameter name="action" unique="0" required="1">
++		<getopt mixed="-o, --action=[action]" />
++		<content type="string" default="reboot"  />
++		<shortdesc lang="en">Fencing action</shortdesc>
++	</parameter>
++	<parameter name="devices" unique="0" required="1">
++		<getopt mixed="--devices=[device_a,device_b]" />
++		<content type="string"  />
++		<shortdesc lang="en">SBD Device</shortdesc>
++	</parameter>
++	<parameter name="method" unique="0" required="0">
++		<getopt mixed="-m, --method=[method]" />
++		<content type="select" default="cycle"  >
++			<option value="onoff" />
++			<option value="cycle" />
++		</content>
++		<shortdesc lang="en">Method to fence</shortdesc>
++	</parameter>
++	<parameter name="port" unique="0" required="1">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
++	</parameter>
++	<parameter name="verbose" unique="0" required="0">
++		<getopt mixed="-v, --verbose" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Verbose mode</shortdesc>
++	</parameter>
++	<parameter name="debug" unique="0" required="0">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="version" unique="0" required="0">
++		<getopt mixed="-V, --version" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Display version information and exit</shortdesc>
++	</parameter>
++	<parameter name="help" unique="0" required="0">
++		<getopt mixed="-h, --help" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Display help and exit</shortdesc>
++	</parameter>
++	<parameter name="separator" unique="0" required="0">
++		<getopt mixed="-C, --separator=[char]" />
++		<content type="string" default=","  />
++		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
++	</parameter>
++	<parameter name="delay" unique="0" required="0">
++		<getopt mixed="--delay=[seconds]" />
++		<content type="string" default="0"  />
++		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
++	</parameter>
++	<parameter name="login_timeout" unique="0" required="0">
++		<getopt mixed="--login-timeout=[seconds]" />
++		<content type="string" default="5"  />
++		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
++	</parameter>
++	<parameter name="power_timeout" unique="0" required="0">
++		<getopt mixed="--power-timeout=[seconds]" />
++		<content type="string" default="20"  />
++		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
++	</parameter>
++	<parameter name="power_wait" unique="0" required="0">
++		<getopt mixed="--power-wait=[seconds]" />
++		<content type="string" default="0"  />
++		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
++	</parameter>
++	<parameter name="sbd_path" unique="0" required="0">
++		<getopt mixed="--sbd-path=[path]" />
++		<content type="string" default="/usr/sbin/sbd"  />
++		<shortdesc lang="en">Path to SBD binary</shortdesc>
++	</parameter>
++	<parameter name="shell_timeout" unique="0" required="0">
++		<getopt mixed="--shell-timeout=[seconds]" />
++		<content type="string" default="3"  />
++		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
++	</parameter>
++	<parameter name="retry_on" unique="0" required="0">
++		<getopt mixed="--retry-on=[attempts]" />
++		<content type="string" default="1"  />
++		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
++	</parameter>
++</parameters>
++<actions>
++	<action name="on" automatic="0"/>
++	<action name="off" />
++	<action name="reboot" />
++	<action name="status" />
++	<action name="list" />
++	<action name="list-status" />
++	<action name="monitor" />
++	<action name="metadata" />
++	<action name="validate-all" />
++</actions>
++</resource-agent>
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 <mgrac@redhat.com>
+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 @@
+ 		<content type="select" default="4"  >
+ 			<option value="3" />
+ 			<option value="4" />
++			<option value="ivm" />
+ 		</content>
+-		<shortdesc lang="en">Force HMC version to use (3 or 4)</shortdesc>
++		<shortdesc lang="en">Force HMC version to use (3, 4 or IVM)</shortdesc>
+ 	</parameter>
+ 	<parameter name="inet4_only" unique="0" required="0">
+ 		<getopt mixed="-4, --inet4-only" />
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 <mgrac@redhat.com>
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+ 	</parameter>
++	<parameter name="target" unique="0" required="0">
++		<getopt mixed="--target=[targetaddress]" />
++		<content type="string"  />
++		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
++	</parameter>
+ 	<parameter name="privlvl" unique="0" required="0">
+ 		<getopt mixed="-L, --privlvl=[level]" />
+ 		<content type="select" default="administrator"  >
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+ 	</parameter>
++	<parameter name="target" unique="0" required="0">
++		<getopt mixed="--target=[targetaddress]" />
++		<content type="string"  />
++		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
++	</parameter>
+ 	<parameter name="privlvl" unique="0" required="0">
+ 		<getopt mixed="-L, --privlvl=[level]" />
+ 		<content type="select" default="administrator"  >
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+ 	</parameter>
++	<parameter name="target" unique="0" required="0">
++		<getopt mixed="--target=[targetaddress]" />
++		<content type="string"  />
++		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
++	</parameter>
+ 	<parameter name="privlvl" unique="0" required="0">
+ 		<getopt mixed="-L, --privlvl=[level]" />
+ 		<content type="select" default="administrator"  >
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+ 	</parameter>
++	<parameter name="target" unique="0" required="0">
++		<getopt mixed="--target=[targetaddress]" />
++		<content type="string"  />
++		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
++	</parameter>
+ 	<parameter name="privlvl" unique="0" required="0">
+ 		<getopt mixed="-L, --privlvl=[level]" />
+ 		<content type="select" default="administrator"  >
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+ 	</parameter>
++	<parameter name="target" unique="0" required="0">
++		<getopt mixed="--target=[targetaddress]" />
++		<content type="string"  />
++		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
++	</parameter>
+ 	<parameter name="privlvl" unique="0" required="0">
+ 		<getopt mixed="-L, --privlvl=[level]" />
+ 		<content type="select" default="administrator"  >
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<option value=\"%s\" />" % (choice)
+ 				print "\t\t</content>"
+ 			elif all_opt[option]["getopt"].count(":") > 0:
+-				print "\t\t<content type=\"string\" "+default+" />"
++				t = all_opt[option].get("type", "string")
++				print("\t\t<content type=\"%s\" " % (t) +default+" />")
+ 			else:
+ 				print "\t\t<content type=\"boolean\" "+default+" />"
+ 
+@@ -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 @@
+ 						<choice>
+ 							<value>boolean</value>
+ 							<value>string</value>
++							<value>second</value>
++							<value>integer</value>
+ 						</choice>
+ 					</attribute>
+ 					<group>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="22"  />
++		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -90,27 +90,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -120,7 +120,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -84,32 +84,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="amttool_path" unique="0" required="0">
+ 		<getopt mixed="--amttool-path=[path]" />
+-		<content type="string" default="/usr/bin/amttool"  />
+ 		<shortdesc lang="en">Path to amttool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -119,7 +118,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -100,32 +100,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,27 +95,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="10"  />
++		<content type="second" default="10"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="missing_as_off" unique="0" required="0">
+@@ -125,7 +125,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,32 +95,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="80"  />
++		<content type="integer" default="80"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="notls" unique="0" required="0">
+@@ -100,22 +100,22 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="missing_as_off" unique="0" required="0">
+@@ -125,12 +125,12 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <longdesc>Used to tell Nova that compute nodes are down and to reschedule flagged instances</longdesc>
+ <vendor-url></vendor-url>
+ <parameters>
++	<parameter name="region-name" unique="0" required="0">
++		<getopt mixed="--region-name=[region]" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Region Name</shortdesc>
++	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+@@ -14,7 +19,7 @@
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+ 	<parameter name="auth-url" unique="0" required="0">
+-		<getopt mixed="-k, --auth-url=[tenant]" />
++		<getopt mixed="-k, --auth-url=[url]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
+ 	</parameter>
+@@ -43,6 +48,11 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="insecure" unique="0" required="0">
++		<getopt mixed="--insecure" />
++		<content type="boolean" default="False"  />
++		<shortdesc lang="en">Allow Insecure TLS Requests</shortdesc>
++	</parameter>
+ 	<parameter name="domain" unique="0" required="0">
+ 		<getopt mixed="-d, --domain=[string]" />
+ 		<content type="string"  />
+@@ -90,32 +100,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="180"  />
++		<content type="second" default="180"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="80"  />
++		<content type="integer" default="80"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ssl_secure" unique="0" required="0">
+@@ -98,32 +98,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -104,32 +104,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -75,27 +75,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -105,7 +105,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="2"  />
++		<content type="second" default="2"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+@@ -82,32 +82,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,27 +95,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="missing_as_off" unique="0" required="0">
+@@ -125,7 +125,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,27 +95,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="10"  />
++		<content type="second" default="10"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="missing_as_off" unique="0" required="0">
+@@ -125,7 +125,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="623"  />
++		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -121,32 +121,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="2"  />
++		<content type="second" default="2"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipmitool_path" unique="0" required="0">
+ 		<getopt mixed="--ipmitool-path=[path]" />
+-		<content type="string" default="/usr/bin/ipmitool"  />
+ 		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -156,7 +155,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -126,32 +126,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="443"  />
++		<content type="integer" default="443"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="notls" unique="0" required="0">
+@@ -101,27 +101,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="10"  />
++		<content type="second" default="10"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -131,7 +131,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="3"  />
++		<content type="integer" default="3"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -100,27 +100,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -130,7 +130,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="623"  />
++		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -121,32 +121,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="4"  />
++		<content type="second" default="4"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipmitool_path" unique="0" required="0">
+ 		<getopt mixed="--ipmitool-path=[path]" />
+-		<content type="string" default="/usr/bin/ipmitool"  />
+ 		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -156,7 +155,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -100,27 +100,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -130,7 +130,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="623"  />
++		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -121,32 +121,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="2"  />
++		<content type="second" default="2"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipmitool_path" unique="0" required="0">
+ 		<getopt mixed="--ipmitool-path=[path]" />
+-		<content type="string" default="/usr/bin/ipmitool"  />
+ 		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -156,7 +155,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="22"  />
++		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,32 +95,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -90,27 +90,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -120,7 +120,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -100,27 +100,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -130,7 +130,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="443"  />
++		<content type="integer" default="443"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="notls" unique="0" required="0">
+@@ -101,27 +101,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="10"  />
++		<content type="second" default="10"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -131,7 +131,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="3"  />
++		<content type="integer" default="3"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="623"  />
++		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -121,32 +121,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="2"  />
++		<content type="second" default="2"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipmitool_path" unique="0" required="0">
+ 		<getopt mixed="--ipmitool-path=[path]" />
+-		<content type="string" default="/usr/bin/ipmitool"  />
+ 		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -156,7 +155,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -126,32 +126,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="161"  />
++		<content type="integer" default="161"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="snmp_version" unique="0" required="0">
+@@ -124,32 +124,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="623"  />
++		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="0">
+@@ -121,32 +121,31 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="2"  />
++		<content type="second" default="2"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipmitool_path" unique="0" required="0">
+ 		<getopt mixed="--ipmitool-path=[path]" />
+-		<content type="string" default="/usr/bin/ipmitool"  />
+ 		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -156,7 +155,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="22"  />
++		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -97,32 +97,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="22"  />
++		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="managed" unique="0" required="0">
+@@ -109,32 +109,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="15"  />
++		<content type="second" default="15"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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.</longdesc>
+ <vendor-url>https://www.sourceware.org/dm/</vendor-url>
+ <parameters>
+-	<parameter name="devices" unique="0" required="0">
+-		<getopt mixed="-d, --devices=[devices]" />
+-		<content type="string"  />
+-		<shortdesc lang="en">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.</shortdesc>
++	<parameter name="action" unique="0" required="1">
++		<getopt mixed="-o, --action=[action]" />
++		<content type="string" default="off"  />
++		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+ 	<parameter name="key" unique="0" required="1">
+ 		<getopt mixed="-k, --key=[key]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">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).</shortdesc>
+ 	</parameter>
+-	<parameter name="action" unique="0" required="1">
+-		<getopt mixed="-o, --action=[action]" />
+-		<content type="string" default="off"  />
+-		<shortdesc lang="en">Fencing Action</shortdesc>
++	<parameter name="devices" unique="0" required="0">
++		<getopt mixed="-d, --devices=[devices]" />
++		<content type="string"  />
++		<shortdesc lang="en">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.</shortdesc>
+ 	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+@@ -39,44 +39,42 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Display help and exit</shortdesc>
+ 	</parameter>
+-	<parameter name="delay" unique="0" required="0">
+-		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
+-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+-	</parameter>
+-	<parameter name="shell_timeout" unique="0" required="0">
+-		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
+-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+-	</parameter>
+-	<parameter name="store_path" unique="0" required="0">
+-		<getopt mixed="--store-path=[path]" />
+-		<content type="string" default="/var/run/cluster"  />
+-		<shortdesc lang="en">Path to directory where fence agent can store information</shortdesc>
+-	</parameter>
+-	<parameter name="power_timeout" unique="0" required="0">
+-		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
+-		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+-	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
++	<parameter name="power_timeout" unique="0" required="0">
++		<getopt mixed="--power-timeout=[seconds]" />
++		<content type="second" default="20"  />
++		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
++	</parameter>
++	<parameter name="delay" unique="0" required="0">
++		<getopt mixed="--delay=[seconds]" />
++		<content type="second" default="0"  />
++		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
++	</parameter>
+ 	<parameter name="mpathpersist_path" unique="0" required="0">
+ 		<getopt mixed="--mpathpersist-path=[path]" />
+-		<content type="string" default="/usr/sbin/mpathpersist"  />
+ 		<shortdesc lang="en">Path to mpathpersist binary</shortdesc>
+ 	</parameter>
++	<parameter name="shell_timeout" unique="0" required="0">
++		<getopt mixed="--shell-timeout=[seconds]" />
++		<content type="second" default="3"  />
++		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
++	</parameter>
++	<parameter name="store_path" unique="0" required="0">
++		<getopt mixed="--store-path=[path]" />
++		<shortdesc lang="en">Path to directory where fence agent can store information</shortdesc>
++	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="1234"  />
++		<content type="integer" default="1234"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="inet6_only" unique="0" required="0">
+@@ -75,32 +75,32 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="8006"  />
++		<content type="integer" default="8006"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+@@ -80,32 +80,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="inet6_only" unique="0" required="0">
+@@ -75,32 +75,32 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="80"  />
++		<content type="integer" default="80"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="notls" unique="0" required="0">
+@@ -75,7 +75,6 @@
+ 	</parameter>
+ 	<parameter name="api_path" unique="0" required="0">
+ 		<getopt mixed="--api-path=[path]" />
+-		<content type="string" default="/ovirt-engine/api"  />
+ 		<shortdesc lang="en">The path of the API URL</shortdesc>
+ 	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+@@ -105,32 +104,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="1"  />
++		<content type="second" default="1"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -90,27 +90,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="10"  />
++		<content type="second" default="10"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -120,7 +120,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="3172"  />
++		<content type="integer" default="3172"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="0">
+@@ -90,27 +90,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="port_as_ip" unique="0" required="0">
+@@ -120,7 +120,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+@@ -80,32 +80,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <longdesc>fence_sbd is I/O Fencing agent which can be used in environments where sbd can be used (shared storage).</longdesc>
+ <vendor-url></vendor-url>
+ <parameters>
+-	<parameter name="action" unique="0" required="1">
+-		<getopt mixed="-o, --action=[action]" />
+-		<content type="string" default="reboot"  />
+-		<shortdesc lang="en">Fencing action</shortdesc>
+-	</parameter>
+ 	<parameter name="devices" unique="0" required="1">
+ 		<getopt mixed="--devices=[device_a,device_b]" />
+ 		<content type="string"  />
+@@ -19,12 +14,17 @@
+ 			<option value="onoff" />
+ 			<option value="cycle" />
+ 		</content>
+-		<shortdesc lang="en">Method to fence</shortdesc>
++		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
++	</parameter>
++	<parameter name="action" unique="0" required="1">
++		<getopt mixed="-o, --action=[action]" />
++		<content type="string" default="reboot"  />
++		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+@@ -49,41 +49,40 @@
+ 	<parameter name="separator" unique="0" required="0">
+ 		<getopt mixed="-C, --separator=[char]" />
+ 		<content type="string" default=","  />
+-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
++		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
+ 	</parameter>
+-	<parameter name="delay" unique="0" required="0">
+-		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
+-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
++	<parameter name="shell_timeout" unique="0" required="0">
++		<getopt mixed="--shell-timeout=[seconds]" />
++		<content type="second" default="3"  />
++		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+-	<parameter name="login_timeout" unique="0" required="0">
+-		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
+-		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
++	<parameter name="power_wait" unique="0" required="0">
++		<getopt mixed="--power-wait=[seconds]" />
++		<content type="second" default="0"  />
++		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+-	<parameter name="power_wait" unique="0" required="0">
+-		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
+-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
++	<parameter name="delay" unique="0" required="0">
++		<getopt mixed="--delay=[seconds]" />
++		<content type="second" default="0"  />
++		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="sbd_path" unique="0" required="0">
+ 		<getopt mixed="--sbd-path=[path]" />
+-		<content type="string" default="/usr/sbin/sbd"  />
+ 		<shortdesc lang="en">Path to SBD binary</shortdesc>
+ 	</parameter>
+-	<parameter name="shell_timeout" unique="0" required="0">
+-		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
+-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
++	<parameter name="login_timeout" unique="0" required="0">
++		<getopt mixed="--login-timeout=[seconds]" />
++		<content type="second" default="5"  />
++		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+@@ -96,6 +95,5 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
+-	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	</parameter>
+ 	<parameter name="vgs_path" unique="0" required="0">
+ 		<getopt mixed="--vgs-path=[path]" />
+-		<content type="string" default="/usr/sbin/vgs"  />
+ 		<shortdesc lang="en">Path to vgs binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="sg_persist_path" unique="0" required="0">
+ 		<getopt mixed="--sg_persist-path=[path]" />
+-		<content type="string" default="/usr/bin/sg_persist"  />
+ 		<shortdesc lang="en">Path to sg_persist binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="sg_turs_path" unique="0" required="0">
+ 		<getopt mixed="--sg_turs-path=[path]" />
+-		<content type="string" default="/usr/bin/sg_turs"  />
+ 		<shortdesc lang="en">Path to sg_turs binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="corosync-cmap_path" unique="0" required="0">
+ 		<getopt mixed="--corosync-cmap-path=[path]" />
+-		<content type="string" default="/usr/sbin/corosync-cmapctl"  />
+ 		<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="22"  />
++		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -97,37 +97,37 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+-	<parameter name="missing_as_off" unique="0" required="0">
+-		<getopt mixed="--missing-as-off" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
+-	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
++	<parameter name="missing_as_off" unique="0" required="0">
++		<getopt mixed="--missing-as-off" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
++	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ 	<parameter name="sudo" unique="0" required="0">
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="80"  />
++		<content type="integer" default="80"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="notls" unique="0" required="0">
+@@ -97,32 +97,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="23"  />
++		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="ipaddr" unique="0" required="1">
+@@ -95,32 +95,32 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="3"  />
++		<content type="second" default="3"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
+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 @@
+ <parameters>
+ 	<parameter name="ipport" unique="0" required="0">
+ 		<getopt mixed="-u, --ipport=[port]" />
+-		<content type="string" default="44444"  />
++		<content type="integer" default="44444"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+ 	<parameter name="port" unique="0" required="1">
+@@ -97,27 +97,27 @@
+ 	</parameter>
+ 	<parameter name="power_wait" unique="0" required="0">
+ 		<getopt mixed="--power-wait=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="login_timeout" unique="0" required="0">
+ 		<getopt mixed="--login-timeout=[seconds]" />
+-		<content type="string" default="5"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ 	</parameter>
+ 	<parameter name="power_timeout" unique="0" required="0">
+ 		<getopt mixed="--power-timeout=[seconds]" />
+-		<content type="string" default="20"  />
++		<content type="second" default="20"  />
+ 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ 	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+-		<content type="string" default="0"  />
++		<content type="second" default="0"  />
+ 		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ 	</parameter>
+ 	<parameter name="shell_timeout" unique="0" required="0">
+ 		<getopt mixed="--shell-timeout=[seconds]" />
+-		<content type="string" default="5.0"  />
++		<content type="second" default="5"  />
+ 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ 	</parameter>
+ 	<parameter name="missing_as_off" unique="0" required="0">
+@@ -127,7 +127,7 @@
+ 	</parameter>
+ 	<parameter name="retry_on" unique="0" required="0">
+ 		<getopt mixed="--retry-on=[attempts]" />
+-		<content type="string" default="1"  />
++		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+ </parameters>
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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -28,7 +28,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -38,12 +38,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -68,11 +68,36 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="api_path" unique="0" required="0">
+ 		<getopt mixed="--api-path=[path]" />
+ 		<shortdesc lang="en">The path of the API URL</shortdesc>
+@@ -87,7 +112,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
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 <oalbrigt@redhat.com>
+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 <mgrac@redhat.com>
+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 <memotype@gmail.com>
+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 <mgrac@redhat.com>
-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 <mgrac@redhat.com>
+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 @@
+ <xsl:output method="text" indent="no"/>
+ <xsl:template match="parameter">
+ <xsl:param name="show" />
++<xsl:if test="not(@deprecated)">
+ .TP
+ <xsl:if test="$show = 'getopt'">.B <xsl:value-of select="getopt/@mixed" /></xsl:if>
+ <xsl:if test="$show = 'stdin'">.B <xsl:value-of select="@name"/></xsl:if>
+@@ -9,6 +10,11 @@
+ <xsl:value-of select="normalize-space(shortdesc)"/>
+ <xsl:if test="not(content/@default)"><xsl:if test="@required = 1"> This parameter is always required.</xsl:if></xsl:if>
+ <xsl:if test="content/@default"> (Default Value: <xsl:value-of select="content/@default"/>)</xsl:if>
++<xsl:if test="$show = 'stdin'">
++<xsl:if test="@obsoletes"> Obsoletes: <xsl:value-of select="@obsoletes" /></xsl:if>
++</xsl:if>
++
++</xsl:if>
+ </xsl:template>
+ 
+ <xsl:template match="action">
+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 "<?xml version=\"1.0\" ?>"
+@@ -534,22 +539,32 @@ def metadata(avail_opt, options, docs):
+ 	if docs.has_key("vendorurl"):
+ 		print "<vendor-url>" + docs["vendorurl"] + "</vendor-url>"
+ 	print "<parameters>"
+-	for option, _ in sorted_list:
+-		if all_opt[option].has_key("shortdesc"):
+-			print "\t<parameter name=\"" + option + "\" unique=\"0\" required=\"" + all_opt[option]["required"] + "\">"
++
++	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<parameter name=\"" + key + "\" unique=\"0\" required=\"" + opt["required"] + "\"" + info + ">"
+ 
+ 			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("'", "&apos;")
+ 				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("<", "&lt;").replace(">", "&gt;")
+ 			print "\t\t<getopt mixed=\"" + mixed + "\" />"
+ 
+-			if all_opt[option].has_key("choices"):
++			if opt.has_key("choices"):
+ 				print "\t\t<content type=\"select\" "+default+" >"
+-				for choice in all_opt[option]["choices"]:
++				for choice in opt["choices"]:
+ 					print "\t\t\t<option value=\"%s\" />" % (choice)
+ 				print "\t\t</content>"
+-			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<content type=\"%s\" " % (t) +default+" />")
+ 			else:
+ 				print "\t\t<content type=\"boolean\" "+default+" />"
+ 
+-			print "\t\t<shortdesc lang=\"en\">" + all_opt[option]["shortdesc"] + "</shortdesc>"
++			print "\t\t<shortdesc lang=\"en\">" + opt["shortdesc"] + "</shortdesc>"
+ 			print "\t</parameter>"
+ 	print "</parameters>"
+ 	print "<actions>"
+@@ -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 @@
+ 			<attribute name="name" />
+ 			<attribute name="unique"> <ref name="boolean-values" /> </attribute>
+ 			<attribute name="required"> <ref name="boolean-values" />  </attribute>
+-
++			<optional><attribute name="deprecated"> <ref name="boolean-values" /></attribute></optional>
++			<optional><attribute name="obsoletes" /> </optional>
+ 			<element name="getopt">
+ 				<attribute name="mixed" />
+ 			</element>
+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 @@
+ 		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean" default="1"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;sc\\&gt;\\ &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean" default="1"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;sc\\&gt;\\ &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -18,7 +18,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -36,12 +36,12 @@
+ 		</content>
+ 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -62,12 +62,37 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -121,7 +146,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\n&gt;&apos;, &apos;\napc&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -68,17 +68,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\n&gt;&apos;, &apos;\napc&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;system&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;system&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;&gt; &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="off"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;&gt; &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="off"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -33,7 +33,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -68,17 +68,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ <longdesc>Used to tell Nova that compute nodes are down and to reschedule flagged instances</longdesc>
+ <vendor-url></vendor-url>
+ <parameters>
+-	<parameter name="region-name" unique="0" required="0">
++	<parameter name="region-name" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="--region-name=[region]" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Region Name</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="auth-url" unique="0" required="0">
++	<parameter name="auth-url" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-k, --auth-url=[url]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+ 	</parameter>
+-	<parameter name="endpoint-type" unique="0" required="0">
++	<parameter name="endpoint-type" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-e, --endpoint-type=[endpoint]" />
+ 		<content type="string" default="internalURL"  />
+ 		<shortdesc lang="en">Nova Endpoint type</shortdesc>
+ 	</parameter>
+-	<parameter name="tenant-name" unique="0" required="0">
++	<parameter name="tenant-name" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-t, --tenant-name=[tenant]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+@@ -43,11 +43,51 @@
+ 		<content type="string" default="off"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="region_name" unique="0" required="0" obsoletes="region-name">
++		<getopt mixed="--region-name=[region]" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Region Name</shortdesc>
++	</parameter>
++	<parameter name="tenant_name" unique="0" required="0" obsoletes="tenant-name">
++		<getopt mixed="-t, --tenant-name=[tenant]" />
++		<content type="string"  />
++		<shortdesc lang="en">Keystone Admin Tenant</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="endpoint_type" unique="0" required="0" obsoletes="endpoint-type">
++		<getopt mixed="-e, --endpoint-type=[endpoint]" />
++		<content type="string" default="internalURL"  />
++		<shortdesc lang="en">Nova Endpoint type</shortdesc>
++	</parameter>
++	<parameter name="auth_url" unique="0" required="0" obsoletes="auth-url">
++		<getopt mixed="-k, --auth-url=[url]" />
++		<content type="string"  />
++		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="insecure" unique="0" required="0">
+ 		<getopt mixed="--insecure" />
+ 		<content type="boolean" default="False"  />
+@@ -58,27 +98,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">DNS domain in which hosts live</shortdesc>
+ 	</parameter>
+-	<parameter name="instance-filtering" unique="0" required="0">
++	<parameter name="instance-filtering" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="--instance-filtering" />
+ 		<content type="boolean" default="True"  />
+ 		<shortdesc lang="en">Allow instances to be evacuated</shortdesc>
+ 	</parameter>
+-	<parameter name="no-shared-storage" unique="0" required="0">
++	<parameter name="no-shared-storage" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="--no-shared-storage" />
+ 		<content type="boolean" default="False"  />
+ 		<shortdesc lang="en">Disable functionality for dealing with shared storage</shortdesc>
+ 	</parameter>
+-	<parameter name="record-only" unique="0" required="0">
++	<parameter name="record-only" unique="0" required="0" deprecated="1">
++		<getopt mixed="--record-only" />
++		<content type="string" default="False"  />
++		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
++	</parameter>
++	<parameter name="record_only" unique="0" required="0" obsoletes="record-only">
+ 		<getopt mixed="--record-only" />
+ 		<content type="string" default="False"  />
+ 		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
+ 	</parameter>
++	<parameter name="instance_filtering" unique="0" required="0" obsoletes="instance-filtering">
++		<getopt mixed="--instance-filtering" />
++		<content type="boolean" default="True"  />
++		<shortdesc lang="en">Allow instances to be evacuated</shortdesc>
++	</parameter>
++	<parameter name="no_shared_storage" unique="0" required="0" obsoletes="no-shared-storage">
++		<getopt mixed="--no-shared-storage" />
++		<content type="boolean" default="False"  />
++		<shortdesc lang="en">Disable functionality for dealing with shared storage</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -23,7 +23,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -56,6 +56,16 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
+ 	<parameter name="tlskey" unique="0" required="0">
+ 		<getopt mixed="--tlskey" />
+ 		<content type="string"  />
+@@ -76,7 +86,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\\[username\\]# &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -23,7 +23,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -33,12 +33,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -48,17 +48,52 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\\[username\\]# &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\\$&apos;, &apos;DRAC\\/MC:&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -72,17 +72,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\\$&apos;, &apos;DRAC\\/MC:&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -20,7 +20,7 @@ Agent basically works by connecting to hidden page and pass appropriate argument
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -30,17 +30,17 @@ Agent basically works by connecting to hidden page and pass appropriate argument
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="hidden_page" unique="0" required="0">
++	<parameter name="hidden_page" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --page=[page]" />
+ 		<content type="string" default="hidden.htm"  />
+ 		<shortdesc lang="en">Name of hidden page</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -50,17 +50,52 @@ Agent basically works by connecting to hidden page and pass appropriate argument
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="page" unique="0" required="0" obsoletes="hidden_page">
++		<getopt mixed="-c, --page=[page]" />
++		<content type="string" default="hidden.htm"  />
++		<shortdesc lang="en">Name of hidden page</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\\) :&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\\) :&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;c7000oa&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;c7000oa&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -22,12 +22,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -45,7 +45,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Timeout (sec) for IPMI operation</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -158,7 +188,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -42,7 +42,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -70,7 +70,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -84,7 +84,7 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
+ 		<content type="string" default="off"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Disable TLS negotiation, force SSL 3.0</shortdesc>
+ 	</parameter>
+-	<parameter name="ribcl" unique="0" required="0">
++	<parameter name="ribcl" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-r, --ribcl-version=[version]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Force ribcl version to use</shortdesc>
+@@ -34,12 +34,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -49,7 +49,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -59,7 +59,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Disable TLS negotiaton, force TLS 1.0</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -74,17 +74,52 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="ribcl_version" unique="0" required="0" obsoletes="ribcl">
++		<getopt mixed="-r, --ribcl-version=[version]" />
++		<content type="string"  />
++		<shortdesc lang="en">Force ribcl version to use</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Disable TLS negotiation, force SSL 3.0</shortdesc>
+ 	</parameter>
+-	<parameter name="ribcl" unique="0" required="0">
++	<parameter name="ribcl" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-r, --ribcl-version=[version]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Force ribcl version to use</shortdesc>
+@@ -34,12 +34,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -49,7 +49,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -59,7 +59,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Disable TLS negotiaton, force TLS 1.0</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -74,17 +74,52 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="ribcl_version" unique="0" required="0" obsoletes="ribcl">
++		<getopt mixed="-r, --ribcl-version=[version]" />
++		<content type="string"  />
++		<shortdesc lang="en">Force ribcl version to use</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -22,12 +22,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -45,7 +45,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Timeout (sec) for IPMI operation</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -158,7 +188,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -53,12 +53,12 @@
+ 		</content>
+ 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -73,17 +73,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -22,12 +22,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -45,7 +45,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Timeout (sec) for IPMI operation</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -158,7 +188,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -53,12 +53,12 @@
+ 		</content>
+ 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -73,17 +73,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean" default="1"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean" default="1"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -53,12 +53,12 @@
+ 		</content>
+ 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -73,17 +73,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -22,12 +22,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -45,7 +45,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Timeout (sec) for IPMI operation</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -158,7 +188,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -42,7 +42,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -70,7 +70,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -84,7 +84,7 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		</content>
+ 		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -40,7 +40,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -68,7 +68,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -82,7 +82,7 @@
+ 		</content>
+ 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -92,17 +92,47 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="623"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+@@ -22,12 +22,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -45,7 +45,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -94,17 +94,47 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Timeout (sec) for IPMI operation</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -158,7 +188,12 @@
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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
+ 		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean" default="1"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\\ $&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -45,12 +45,12 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -65,17 +65,57 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean" default="1"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\\ $&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Managed system name</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean" default="1"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;:~&gt;&apos;, &apos;]\\$&apos;, &apos;\\$ &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -33,7 +33,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -57,12 +57,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -77,17 +77,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean" default="1"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;:~&gt;&apos;, &apos;]\\$&apos;, &apos;\\$ &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -77,7 +82,12 @@ The fence_mpath agent works by having an unique key for each pair of node and de
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -33,17 +33,42 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -53,7 +78,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ <longdesc>fence_ovh is an Power Fencing agent which can be used within OVH datecentre. Poweroff is simulated with a reboot into rescue-pro mode.</longdesc>
+ <vendor-url>http://www.ovh.net</vendor-url>
+ <parameters>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -18,17 +18,37 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -38,7 +58,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="8006"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Id of the virtual machine.</shortdesc>
+@@ -18,7 +18,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname of a node within the Proxmox cluster.</shortdesc>
+@@ -28,12 +28,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -43,12 +43,42 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string" default="root@pam"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
+-	<parameter name="node_name" unique="0" required="0">
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Id of the virtual machine.</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string" default="root@pam"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname of a node within the Proxmox cluster.</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="node_name" unique="0" required="0" deprecated="1">
++		<getopt mixed="-N, --nodename" />
++		<content type="string"  />
++		<shortdesc lang="en">Node on which machine is located. (Optional, will be automatically determined)</shortdesc>
++	</parameter>
++	<parameter name="nodename" unique="0" required="0" obsoletes="node_name">
+ 		<getopt mixed="-N, --nodename" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Node on which machine is located. (Optional, will be automatically determined)</shortdesc>
+@@ -58,7 +88,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -33,17 +33,42 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+@@ -53,7 +78,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="3172"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="0">
++	<parameter name="ipaddr" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="0">
++	<parameter name="port" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-n, --plug=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;to quit:&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;to quit:&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos; #&gt; &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -23,7 +23,7 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -33,12 +33,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -48,17 +48,52 @@
+ 		<content type="string" default="off"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos; #&gt; &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -31,7 +36,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -91,7 +96,11 @@ The fence_scsi agent works by having each node in the cluster register a unique
+ 		<getopt mixed="--sg_turs-path=[path]" />
+ 		<shortdesc lang="en">Path to sg_turs binary</shortdesc>
+ 	</parameter>
+-	<parameter name="corosync-cmap_path" unique="0" required="0">
++	<parameter name="corosync-cmap_path" unique="0" required="0" deprecated="1">
++		<getopt mixed="--corosync-cmap-path=[path]" />
++		<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
++	</parameter>
++	<parameter name="corosync_cmap_path" unique="0" required="0" obsoletes="corosync-cmap_path">
+ 		<getopt mixed="--corosync-cmap-path=[path]" />
+ 		<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
+ 	</parameter>
+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
+ 		<content type="integer" default="22"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean" default="1"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;\\[EXPECT\\]#\\ &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -45,12 +45,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -65,17 +65,57 @@ By default, virsh needs root account to do properly work. So you must allow ssh
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean" default="1"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;\\[EXPECT\\]#\\ &apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+@@ -130,7 +170,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
+ 		<content type="integer" default="1"  />
+ 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ 	</parameter>
+-	<parameter name="sudo" unique="0" required="0">
++	<parameter name="sudo" unique="0" required="0" deprecated="1">
++		<getopt mixed="--use-sudo" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
++	</parameter>
++	<parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
+ 		<getopt mixed="--use-sudo" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+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
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -30,7 +30,7 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -40,12 +40,12 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -65,17 +65,47 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ 		<content type="integer" default="23"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="secure" unique="0" required="0">
++	<parameter name="secure" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-x, --ssh" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">SSH connection</shortdesc>
+ 	</parameter>
+-	<parameter name="cmd_prompt" unique="0" required="0">
++	<parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-c, --command-prompt=[prompt]" />
+ 		<content type="string" default="[&apos;RSM&gt;&apos;, &apos;MPC&gt;&apos;, &apos;IPS&gt;&apos;, &apos;TPS&gt;&apos;, &apos;NBB&gt;&apos;, &apos;NPS&gt;&apos;, &apos;VMR&gt;&apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+@@ -43,12 +43,12 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -63,17 +63,57 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="ssh" unique="0" required="0" obsoletes="secure">
++		<getopt mixed="-x, --ssh" />
++		<content type="boolean"  />
++		<shortdesc lang="en">SSH connection</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
++		<getopt mixed="-c, --command-prompt=[prompt]" />
++		<content type="string" default="[&apos;RSM&gt;&apos;, &apos;MPC&gt;&apos;, &apos;IPS&gt;&apos;, &apos;TPS&gt;&apos;, &apos;NBB&gt;&apos;, &apos;NPS&gt;&apos;, &apos;VMR&gt;&apos;]"  />
++		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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 @@
+ <longdesc>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.</longdesc>
+ <vendor-url>http://www.xenproject.org</vendor-url>
+ <parameters>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -18,27 +18,52 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="0">
++	<parameter name="login" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
++	<parameter name="username" unique="0" required="0" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+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
+ 		<content type="integer" default="44444"  />
+ 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1">
++	<parameter name="port" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-n, --plug=[id]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+@@ -32,7 +32,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+ 	</parameter>
+-	<parameter name="ipaddr" unique="0" required="1">
++	<parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+@@ -50,12 +50,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
+ 		</content>
+ 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd_script" unique="0" required="0">
++	<parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-S, --password-script=[script]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Script to retrieve password</shortdesc>
+ 	</parameter>
+-	<parameter name="passwd" unique="0" required="0">
++	<parameter name="passwd" unique="0" required="0" deprecated="1">
+ 		<getopt mixed="-p, --password=[password]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login password or passphrase</shortdesc>
+@@ -65,17 +65,47 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing Action</shortdesc>
+ 	</parameter>
+-	<parameter name="login" unique="0" required="1">
++	<parameter name="login" unique="0" required="1" deprecated="1">
+ 		<getopt mixed="-l, --username=[name]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Login Name</shortdesc>
+ 	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="-n, --plug=[id]" />
++		<content type="string"  />
++		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
++	</parameter>
++	<parameter name="username" unique="0" required="1" obsoletes="login">
++		<getopt mixed="-l, --username=[name]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login Name</shortdesc>
++	</parameter>
++	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
++		<getopt mixed="-a, --ip=[ip]" />
++		<content type="string"  />
++		<shortdesc lang="en">IP Address or Hostname</shortdesc>
++	</parameter>
++	<parameter name="password" unique="0" required="0" obsoletes="passwd">
++		<getopt mixed="-p, --password=[password]" />
++		<content type="string"  />
++		<shortdesc lang="en">Login password or passphrase</shortdesc>
++	</parameter>
++	<parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
++		<getopt mixed="-S, --password-script=[script]" />
++		<content type="string"  />
++		<shortdesc lang="en">Script to retrieve password</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Verbose mode</shortdesc>
+ 	</parameter>
+-	<parameter name="debug" unique="0" required="0">
++	<parameter name="debug" unique="0" required="0" deprecated="1">
++		<getopt mixed="-D, --debug-file=[debugfile]" />
++		<content type="string"  />
++		<shortdesc lang="en">Write debug information to given file</shortdesc>
++	</parameter>
++	<parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ 		<getopt mixed="-D, --debug-file=[debugfile]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Write debug information to given file</shortdesc>
+-- 
+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 <mgrac@redhat.com>
+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, "<configConfMos cookie=\"" + options["cookie"] + "\" inHierarchical=\"no\">" +
+-- 
+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 <mgrac@redhat.com>
-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, "<configConfMos cookie=\"" + options["cookie"] + "\" inHierarchical=\"no\">" +
--- 
-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 @@
+ 		<getopt mixed="--api-path=[path]" />
+ 		<shortdesc lang="en">The path of the API URL</shortdesc>
+ 	</parameter>
++	<parameter name="disable_http_filter" unique="0" required="0">
++		<getopt mixed="--disable-http-filter" />
++		<content type="boolean"  />
++		<shortdesc lang="en">Set HTTP Filter header to false</shortdesc>
++	</parameter>
+ 	<parameter name="verbose" unique="0" required="0">
+ 		<getopt mixed="-v, --verbose" />
+ 		<content type="boolean"  />
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 @@
+ 		<content type="string" default="False"  />
+ 		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
+ 	</parameter>
+-	<parameter name="record_only" unique="0" required="0" obsoletes="record-only">
+-		<getopt mixed="--record-only" />
+-		<content type="string" default="False"  />
+-		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
+-	</parameter>
+ 	<parameter name="instance_filtering" unique="0" required="0" obsoletes="instance-filtering">
+ 		<getopt mixed="--instance-filtering" />
+ 		<content type="boolean" default="True"  />
+ 		<shortdesc lang="en">Allow instances to be evacuated</shortdesc>
+ 	</parameter>
++	<parameter name="record_only" unique="0" required="0" obsoletes="record-only">
++		<getopt mixed="--record-only" />
++		<content type="string" default="False"  />
++		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
++	</parameter>
+ 	<parameter name="no_shared_storage" unique="0" required="0" obsoletes="no-shared-storage">
+ 		<getopt mixed="--no-shared-storage" />
+ 		<content type="boolean" default="False"  />
+@@ -190,7 +190,7 @@
+ 	</parameter>
+ </parameters>
+ <actions>
+-	<action name="on" on_target="1" automatic="1"/>
++	<action name="on" automatic="1"/>
+ 	<action name="off" />
+ 	<action name="status" />
+ 	<action name="list" />
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<action name=\"list-status\" />"
+ 	print "\t<action name=\"monitor\" />"
+ 	print "\t<action name=\"metadata\" />"
++	print "\t<action name=\"validate-all\" />"
+ 	if avail_opt.count("diag") == 1:
+ 		print "\t<action name=\"diag\" />"
+ 	print "</actions>"
+@@ -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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ 	<action name="diag" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ 	<action name="diag" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ 	<action name="diag" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ 	<action name="diag" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ 	<action name="diag" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
+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 @@
+ 	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
++	<action name="validate-all" />
+ </actions>
+ </resource-agent>
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 <oalbrigt@redhat.com>
+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 <oalbrigt@redhat.com>
+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 <oalbrigt@redhat.com> - 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 <mgrac@redhat.com> - 4.0.11-66
+- Set SELinux booleans even when SELinux is disabled
+  Resolves: rhbz#1457887
 
-* Mon Jan 23 2017 Marek Grac <mgrac@redhat.com> - 4.0.11-47.3
-- fence_cisco_ucs: Change command sent to UCS
-  Resolves: rhbz#1412722
+* Thu Jun 15 2017 Marek Grac <mgrac@redhat.com> - 4.0.11-65
+- Set SELinux booleans even when SELinux is disabled
+  Resolves: rhbz#1457887
 
-* Wed Nov 23 2016 Marek Grac <mgrac@redhat.com> - 4.0.11-47.2
-- fencing: Fix 'monitor' action for devices with --port-as-ip
-  Resolves: rhbz#1397889
+* Wed Jun  7 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.11-64
+- fence_vmware_soap: fix for self-signed certificates
+  Resolves: rhbz#1459199
+
+* Tue May 30 2017 Marek Grac <mgrac@redhat.com> - 4.0.11-63
+- Add dependencies on policycoreutils
+  Resolves: rhbz#1427986
 
-* Wed Nov  9 2016 Andrew Beekhof <abeekhof@redhat.com> - 4.0.11-47.1
+* Wed May 17 2017 Marek Grac <mgrac@redhat.com> - 4.0.11-62
+- Set SELinux booleans required for fence agent integration with cluster
+  Resolves: rhbz#1427986
+
+* Thu May  4 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.11-61
+- fence_ipmilan: add target (ipmilan -t <target>) support
+  Resolves: rhbz#1377389
+
+* Mon Apr  3 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 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 <oalbrigt@redhat.com> - 4.0.11-58
+- CI: dont test paths in metadata
+  Resolves: rhbz#1377972
+
+* Wed Mar 22 2017 Marek Grac <mgrac@redhat.com> - 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 <oalbrigt@redhat.com> - 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 <mgrac@redhat.com> - 4.0.11-54
+- fence_lpar: Fix monitor action on IVM systems
+  Resolves: rhbz#1376481
+
+* Tue Feb 21 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.11-53
 - fence_compute: Improved FQDN and Nova handling
-  Resolves: rhbz#1393789
+  Resolves: rhbz#1387590
+
+* Tue Feb 14 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 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 <mgrac@redhat.com>
+- fence_cisco_ucs: Change commands send to UCS
+  Resolves: rhbz#1410881
+
+* Wed Jan 11 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.11-50
+- fence_sbd: new fence agent
+  Resolves: rhbz#1337236
+
+* Wed Nov 23 2016 Marek Grac <mgrac@redhat.com> - 4.0.11-49
+- fencing: Fix 'monitor' action for devices with --port-as-ip
+  Resolves: rhbz#1390915
 
 * Wed Aug 31 2016 Oyvind Albrigtsen <oalbrigt@redhat.com> - 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 <mgrac@redhat.com> - 4.0.11-33
 - fence_cisco_ucs: Obtain status from different attribute