[Debian-ha-commits] [fence-agents] 01/03: New upstream version 4.0.25

Christoph Berg myon at debian.org
Mon Jan 23 11:08:25 UTC 2017


This is an automated email from the git hooks/post-receive script.

myon pushed a commit to branch master
in repository fence-agents.

commit a8ac4527ba9553350d6ac6d34b00ca4f153560c8
Author: Christoph Berg <christoph.berg at credativ.de>
Date:   Mon Jan 23 11:36:42 2017 +0100

    New upstream version 4.0.25
---
 .tarball-version                                   |   2 +-
 .version                                           |   2 +-
 ChangeLog                                          | 285 +++++++++++++++++++++
 Makefile.am                                        |   5 +-
 Makefile.in                                        |  16 +-
 aclocal.m4                                         |   2 +-
 autogen.sh                                         |   2 +-
 configure                                          | 106 +++++++-
 configure.ac                                       |   4 +
 doc/Makefile.in                                    |  11 +-
 fence/Makefile.in                                  |  11 +-
 fence/agents/Makefile.in                           |  15 +-
 fence/agents/azure_arm/fence_azure_arm.py          | 131 ++++++++++
 fence/agents/cisco_ucs/fence_cisco_ucs.py          |   4 +-
 fence/agents/compute/fence_compute.py              |  66 +++--
 fence/agents/docker/fence_docker.py                |   4 +-
 fence/agents/ipmilan/fence_ipmilan.py              |  55 ++--
 fence/agents/ironic/fence_ironic.py                | 136 ++++++++++
 fence/agents/lib/Makefile.in                       |  15 +-
 fence/agents/lib/check_used_options.py             |   2 -
 fence/agents/lib/fencing.py.py                     |  58 ++++-
 fence/agents/lib/metadata.rng                      |   2 +
 fence/agents/lpar/fence_lpar.py                    |  32 ++-
 fence/agents/powerman/fence_powerman.py            | 265 +++++++++++++++++++
 fence/agents/pve/fence_pve.py                      |   4 +-
 fence/agents/rhevm/fence_rhevm.py                  |   4 +-
 fence/agents/vmware_soap/fence_vmware_soap.py      |   2 +
 fence/agents/zvm/fence_zvmip.py                    |   2 +-
 {make => m4}/ac_python_module.m4                   |   0
 make/fencebuild.mk                                 |   4 +-
 tests/data/metadata/fence_alom.xml                 |  19 +-
 tests/data/metadata/fence_amt.xml                  |  19 +-
 tests/data/metadata/fence_amt_ws.xml               |  19 +-
 tests/data/metadata/fence_apc.xml                  |  19 +-
 tests/data/metadata/fence_apc_snmp.xml             |  19 +-
 .../{fence_ovh.xml => fence_azure_arm.xml}         |  44 +++-
 tests/data/metadata/fence_bladecenter.xml          |  19 +-
 tests/data/metadata/fence_brocade.xml              |  19 +-
 tests/data/metadata/fence_cisco_mds.xml            |  19 +-
 tests/data/metadata/fence_cisco_ucs.xml            |  19 +-
 tests/data/metadata/fence_compute.xml              |  19 +-
 tests/data/metadata/fence_docker.xml               |  19 +-
 tests/data/metadata/fence_drac.xml                 |  19 +-
 tests/data/metadata/fence_drac5.xml                |  19 +-
 tests/data/metadata/fence_dummy.xml                |  17 +-
 tests/data/metadata/fence_eaton_snmp.xml           |  19 +-
 tests/data/metadata/fence_emerson.xml              |  19 +-
 tests/data/metadata/fence_eps.xml                  |  19 +-
 tests/data/metadata/fence_hds_cb.xml               |  19 +-
 tests/data/metadata/fence_hpblade.xml              |  19 +-
 tests/data/metadata/fence_ibmblade.xml             |  19 +-
 tests/data/metadata/fence_idrac.xml                |  19 +-
 tests/data/metadata/fence_ifmib.xml                |  19 +-
 tests/data/metadata/fence_ilo.xml                  |  19 +-
 tests/data/metadata/fence_ilo2.xml                 |  19 +-
 tests/data/metadata/fence_ilo3.xml                 |  19 +-
 tests/data/metadata/fence_ilo3_ssh.xml             |  19 +-
 tests/data/metadata/fence_ilo4.xml                 |  19 +-
 tests/data/metadata/fence_ilo4_ssh.xml             |  19 +-
 tests/data/metadata/fence_ilo_moonshot.xml         |  19 +-
 tests/data/metadata/fence_ilo_mp.xml               |  19 +-
 tests/data/metadata/fence_ilo_ssh.xml              |  19 +-
 tests/data/metadata/fence_imm.xml                  |  19 +-
 tests/data/metadata/fence_intelmodular.xml         |  19 +-
 tests/data/metadata/fence_ipdu.xml                 |  19 +-
 tests/data/metadata/fence_ipmilan.xml              |  19 +-
 .../metadata/{fence_netio.xml => fence_ironic.xml} |  58 ++---
 tests/data/metadata/fence_kdump.xml                |   5 +
 tests/data/metadata/fence_ldom.xml                 |  19 +-
 tests/data/metadata/fence_lpar.xml                 |  20 +-
 tests/data/metadata/fence_mpath.xml                |  17 +-
 tests/data/metadata/fence_netio.xml                |  19 +-
 tests/data/metadata/fence_ovh.xml                  |  17 +-
 .../{fence_amt_ws.xml => fence_powerman.xml}       |  58 ++---
 tests/data/metadata/fence_pve.xml                  |  19 +-
 tests/data/metadata/fence_raritan.xml              |  19 +-
 tests/data/metadata/fence_rcd_serial.xml           |  17 +-
 tests/data/metadata/fence_rhevm.xml                |  19 +-
 tests/data/metadata/fence_rsa.xml                  |  19 +-
 tests/data/metadata/fence_rsb.xml                  |  19 +-
 tests/data/metadata/fence_sanbox2.xml              |  19 +-
 tests/data/metadata/fence_sbd.xml                  |  17 +-
 tests/data/metadata/fence_scsi.xml                 |  17 +-
 tests/data/metadata/fence_tripplite_snmp.xml       |  19 +-
 tests/data/metadata/fence_vbox.xml                 |  19 +-
 tests/data/metadata/fence_virsh.xml                |  19 +-
 tests/data/metadata/fence_vmware.xml               |  19 +-
 tests/data/metadata/fence_vmware_soap.xml          |  19 +-
 tests/data/metadata/fence_wti.xml                  |  19 +-
 tests/data/metadata/fence_xenapi.xml               |  17 +-
 tests/data/metadata/fence_zvmip.xml                |  19 +-
 91 files changed, 1889 insertions(+), 593 deletions(-)

diff --git a/.tarball-version b/.tarball-version
index 0227d4a..19a7345 100644
--- a/.tarball-version
+++ b/.tarball-version
@@ -1 +1 @@
-4.0.24
+4.0.25
diff --git a/.version b/.version
index 0227d4a..19a7345 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-4.0.24
+4.0.25
diff --git a/ChangeLog b/ChangeLog
index e29e448..e4dd144 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,288 @@
+2017-01-16  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #103 from oalbrigt/pycurl-fix-StringIO-issues
+	pycurl agents: fix StringIO issues
+
+2017-01-13  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	pycurl agents: fix StringIO issues
+
+2017-01-09  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Merge pull request #102 from ofaaland/b_powerman_path_fix
+	fence_powerman: fix typo in option powerman-path
+
+2017-01-06  Olaf Faaland  <faaland1 at llnl.gov>
+
+	fence_powerman: fix typo in option powerman-path
+	References to dictionary options[] sometimes used key "powerman_path"
+	and other times "powerman-path", resulting in references to keys that
+	did not exist.
+
+	This resulted in total failure of the fence agent.
+
+	This commit makes the key used consistent.
+
+2017-01-06  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Merge pull request #101 from oalbrigt/python3-only-build
+	Fix to be able to build on Python 3 only systems
+
+2016-12-23  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Fix to be able to build on Python 3 only systems
+
+2016-12-22  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Merge pull request #98 from n3world/disableStderrLogging
+	fencing: Add option to disable logging to stderr
+
+2016-12-21  Nate Clark  <nate at neworld.us>
+
+	fencing: Add --quiet option to disable logging to stderr
+
+2016-12-13  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Merge pull request #87 from mbaldessari/fence_ironic
+	Ironic fence agent
+
+2016-12-12  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #100 from oalbrigt/travis-fix
+	travis: update Python path
+
+2016-12-12  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	travis: update Python path
+
+2016-12-12  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #99 from MSSedusch/master
+	remove getopt for new parameters for fence_azure_arm
+
+	Merge pull request #97 from n3world/specifyLogCommand
+	fencing: Specify command to be logged by run_command
+
+	Merge pull request #96 from vuntz/fix-travis
+	Fix travis issue in XML metadata introduced by 0f170a9
+
+2016-12-06  Sebastian Dusch  <sedusch at microsoft.com>
+
+	remove getopt for new parameters
+
+2016-12-01  Nate Clark  <nate at neworld.us>
+
+	fencing: Specify command to be logged by run_command
+	Currently run_command special cases the logging of commands with ipmitool and removes everything
+	between the flat -P and -p. Instead of special casing commands with ipmitool allow the caller to
+	provide the command to log so that the command can do any necessary scrubbing of the message to be
+	logged.
+
+2016-12-01  Vincent Untz  <vuntz at suse.com>
+
+	Fix travis
+	Regression introduced in 0f170a937bd0944e172004dc30df2fc240d9ca20
+
+2016-12-01  Andrew Beekhof  <andrew at beekhof.net>
+
+	Merge branch 'master' of github.com:ClusterLabs/fence-agents
+
+	compute: Fix debug message
+
+2016-11-23  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #95 from memotype/master
+	fence_vmware_soap: Suppress InsecureRequestWarning when ssl_insecure is given
+
+2016-11-21  Isaac Freeman  <memotype at gmail.com>
+
+	Suppress InsecureRequestWarning when ssl_insecure is given
+
+2016-11-14  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #84 from jnpkrn/build-m4-macro-move
+	build: fix possibly undefined macro AC_PYTHON_MODULE
+
+2016-11-10  Jan Pokorný  <jpokorny at redhat.com>
+
+	build: fix possibly undefined macro AC_PYTHON_MODULE
+	As already mentioned 2 years back by Alan Evangelista[1], fence-agents
+	project indeed uses a strange build setup, which furthermore makes it
+	impossible to pass the configure stage successfully, at least with
+	some combinations of the "autotools" programs' versions (e.g., as old
+	ones as present in RHEL 6).
+
+	Remedy is as simple as originally suggested, which also means m4
+	directory no longer needs to be reinsured in autogen.sh (though it
+	still is as a legacy), but special care must be taken with .gitignore
+	and maintainer-clean-local target of the main Makafile.
+
+	[1] https://www.redhat.com/archives/cluster-devel/2014-October/msg00161.html
+
+2016-11-10  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fencing: Remove unused Makefile.am files
+	Currently, we are using single Makefile.am in fence/agents directory.
+
+2016-11-10  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #92 from MSSedusch/master
+	fence_azure_arm: add fencing agent for Azure Resource Manager
+
+	Merge pull request #93 from ofaaland/feature-powerman-upstream
+	fence_powerman: Add powerman agent
+
+2016-11-10  Andrew Beekhof  <andrew at beekhof.net>
+
+	compute: Simpler check for nova force down compatibility
+
+2016-11-09  Olaf Faaland  <faaland1 at llnl.gov>
+
+	feature powerman address review comments pass 2
+	* Set default for powerman_path in configure
+
+	* Remove unnecessary query after powerman --on or --off
+	fence_action() automatically queries power status after a power_set
+	function call, because many devices report success when the on/off
+	actually failed.
+
+	* Delay before checking powerman is executable
+	Use the provided run_delay() function to determine when a delay is
+	necessary.  Call it before testing that the powerman binary is
+	executable.  The project's sanity tests depend on this to handle the
+	missing dependency (powerman), within their testing environment.
+
+2016-11-09  Sebastian Dusch  <sedusch at microsoft.com>
+
+	fence_azure_arm: remove reboot action, remove sys.exit for setting powerstate, remove global compute_client and pass it as argument to functions
+
+2016-11-09  Marian Krcmarik  <mkrcmari at redhat.com>
+
+	compute: Ensure we can connect to nova when fixing the plug name
+
+	compute: Correctly identify when the nodename already includes the supplied domain
+
+	compute: correctly implement 'on' when the force-down API call is available
+
+	compute: Use the best available nova API version
+
+2016-11-08  Olaf Faaland  <faaland1 at llnl.gov>
+
+	feature powerman address review comments pass 1
+	Removed static manpage which will be auto-generated from metadata
+	Removed unnecessary run_delay() call in main
+	Create option to set path to powerman binary
+	Verify powerman binary is executable
+	Removed redundant default ipport
+	Removed unnecessary debug logging of raw arguments
+	Removed unnecessary reboot function, implemented in a
+	  way that made it no better than the one already
+	  implemented within lib/fencing.py
+	Return value of monitor action is 'error' if powerman not running
+
+2016-11-08  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #88 from oalbrigt/fence_compute-fix-connectionerror
+	fence_compute: fix ConnectionError by using full module name
+
+2016-11-07  Olaf Faaland  <faaland1 at llnl.gov>
+
+	feature-powerman Add list support and verify power state after changes
+	Add list support and change log level to error, for error messages users
+	should be made aware of.
+
+	When fencing or unfencing a node, verify the power state of the device
+	with --query before returning.  Return code from the powerman "on" or
+	"off" commands can be unreliable for some devices.
+
+2016-11-07  Michael Kit Gilbert  <gilbert32 at llnl.gov>
+
+	feature-powerman add fence agent for powerman
+	Add a fence agent for powerman, https://github.com/chaos/powerman
+
+2016-11-07  Sebastian Dusch  <sedusch at microsoft.com>
+
+	fence_azure_arm: move option definitions to define_new_opts
+
+	fence_azure_arm: add fencing agent for Azure Resource Manager
+
+2016-11-02  Michele Baldessari  <michele at acksyn.org>
+
+	Ironic fence agent
+	Introduce a fence agent that plugs into OpenStack's Ironic (Bare Metal
+	as a service) service.
+
+	Testing recap:
+	1) With ironic services up and running
+	1.1) Status
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o status -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Status: ON
+
+	1.2) Power off
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o off -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Success: Powered OFF  // Machine confirmed to be off
+
+	1.3) Power on
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Success: Powered ON
+
+	1.4) Power on (when already powered on)
+	fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Success: Already ON
+
+	2) With ironic services down/in error
+	2.1) Status
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o status -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Failed: Unable to obtain correct plug status or plug is not available
+
+	2.2) Power off
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o off -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Failed: Unable to obtain correct plug status or plug is not available
+
+	2.3) Power on
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
+	Failed: Unable to obtain correct plug status or plug is not available
+
+	3) Non existing VM
+	$ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n foo
+	Failed: Unable to obtain correct plug status or plug is not available
+
+	4) Verified that password is never logged even when invoked with '-v'
+
+	5) Tested list command
+	$ fence_ironic -k http://192.0.2.1:5000/v2.0 -l admin -p 1ea6ac2d58b975455bf90eeb625ba57ac2c67766 -o list-status -C " "
+	ffa9ff02-20f1-45f4-b44c-1276d8120827 control-0 ON
+	79956ff7-8f9a-45a8-k90b-f711daf79bed control-2 ON
+	2b40a642-3d7b-4a43-b6a2-57a3967ebb1c compute-0 ON
+	70e07769-c4c5-4e0d-k134-41bca3f525d4 control-3 ON
+	b1db4b9b-da1a-4f3b-k980-88251eb5bdcd control-1 ON
+
+	Set up the fence agent like this:
+	hostmap=$(nova list | grep ctlplane | awk -F\| '{print $3 ":" $2}' | tr -d ' ' | tr '\n' ' ')
+	sudo pcs stonith create shooter fence_ironic auth-url=${OS_AUTH_URL} \
+	  login=${OS_USERNAME} passwd=${OS_PASSWORD} tenant-name=${OS_TENANT_NAME} \
+	  pcmk_host_map=\"${hostmap}\" op monitor interval=60s
+
+2016-10-17  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	fence_compute: fix ConnectionError by using full module name
+
+2016-09-19  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_zvmip: Update XML metadata
+
+	fence_zvmip: Default shell timeout was float instead of integer
+
+	fencing: Add new types to RNG schema
+
+	fencing: Add types 'integer/second' for validation and metadata
+
+	fence_lpar: Handle exceptions when invalid output is read
+
+2016-09-12  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_lpar: Add support for IVM
+
 2016-08-22  Marek 'marx' Grac  <mgrac at redhat.com>
 
 	fence_cisco_ucs: Improve a method to obtain status
diff --git a/Makefile.am b/Makefile.am
index 5e2e22d..e5ee320 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -42,5 +42,8 @@ gen-ChangeLog:
 		mv $(distdir)/cl-t $(distdir)/ChangeLog;		\
 	fi
 
+# this will get rid of "libtoolized" m4 files
 maintainer-clean-local:
-	rm -rf m4
+	rm -rf $(filter-out \
+	         $(top_srcdir)/m4/ac_python_module.m4,$(wildcard \
+		                                        $(top_srcdir)/m4/*.m4))
diff --git a/Makefile.in b/Makefile.in
index 671edd2..fe4096a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -90,11 +90,10 @@ build_triplet = @build@
 host_triplet = @host@
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/make/ac_python_module.m4 \
-	$(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -270,6 +269,7 @@ NMEDIT = @NMEDIT@
 NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OPENSTACK_PATH = @OPENSTACK_PATH@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -280,6 +280,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+POWERMAN_PATH = @POWERMAN_PATH@
 PYTHON = @PYTHON@
 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
@@ -888,8 +889,11 @@ gen-ChangeLog:
 		mv $(distdir)/cl-t $(distdir)/ChangeLog;		\
 	fi
 
+# this will get rid of "libtoolized" m4 files
 maintainer-clean-local:
-	rm -rf m4
+	rm -rf $(filter-out \
+	         $(top_srcdir)/m4/ac_python_module.m4,$(wildcard \
+		                                        $(top_srcdir)/m4/*.m4))
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/aclocal.m4 b/aclocal.m4
index 2fa9b1c..b410cb7 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1385,9 +1385,9 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+m4_include([m4/ac_python_module.m4])
 m4_include([m4/libtool.m4])
 m4_include([m4/ltoptions.m4])
 m4_include([m4/ltsugar.m4])
 m4_include([m4/ltversion.m4])
 m4_include([m4/lt~obsolete.m4])
-m4_include([make/ac_python_module.m4])
diff --git a/autogen.sh b/autogen.sh
index ee22af8..f718cc6 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 # Run this to generate all the initial makefiles, etc.
-mkdir -p m4
+# ("-I make" is superfluous, kept only for legacy purposes, if any)
 autoreconf -i -I make -v && echo Now run ./configure and make
diff --git a/configure b/configure
index 660bb09..d984831 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for fence-agents 4.0.24.
+# Generated by GNU Autoconf 2.69 for fence-agents 4.0.25.
 #
 # Report bugs to <linux-cluster at redhat.com>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='fence-agents'
 PACKAGE_TARNAME='fence-agents'
-PACKAGE_VERSION='4.0.24'
-PACKAGE_STRING='fence-agents 4.0.24'
+PACKAGE_VERSION='4.0.25'
+PACKAGE_STRING='fence-agents 4.0.25'
 PACKAGE_BUGREPORT='linux-cluster at redhat.com'
 PACKAGE_URL=''
 
@@ -645,6 +645,7 @@ CLUSTERVARRUN
 LOGDIR
 DEFAULT_CONFIG_FILE
 DEFAULT_CONFIG_DIR
+POWERMAN_PATH
 NOVA_PATH
 SNMPGET_PATH
 SNMPSET_PATH
@@ -660,6 +661,7 @@ SG_PERSIST_PATH
 COROSYNC_CMAPCTL_PATH
 GNUTLSCLI_PATH
 AMTTOOL_PATH
+OPENSTACK_PATH
 IPMITOOL_PATH
 pkgpyexecdir
 pyexecdir
@@ -1362,7 +1364,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures fence-agents 4.0.24 to adapt to many kinds of systems.
+\`configure' configures fence-agents 4.0.25 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1432,7 +1434,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fence-agents 4.0.24:";;
+     short | recursive ) echo "Configuration of fence-agents 4.0.25:";;
    esac
   cat <<\_ACEOF
 
@@ -1550,7 +1552,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fence-agents configure 4.0.24
+fence-agents configure 4.0.25
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2148,7 +2150,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by fence-agents $as_me 4.0.24, which was
+It was created by fence-agents $as_me 4.0.25, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3012,7 +3014,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='fence-agents'
- VERSION='4.0.24'
+ VERSION='4.0.25'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17188,6 +17190,47 @@ $as_echo "no" >&6; }
 fi
 
 
+# Extract the first word of "openstack", so it can be a program name with args.
+set dummy openstack; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OPENSTACK_PATH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $OPENSTACK_PATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_OPENSTACK_PATH="$OPENSTACK_PATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_OPENSTACK_PATH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_OPENSTACK_PATH" && ac_cv_path_OPENSTACK_PATH="/usr/bin/openstack"
+  ;;
+esac
+fi
+OPENSTACK_PATH=$ac_cv_path_OPENSTACK_PATH
+if test -n "$OPENSTACK_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSTACK_PATH" >&5
+$as_echo "$OPENSTACK_PATH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of "amttool", so it can be a program name with args.
 set dummy amttool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -17844,6 +17887,47 @@ $as_echo "no" >&6; }
 fi
 
 
+# Extract the first word of "powerman", so it can be a program name with args.
+set dummy powerman; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_POWERMAN_PATH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $POWERMAN_PATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_POWERMAN_PATH="$POWERMAN_PATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_POWERMAN_PATH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_POWERMAN_PATH" && ac_cv_path_POWERMAN_PATH="/usr/bin/powerman"
+  ;;
+esac
+fi
+POWERMAN_PATH=$ac_cv_path_POWERMAN_PATH
+if test -n "$POWERMAN_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POWERMAN_PATH" >&5
+$as_echo "$POWERMAN_PATH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 
 ## do subst
 
@@ -17895,6 +17979,8 @@ fi
 
 
 
+
+
 ## *FLAGS handling
 
 ENV_CFLAGS="$CFLAGS"
@@ -18501,7 +18587,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by fence-agents $as_me 4.0.24, which was
+This file was extended by fence-agents $as_me 4.0.25, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18567,7 +18653,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-fence-agents config.status 4.0.24
+fence-agents config.status 4.0.25
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 570bfa8..4c3f7fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -167,6 +167,7 @@ AC_PYTHON_MODULE(pywsman, 1)
 
 ## path to 3rd-party binaries
 AC_PATH_PROG([IPMITOOL_PATH], [ipmitool], [/usr/bin/ipmitool])
+AC_PATH_PROG([OPENSTACK_PATH], [openstack], [/usr/bin/openstack])
 AC_PATH_PROG([AMTTOOL_PATH], [amttool], [/usr/bin/amttool])
 AC_PATH_PROG([GNUTLSCLI_PATH], [gnutlscli], [/usr/bin/gnutls-cli])
 AC_PATH_PROG([COROSYNC_CMAPCTL_PATH], [corosync-cmapctl], [/usr/sbin/corosync-cmapctl])
@@ -183,6 +184,7 @@ AC_PATH_PROG([SNMPWALK_PATH], [snmpwalk], [/usr/bin/snmpwalk])
 AC_PATH_PROG([SNMPSET_PATH], [snmpset], [/usr/bin/snmpset])
 AC_PATH_PROG([SNMPGET_PATH], [snmpget], [/usr/bin/snmpget])
 AC_PATH_PROG([NOVA_PATH], [nova], [/usr/bin/nova])
+AC_PATH_PROG([POWERMAN_PATH], [powerman], [/usr/bin/powerman])
 
 ## do subst
 
@@ -209,11 +211,13 @@ AC_SUBST([AGENTS_LIST])
 AM_CONDITIONAL(BUILD_XENAPILIB, test $XENAPILIB -eq 1)
 
 AC_SUBST([IPMITOOL_PATH])
+AC_SUBST([OPENSTACK_PATH])
 AC_SUBST([AMTTOOL_PATH])
 AC_SUBST([COROSYNC_CMAPCTL_PATH])
 AC_SUBST([SG_PERSIST_PATH])
 AC_SUBST([SG_TURS_PATH])
 AC_SUBST([VGS_PATH])
+AC_SUBST([POWERMAN_PATH])
 
 ## *FLAGS handling
 
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 9674599..f4c1ba6 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -90,11 +90,10 @@ build_triplet = @build@
 host_triplet = @host@
 subdir = doc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/make/ac_python_module.m4 \
-	$(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_doc_DATA) \
@@ -217,6 +216,7 @@ NMEDIT = @NMEDIT@
 NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OPENSTACK_PATH = @OPENSTACK_PATH@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -227,6 +227,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+POWERMAN_PATH = @POWERMAN_PATH@
 PYTHON = @PYTHON@
 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/fence/Makefile.in b/fence/Makefile.in
index 3306ec7..a367be3 100644
--- a/fence/Makefile.in
+++ b/fence/Makefile.in
@@ -89,11 +89,10 @@ build_triplet = @build@
 host_triplet = @host@
 subdir = fence
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/make/ac_python_module.m4 \
-	$(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -246,6 +245,7 @@ NMEDIT = @NMEDIT@
 NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OPENSTACK_PATH = @OPENSTACK_PATH@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -256,6 +256,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+POWERMAN_PATH = @POWERMAN_PATH@
 PYTHON = @PYTHON@
 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/fence/agents/Makefile.in b/fence/agents/Makefile.in
index 2f30aab..9580e33 100644
--- a/fence/agents/Makefile.in
+++ b/fence/agents/Makefile.in
@@ -94,11 +94,10 @@ sbin_PROGRAMS = kdump/fence_kdump$(EXEEXT) zvm/fence_zvm$(EXEEXT)
 libexec_PROGRAMS = kdump/fence_kdump_send$(EXEEXT)
 subdir = fence/agents
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/make/ac_python_module.m4 \
-	$(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -300,6 +299,7 @@ NMEDIT = @NMEDIT@
 NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OPENSTACK_PATH = @OPENSTACK_PATH@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -310,6 +310,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+POWERMAN_PATH = @POWERMAN_PATH@
 PYTHON = @PYTHON@
 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
@@ -1055,6 +1056,7 @@ define gen_agent_from_py
 		-e 's#@''SBINDIR@#${sbindir}#g' \
 		-e 's#@''LIBEXECDIR@#${libexecdir}#g' \
 		-e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
+		-e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
 		-e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
 		-e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \
 		-e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \
@@ -1072,10 +1074,11 @@ define gen_agent_from_py
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
 		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
+		-e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
-		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
+		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
diff --git a/fence/agents/azure_arm/fence_azure_arm.py b/fence/agents/azure_arm/fence_azure_arm.py
new file mode 100644
index 0000000..3d326e8
--- /dev/null
+++ b/fence/agents/azure_arm/fence_azure_arm.py
@@ -0,0 +1,131 @@
+#!@PYTHON@ -tt
+
+import sys, re, pexpect
+import logging
+import atexit
+sys.path.append("/usr/share/fence")
+from fencing import *
+from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
+
+#BEGIN_VERSION_GENERATION
+RELEASE_VERSION="4.0.24.6-7e576"
+BUILD_DATE="(built Thu Nov 3 15:43:03 STD 2016)"
+REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
+#END_VERSION_GENERATION
+
+def get_nodes_list(compute_client, options):
+    result = {}
+    if compute_client:
+        rgName = options["--resourceGroup"]
+        vms = compute_client.virtual_machines.list(rgName)
+        for vm in vms:
+            result[vm.name] = ("", None)
+
+    return result
+
+def get_power_status(compute_client, options):
+    logging.info("getting power status for VM " + options["--plug"])
+
+    if compute_client:
+        rgName = options["--resourceGroup"]
+        vmName = options["--plug"]
+
+        powerState = "unknown"
+        vmStatus = compute_client.virtual_machines.get(rgName, vmName, "instanceView")
+        for status in vmStatus.instance_view.statuses:
+            if status.code.startswith("PowerState"):
+                powerState = status.code
+                break
+
+        logging.info("Found power state of VM: " + powerState)
+        if powerState == "PowerState/running":
+            return "on"
+
+    return "off"
+
+def set_power_status(compute_client, options):
+    logging.info("setting power status for VM " + options["--plug"] + " to " + options["--action"])
+
+    if compute_client:
+        rgName = options["--resourceGroup"]
+        vmName = options["--plug"]
+
+        if (options["--action"]=="off"):
+            logging.info("Deallocating " + vmName + "in resource group " + rgName)
+            compute_client.virtual_machines.deallocate(rgName, vmName)
+        elif (options["--action"]=="on"):
+            logging.info("Starting " + vmName + "in resource group " + rgName)
+            compute_client.virtual_machines.start(rgName, vmName)
+
+
+def define_new_opts():
+    all_opt["resourceGroup"] = {
+        "getopt" : ":",
+        "longopt" : "resourceGroup",
+        "help" : "--resourceGroup=[name]       Name of the resource group",
+        "shortdesc" : "Name of resource group.",
+        "required" : "1",
+        "order" : 2
+    }
+    all_opt["tenantId"] = {
+        "getopt" : ":",
+        "longopt" : "tenantId",
+        "help" : "--tenantId=[name]       Id of the Azure Active Directory tenant",
+        "shortdesc" : "Id of Azure Active Directory tenant.",
+        "required" : "1",
+        "order" : 3
+    }
+    all_opt["subscriptionId"] = {
+        "getopt" : ":",
+        "longopt" : "subscriptionId",
+        "help" : "--subscriptionId=[name]       Id of the Azure subscription",
+        "shortdesc" : "Id of the Azure subscription.",
+        "required" : "1",
+        "order" : 4
+    }
+
+# Main agent method
+def main():
+    compute_client = None
+
+    device_opt = ["resourceGroup", "login", "passwd", "tenantId", "subscriptionId","port"]
+
+    atexit.register(atexit_handler)
+
+    define_new_opts()
+    options = check_input(device_opt, process_input(device_opt))
+
+    docs = {}
+    docs["shortdesc"] = "Fence agent for Azure Resource Manager"
+    docs["longdesc"] = "Used to deallocate virtual machines and to report power state of virtual machines running in Azure"
+    docs["vendorurl"] = "http://www.microsoft.com"
+    show_docs(options, docs)
+
+    run_delay(options)
+
+    try:
+        from azure.common.credentials import ServicePrincipalCredentials
+        from azure.mgmt.compute import ComputeManagementClient
+
+        tenantid = options["--tenantId"]
+        servicePrincipal = options["--username"]
+        spPassword = options["--password"]
+        subscriptionId = options["--subscriptionId"]
+        credentials = ServicePrincipalCredentials(
+            client_id = servicePrincipal,
+            secret = spPassword,
+            tenant = tenantid
+        )
+        compute_client = ComputeManagementClient(
+            credentials,
+            subscriptionId
+        )
+    except ImportError:
+        fail_usage("Azure Resource Manager Pyhton SDK not found or not accessible")
+
+    # Operate the fencing device
+    result = fence_action(compute_client, options, set_power_status, get_power_status, get_nodes_list)
+    sys.exit(result)
+
+if __name__ == "__main__":
+    main()
diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py
index 0d9609d..d21b278 100644
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py
@@ -114,7 +114,7 @@ def send_command(opt, command, timeout):
 
 	## send command through pycurl
 	conn = pycurl.Curl()
-	web_buffer = io.StringIO()
+	web_buffer = io.BytesIO()
 	conn.setopt(pycurl.URL, url)
 	conn.setopt(pycurl.HTTPHEADER, ["Content-type: text/xml"])
 	conn.setopt(pycurl.POSTFIELDS, command)
@@ -128,7 +128,7 @@ def send_command(opt, command, timeout):
 		conn.setopt(pycurl.SSL_VERIFYPEER, 0)
 		conn.setopt(pycurl.SSL_VERIFYHOST, 0)
 	conn.perform()
-	result = web_buffer.getvalue()
+	result = web_buffer.getvalue().decode()
 
 	logging.debug("%s\n", command)
 	logging.debug("%s\n", result)
diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py
index 0f05c12..1845cc4 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
 
@@ -160,7 +160,7 @@ def set_power_status(_, options):
 		return
 
 	if options["--action"] == "on":
-		if get_power_status(_, options) == "on":
+		if get_power_status(_, options) != "on":
 			# Forcing the service back up in case it was disabled
 			nova.services.enable(options["--plug"], 'nova-compute')
 			try:
@@ -276,7 +276,7 @@ def fix_plug_name(options):
 
 	calculated = fix_domain(options)
 	short_plug = options["--plug"].split('.')[0]
-	logging.debug("Checking target '%s' against calculated domain '%s'"% (options["--plug"], calculated))
+	logging.debug("Checking target '%s' against calculated domain '%s'"% (options["--plug"], options["--domain"]))
 
 	if "--domain" not in options:
 		# Nothing supplied and nova not available... what to do... nothing
@@ -286,7 +286,7 @@ def fix_plug_name(options):
 		# Ensure any domain is stripped off since nova isn't using FQDN
 		options["--plug"] = short_plug
 
-	elif options["--plug"].find(options["--domain"]):
+	elif options["--domain"] in options["--plug"]:
 		# Plug already contains the domain, don't re-add 
 		return
 
@@ -306,6 +306,37 @@ def get_plugs_list(_, options):
 			result[shorthost] = ("", None)
 	return result
 
+def create_nova_connection(options):
+	global nova
+
+	try:
+		from novaclient import client
+		from novaclient.exceptions import NotAcceptable
+	except ImportError:
+		fail_usage("Nova not found or not accessible")
+
+	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"))
+		try:
+			nova.hypervisors.list()
+			return
+
+		except NotAcceptable as e:
+			logging.warning(e)
+
+		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))
 
 def define_new_opts():
 	all_opt["endpoint-type"] = {
@@ -329,7 +360,7 @@ def define_new_opts():
 	all_opt["auth-url"] = {
 		"getopt" : "k:",
 		"longopt" : "auth-url",
-		"help" : "-k, --auth-url=[tenant]        Keystone Admin Auth URL",
+		"help" : "-k, --auth-url=[url]           Keystone Admin Auth URL",
 		"required" : "0",
 		"shortdesc" : "Keystone Admin Auth URL",
 		"default" : "",
@@ -391,7 +422,6 @@ def define_new_opts():
 
 def main():
 	global override_status
-	global nova
 	atexit.register(atexit_handler)
 
 	device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", "on_target",
@@ -408,20 +438,16 @@ def main():
 	docs["vendorurl"] = ""
 
 	show_docs(options, docs)
+	
+	if options["--record-only"] in [ "2", "Disabled", "disabled" ]:
+		sys.exit(0)
 
 	run_delay(options)
 
-	try:
-		from novaclient import client as nova_client
-	except ImportError:
-		fail_usage("nova not found or not accessible")
+	create_nova_connection(options)
 
 	fix_plug_name(options)
-
-	if options["--record-only"] in [ "2", "Disabled", "disabled" ]:
-		sys.exit(0)
-
-	elif options["--record-only"] in [ "1", "True", "true", "Yes", "yes"]:
+	if options["--record-only"] in [ "1", "True", "true", "Yes", "yes"]:
 		if options["--action"] == "on":
 			set_attrd_status(options["--plug"], "no", options)
 			sys.exit(0)
@@ -433,16 +459,6 @@ def main():
 		elif options["--action"] in ["monitor", "status"]:
 			sys.exit(0)
 
-	# The first argument is the Nova client version
-	nova = nova_client.Client('2',
-		options["--username"],
-		options["--password"],
-		options["--tenant-name"],
-		options["--auth-url"],
-		insecure=options["--insecure"],
-		region_name=options["--region-name"],
-		endpoint_type=options["--endpoint-type"])
-
 	if options["--action"] in ["off", "reboot"]:
 		# Pretend we're 'on' so that the fencing library will always call set_power_status(off)
 		override_status = "on"
diff --git a/fence/agents/docker/fence_docker.py b/fence/agents/docker/fence_docker.py
index 453a987..2705ceb 100644
--- a/fence/agents/docker/fence_docker.py
+++ b/fence/agents/docker/fence_docker.py
@@ -51,7 +51,7 @@ def get_list(conn, options):
 def send_cmd(options, cmd, post = False):
 	url = "http%s://%s:%s/v%s/%s" % ("s" if "--ssl" in options else "", options["--ip"], options["--ipport"], options["--api-version"], cmd)
 	conn = pycurl.Curl()
-	output_buffer = io.StringIO()
+	output_buffer = io.BytesIO()
 	if logging.getLogger().getEffectiveLevel() < logging.WARNING:
 		conn.setopt(pycurl.VERBOSE, True)
 	conn.setopt(pycurl.HTTPGET, 1)
@@ -77,7 +77,7 @@ specify: --tlscert, --tlskey and --tlscacert")
 
 	try:
 		conn.perform()
-		result = output_buffer.getvalue()
+		result = output_buffer.getvalue().decode()
 		return_code = conn.getinfo(pycurl.RESPONSE_CODE)
 
 		logging.debug("RESULT [" + str(return_code) + \
diff --git a/fence/agents/ipmilan/fence_ipmilan.py b/fence/agents/ipmilan/fence_ipmilan.py
index 2b1831b..de271d5 100644
--- a/fence/agents/ipmilan/fence_ipmilan.py
+++ b/fence/agents/ipmilan/fence_ipmilan.py
@@ -14,67 +14,80 @@ BUILD_DATE=""
 #END_VERSION_GENERATION
 
 def get_power_status(_, options):
-	output = run_command(options, create_command(options, "status"))
+	output = _run_command(options, "status")
 	match = re.search('[Cc]hassis [Pp]ower is [\\s]*([a-zA-Z]{2,3})', str(output))
 	status = match.group(1) if match else None
 	return status
 
 def set_power_status(_, options):
-	run_command(options, create_command(options, options["--action"]))
+	_run_command(options, options["--action"])
 	return
 
 def reboot_cycle(_, options):
-	output = run_command(options, create_command(options, "cycle"))
+	output = _run_command(options, "cycle")
 	return bool(re.search('chassis power control: cycle', str(output).lower()))
 
 def reboot_diag(_, options):
-	output = run_command(options, create_command(options, "diag"))
+	output = _run_command(options, "diag")
 	return bool(re.search('chassis power control: diag', str(output).lower()))
 
+def _run_command(options, action):
+	cmd, log_cmd = create_command(options, action)
+	return run_command(options, cmd, log_command=log_cmd)
+
 def create_command(options, action):
-	cmd = options["--ipmitool-path"]
+	class Cmd:
+		cmd = ""
+		log = ""
+
+		@classmethod
+		def append(cls, cmd, log=None):
+			cls.cmd += cmd
+			cls.log += (cmd if log is None else log)
+
+	# --use-sudo / -d
+	if "--use-sudo" in options:
+		Cmd.append(options["--sudo-path"] + " ")
+
+	Cmd.append(options["--ipmitool-path"])
 
 	# --lanplus / -L
 	if "--lanplus" in options and options["--lanplus"] in ["", "1"]:
-		cmd += " -I lanplus"
+		Cmd.append(" -I lanplus")
 	else:
-		cmd += " -I lan"
+		Cmd.append(" -I lan")
 	# --ip / -a
-	cmd += " -H " + options["--ip"]
+	Cmd.append(" -H " + options["--ip"])
 
 	# --username / -l
 	if "--username" in options and len(options["--username"]) != 0:
-		cmd += " -U " + quote(options["--username"])
+		Cmd.append(" -U " + quote(options["--username"]))
 
 	# --auth / -A
 	if "--auth" in options:
-		cmd += " -A " + options["--auth"]
+		Cmd.append(" -A " + options["--auth"])
 
 	# --password / -p
 	if "--password" in options:
-		cmd += " -P " + quote(options["--password"])
+		Cmd.append(" -P " + quote(options["--password"]), " -P [set]")
 	else:
-		cmd += " -P ''"
+		Cmd.append(" -P ''", " -P [set]")
 
 	# --cipher / -C
 	if "--cipher" in options:
-		cmd += " -C " + options["--cipher"]
+		Cmd.append(" -C " + options["--cipher"])
 
 	# --port / -n
 	if "--ipport" in options:
-		cmd += " -p " + options["--ipport"]
+		Cmd.append(" -p " + options["--ipport"])
 
 	if "--privlvl" in options:
-		cmd += " -L " + options["--privlvl"]
+		Cmd.append(" -L " + options["--privlvl"])
 
 	# --action / -o
-	cmd += " chassis power " + action
-
-	# --use-sudo / -d
-	if "--use-sudo" in options:
-		cmd = options["--sudo-path"] + " " + cmd
+	Cmd.append(" chassis power " + action)
 
-	return cmd
+	return (Cmd.cmd, Cmd.log)
 
 def define_new_opts():
 	all_opt["lanplus"] = {
diff --git a/fence/agents/ironic/fence_ironic.py b/fence/agents/ironic/fence_ironic.py
new file mode 100644
index 0000000..8e5d5b0
--- /dev/null
+++ b/fence/agents/ironic/fence_ironic.py
@@ -0,0 +1,136 @@
+#!@PYTHON@ -tt
+
+import atexit
+import logging
+import os
+import re
+import sys
+from pipes import quote
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail_usage, is_executable, run_command, run_delay
+
+#BEGIN_VERSION_GENERATION
+RELEASE_VERSION=""
+REDHAT_COPYRIGHT=""
+BUILD_DATE=""
+#END_VERSION_GENERATION
+
+def get_name_or_uuid(options):
+	return options["--uuid"] if "--uuid" in options else options["--plug"]
+
+def get_power_status(_, options):
+    output = ironic_run_command(options, "status")
+    stdout = output[1]
+    match = re.search('power[\\s]*([a-zA-Z]{2,3})', str(stdout))
+    status = match.group(1) if match else None
+    return status
+
+def set_power_status(_, options):
+    ironic_run_command(options, options["--action"])
+    return
+
+def get_devices_list(_, options):
+    nodes = {}
+    output = ironic_run_command(options, "list")
+    stdout = output[1]
+    for line in stdout.splitlines():
+        uuid = "UUID"
+        try:
+            (uuid, name, state) = line.split(',')
+        except ValueError:
+            pass
+        if "UUID" in uuid:
+            continue # skip line header
+        match = re.search('power[\\s]*([a-zA-Z]{2,3})', state)
+        status = match.group(1) if match else None
+        nodes[uuid] = (name, status)
+
+    return nodes
+
+def ironic_run_command(options, action, timeout=None):
+    cmd = options["--openstack-path"] + " baremetal"
+    env = os.environ.copy()
+    # --username / -l
+    if "--username" in options and len(options["--username"]) != 0:
+        env["OS_USERNAME"] = options["--username"]
+
+    # --password / -p
+    if "--password" in options:
+        env["OS_PASSWORD"] = options["--password"]
+
+    # --tenant-name -t
+    if "--tenant-name" in options:
+        env["OS_TENANT_NAME"] = options["--tenant-name"]
+
+    #  --auth-url
+    if "--auth-url" in options:
+        env["OS_AUTH_URL"] = options["--auth-url"]
+
+    # --action / -o
+    if action == "status":
+        cmd += " show %s -c power_state --format value" % (get_name_or_uuid(options))
+    elif action in ["on", "off"]:
+        cmd += " power %s %s" % (action, get_name_or_uuid(options))
+    elif action == "list":
+        cmd += " list -c 'Instance UUID' -c Name -c 'Power State' --format csv --quote minimal"
+
+
+    logging.debug("cmd -> %s" % cmd)
+    return run_command(options, cmd, timeout, env)
+
+def define_new_opts():
+    all_opt["auth-url"] = {
+        "getopt" : ":",
+        "longopt" : "auth-url",
+        "help" : "--auth-url=[authurl]            Auth URL",
+        "required" : "1",
+        "shortdesc" : "Keystone Admin Auth URL",
+        "order": 1
+    }
+    all_opt["tenant-name"] = {
+        "getopt" : "t:",
+        "longopt" : "tenant-name",
+        "help" : "-t, --tenant-name=[tenant]      Tenantname",
+        "required" : "0",
+        "shortdesc" : "Keystone Admin Tenant",
+        "default": "admin",
+        "order": 1
+    }
+    all_opt["openstack-path"] = {
+        "getopt" : ":",
+        "longopt" : "openstack-path",
+        "help" : "--openstack-path=[path]       Path to openstack binary",
+        "required" : "0",
+        "shortdesc" : "Path to the OpenStack binary",
+        "default" : "@OPENSTACK_PATH@",
+        "order": 200
+    }
+
+def main():
+    atexit.register(atexit_handler)
+
+    device_opt = ["login", "passwd", "port", "auth-url", "tenant-name", "openstack-path"]
+    define_new_opts()
+
+    options = check_input(device_opt, process_input(device_opt))
+
+    docs = {}
+    docs["shortdesc"] = "Fence agent for OpenStack's Ironic (Bare Metal as a service) service"
+    docs["longdesc"] = "fence_ironic is a Fencing agent \
+which can be used with machines controlled by the Ironic service. \
+This agent calls the openstack CLI. \
+WARNING! This fence agent is not intended for production use. Relying on a functional ironic service for fencing is not a good design choice."
+    docs["vendorurl"] = "https://wiki.openstack.org/wiki/Ironic"
+    show_docs(options, docs)
+
+    run_delay(options)
+
+    if not is_executable(options["--openstack-path"]):
+        fail_usage("openstack tool not found or not accessible")
+
+    result = fence_action(None, options, set_power_status, get_power_status, get_devices_list)
+    sys.exit(result)
+
+if __name__ == "__main__":
+    main()
diff --git a/fence/agents/lib/Makefile.in b/fence/agents/lib/Makefile.in
index a3f61c4..3f8f431 100644
--- a/fence/agents/lib/Makefile.in
+++ b/fence/agents/lib/Makefile.in
@@ -91,11 +91,10 @@ host_triplet = @host@
 @BUILD_XENAPILIB_TRUE at am__append_1 = XenAPI.py
 subdir = fence/agents/lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/make/ac_python_module.m4 \
-	$(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -218,6 +217,7 @@ NMEDIT = @NMEDIT@
 NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OPENSTACK_PATH = @OPENSTACK_PATH@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -228,6 +228,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+POWERMAN_PATH = @POWERMAN_PATH@
 PYTHON = @PYTHON@
 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
@@ -570,6 +571,7 @@ define gen_agent_from_py
 		-e 's#@''SBINDIR@#${sbindir}#g' \
 		-e 's#@''LIBEXECDIR@#${libexecdir}#g' \
 		-e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
+		-e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
 		-e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
 		-e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \
 		-e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \
@@ -587,10 +589,11 @@ define gen_agent_from_py
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
 		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
+		-e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
-		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
+		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
diff --git a/fence/agents/lib/check_used_options.py b/fence/agents/lib/check_used_options.py
old mode 100755
new mode 100644
index b90bc05..6ed3827
--- a/fence/agents/lib/check_used_options.py
+++ b/fence/agents/lib/check_used_options.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python -tt
-
 ## Check if fence agent uses only options["--??"] which are defined in fencing library or
 ## fence agent itself
 ##
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 1ac2d72..e303160 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -64,6 +64,7 @@ all_opt = {
 	"delay" : {
 		"getopt" : ":",
 		"longopt" : "delay",
+		"type" : "second",
 		"help" : "--delay=[seconds]              Wait X seconds before fencing is started",
 		"required" : "0",
 		"default" : "0",
@@ -101,6 +102,7 @@ all_opt = {
 	"ipport" : {
 		"getopt" : "u:",
 		"longopt" : "ipport",
+		"type" : "integer",
 		"help" : "-u, --ipport=[port]            TCP/UDP port to use for connection",
 		"required" : "0",
 		"shortdesc" : "TCP/UDP port to use for connection with device",
@@ -317,6 +319,7 @@ all_opt = {
 	"login_timeout" : {
 		"getopt" : ":",
 		"longopt" : "login-timeout",
+		"type" : "second",
 		"help" : "--login-timeout=[seconds]      Wait X seconds for cmd prompt after login",
 		"default" : "5",
 		"required" : "0",
@@ -324,6 +327,7 @@ all_opt = {
 	"shell_timeout" : {
 		"getopt" : ":",
 		"longopt" : "shell-timeout",
+		"type" : "second",
 		"help" : "--shell-timeout=[seconds]      Wait X seconds for cmd prompt after issuing command",
 		"default" : "3",
 		"required" : "0",
@@ -331,6 +335,7 @@ all_opt = {
 	"power_timeout" : {
 		"getopt" : ":",
 		"longopt" : "power-timeout",
+		"type" : "second",
 		"help" : "--power-timeout=[seconds]      Test X seconds for status change after ON/OFF",
 		"default" : "20",
 		"required" : "0",
@@ -338,6 +343,7 @@ all_opt = {
 	"power_wait" : {
 		"getopt" : ":",
 		"longopt" : "power-wait",
+		"type" : "second",
 		"help" : "--power-wait=[seconds]         Wait X seconds after issuing ON/OFF",
 		"default" : "0",
 		"required" : "0",
@@ -351,6 +357,7 @@ all_opt = {
 	"retry_on" : {
 		"getopt" : ":",
 		"longopt" : "retry-on",
+		"type" : "integer",
 		"help" : "--retry-on=[attempts]          Count of attempts to retry power on",
 		"default" : "1",
 		"required" : "0",
@@ -438,13 +445,20 @@ all_opt = {
 	"on_target": {
 		"getopt" : "",
 		"help" : "",
-		"order" : 1}
+		"order" : 1},
+	"quiet": {
+		"getopt" : "q",
+		"longopt": "quiet",
+		"help" : "-q, --quiet                    Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.",
+		"required" : "0",
+		"order" : 50}
 }
 
 # options which are added automatically if 'key' is encountered ("default" is always added)
 DEPENDENCY_OPT = {
 		"default" : ["help", "debug", "verbose", "version", "action", "agent", \
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait", "retry_on", "delay"],
+			"power_timeout", "shell_timeout", "login_timeout", "power_wait", "retry_on", \
+			"delay", "quiet"],
 		"passwd" : ["passwd_script"],
 		"sudo" : ["sudo_path"],
 		"secure" : ["identity_file", "ssh_options", "ssh_path"],
@@ -575,7 +589,8 @@ def metadata(avail_opt, docs):
 					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+" />")
 			print("\t\t<shortdesc lang=\"en\">" + shortdesc + "</shortdesc>")
@@ -644,8 +659,9 @@ def check_input(device_opt, opt, other_conditions = False):
 
 	## add logging to syslog
 	logging.getLogger().addHandler(SyslogLibHandler())
-	## add logging to stderr
-	logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
+	if "--quiet" not in options:
+		## add logging to stderr
+		logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
 
 	(acceptable_actions, _) = _get_available_actions(device_opt)
 
@@ -903,17 +919,13 @@ def is_executable(path):
 			return True
 	return False
 
-def run_command(options, command, timeout=None, env=None):
+def run_command(options, command, timeout=None, env=None, log_command=None):
 	if timeout is None and "--power-timeout" in options:
 		timeout = options["--power-timeout"]
 	if timeout is not None:
 		timeout = float(timeout)
 
-	# For IPMI password occurs on command line, it should not be part of debug info
-	log_command = command
-	if "ipmitool" in log_command:
-		log_command = re.sub("-P (.+?) -p", "-P [set] -p", log_command)
-	logging.info("Executing: %s\n", log_command)
+	logging.info("Executing: %s\n", log_command or command)
 
 	try:
 		process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env)
@@ -1249,6 +1261,15 @@ def _validate_input(options, stop = True):
 		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 _encode_html_entities(text):
@@ -1360,6 +1381,21 @@ def _get_opts_with_invalid_choices(options):
 					options_failed.append(opt)
 	return options_failed
 
+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
+
 def _verify_unique_getopt(avail_opt):
 	used_getopt = set()
 
diff --git a/fence/agents/lib/metadata.rng b/fence/agents/lib/metadata.rng
index c7758e6..2185cbf 100644
--- a/fence/agents/lib/metadata.rng
+++ b/fence/agents/lib/metadata.rng
@@ -29,6 +29,8 @@
 						<choice>
 							<value>boolean</value>
 							<value>string</value>
+							<value>second</value>
+							<value>integer</value>
 						</choice>
 					</attribute>
 					<group>
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
index 26111ce..5487b84 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["--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["--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["--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: 4)",
+		"help" : "-H, --hmc-version=[version]    Force HMC version to use: (3|4|ivm) (default: 4)",
 		"required" : "0",
 		"shortdesc" : "Force HMC version to use",
 		"default" : "4",
-		"choices" : ["3", "4"],
+		"choices" : ["3", "4", "ivm"],
 		"order" : 1}
 
 def main():
diff --git a/fence/agents/powerman/fence_powerman.py b/fence/agents/powerman/fence_powerman.py
new file mode 100755
index 0000000..d9ab849
--- /dev/null
+++ b/fence/agents/powerman/fence_powerman.py
@@ -0,0 +1,265 @@
+#!/usr/bin/env python
+import os
+import time
+from datetime import datetime
+import sys
+import subprocess
+import re
+import atexit
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import is_executable, fail_usage, run_delay
+import logging
+
+
+#BEGIN_VERSION_GENERATION
+RELEASE_VERSION="Powerman Fencing Agent"
+REDHAT_COPYRIGHT=""
+BUILD_DATE=""
+#END_VERSION_GENERATION
+
+
+#### important!!! #######
+class PowerMan:
+	"""Python wrapper for calling powerman commands
+
+	This class makes calls to a powerman deamon for a cluster of computers.
+	The make-up of such a call looks something like:
+		$ pm -h elssd1:10101 <option> <node>
+	where option is something like --off, --on, --cycle and where node is 
+	elssd8, or whatever values are setup in powerman.conf.  Note that powerman
+	itself must be configured for this fence agent to work.
+	"""
+
+	def __init__(self, powerman_path, server_name, port):
+		"""
+		Args:
+			server_name: (string) host or ip of powerman server
+			port: (str) port number that the powerman server is listening on
+		"""
+		self.powerman_path = powerman_path
+		self.server_name = server_name
+		self.port = port
+		self.server_and_port = server_name + ":" + str(port)
+		self.base_cmd = [
+			self.powerman_path,
+			"--server-host",
+			self.server_and_port
+		]
+
+	def _run(self, cmd, only_first_line):
+		# Args:
+		#   cmd: (list) commands and arguments to pass to the program_name
+
+		run_this = self.base_cmd + cmd 
+		try:
+			popen = subprocess.Popen(run_this, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+			out = popen.communicate()
+		except OSError as e:
+			logging.error("_run command error: %s\n", e)
+			sys.exit(1)
+		if only_first_line == True:
+			result_line = out[0].decode().strip()
+			return (result_line, popen.returncode)
+		else:
+			result_list = []
+			for line in out:
+				result_list.append(line)
+			return (result_list, popen.returncode)
+
+	def is_running(self):
+		"""simple query to see if powerman server is responding. Returns boolean"""
+		cmd = ["-q"] # just check if we get a response from the server
+		result, ret_code = self._run(cmd, True)
+		if ret_code != 0:
+			return False
+		return True
+
+	## Some devices respond to on or off actions as if the action was successful,
+	## when it was not.
+	##
+	## This is not unique to powerman, and so fence_action ignores the return code
+	## from the set_power_fn and queries the device to confirm the power status of
+	## the machine.
+	##
+	## For this reason we do not do a query ourself, retry, etc. in on() or off().
+
+	def on(self, host):
+		logging.debug("PowerMan on: %s\n", host)
+		cmd = ["--on", host]
+		try:
+			result, ret_code = self._run(cmd, True)
+		except OSError as e:
+			logging.error("PowerMan Error: The command '--on' failed: %s\n", e)
+			return -1
+		except ValueError as e:
+			logging.error("PowerMan Error: Popen: invalid arguments: %s\n", e)
+			return -1
+		logging.debug("pm.on result: %s ret_code: %s\n", result, ret_code)
+
+		return ret_code
+
+	def off(self, host):
+		logging.debug("PowerMan off: %s\n", host)
+		cmd = ["--off", host]
+		try:
+			result, ret_code = self._run(cmd, True)
+		except OSError as e:
+			logging.error("PowerMan Error: The command '%s' failed: %s\n", cmd, e)
+			return -1
+		except ValueError as e:
+			logging.error("PowerMan Error: Popen: invalid arguments: %s\n", e)
+			return -1
+		logging.debug("pm.off result: %s ret_code: %s\n", result, ret_code)
+
+		return ret_code
+
+	def list(self):
+		## Error checking here is faulty.  Try passing
+		## invalid args, e.g. --query --exprange to see failure
+		cmd = ["-q","--exprange"]
+		try:
+			result, ret_code = self._run(cmd, False)
+		except OSError as e:
+			logging.error("PowerMan Error: The command '%s' failed: %s\n", cmd, e)
+			return -1
+		except ValueError as e:
+			logging.error("PowerMan Error: Popen: invalid arguments: %s\n", e)
+			return -1
+		if ret_code < 0:
+			# there was an error with the command
+			return ret_code
+		else:
+			state = {}
+			for line in result[0].split('\n'):
+				if len(line) > 2:
+					fields = line.split(':')
+					if len(fields) == 2:
+						state[fields[0]] = (fields[0],fields[1])
+			return state
+
+	def query(self, host):
+		cmd = ["--query", host]
+		try:
+			result, ret_code = self._run(cmd, True)
+		except OSError as e:
+			logging.error("PowerMan Error: The command '%s' failed: %s\n", cmd, e)
+			return -1
+		except ValueError as e:
+			logging.error("PowerMan Error: Popen: invalid arguments: %s\n", e)
+			return -1
+		if ret_code < 0:
+			# there was an error with the command
+			return ret_code
+		else:
+			res = result.split('\n')
+			res = [r.split() for r in res]
+			# find the host in command's returned output
+			for lst in res:
+				if lst[0] == 'No' and lst[1] == 'such' and lst[2] == 'nodes:':
+					return -1
+				if host in lst:
+					return lst[0][:-1] # lst[0] would be 'off:'-- this removes the colon
+			# host isn't in the output
+			return -1
+
+
+def get_power_status(conn, options):
+	logging.debug("get_power_status function:\noptions: %s\n", str(options))
+	pm = PowerMan(options['--powerman-path'], options['--ip'], options['--ipport'])
+	# if Pacemaker is checking the status of the Powerman server...
+	if options['--action'] == 'monitor':
+		if pm.is_running():
+			logging.debug("Powerman is running\n")
+			return "on"
+		logging.debug("Powerman is NOT running\n")
+		return "error"
+	else:
+		status = pm.query(options['--plug'])
+		if isinstance(int, type(status)):
+			# query only returns ints on error
+			logging.error("get_power_status: query returned %s\n", str(status))
+			fail(EC_STATUS)
+		return status
+
+
+def set_power_status(conn, options):
+	logging.debug("set_power_status function:\noptions: %s", str(options))
+	pm = PowerMan(options['--powerman-path'], options['--ip'], options['--ipport'])
+
+	action = options["--action"]
+	if action == "on":
+		pm.on(options['--plug'])
+	elif action == "off":
+		pm.off(options['--plug'])
+
+	return
+
+
+def get_list(conn, options):
+	logging.debug("get_list function:\noptions: %s", str(options))
+	pm = PowerMan(options['--powerman-path'], options['--ip'], options['--ipport'])
+
+	outlets = pm.list()
+	logging.debug("get_list outlets.keys: %s", str(outlets.keys()))
+	return outlets
+
+
+def define_new_opts():
+	all_opt["powerman_path"] = {
+		"getopt" : ":",
+		"longopt" : "powerman-path",
+		"help" : "--powerman-path=[path]         Path to powerman binary",
+		"required" : "0",
+		"shortdesc" : "Path to powerman binary",
+		"default" : "@POWERMAN_PATH@",
+		"order": 200
+	}
+
+
+def main():
+	device_opt = [
+		'ipaddr',
+		'no_password',
+		'no_login',
+		'powerman_path',
+	]
+
+	atexit.register(atexit_handler)
+
+	define_new_opts()
+
+	# redefine default values for the options given by fencing.py
+	# these 3 different values are derived from the lssd test cluster and may
+	# need to adjusted depending on how other systems fare
+	all_opt['ipport']['default'] = '10101'
+	all_opt['delay']['default'] = '3'
+	all_opt['power_wait']['default'] = '3'
+
+	options = check_input(device_opt, process_input(device_opt))
+	docs = {}
+	docs["shortdesc"] = "Fence Agent for Powerman"
+	docs["longdesc"] = "This is a Pacemaker Fence Agent for the \
+Powerman management utility that was designed for LLNL systems."
+	docs["vendorurl"] = "https://github.com/chaos/powerman"
+	show_docs(options, docs)
+
+	run_delay(options)
+
+	if not is_executable(options["--powerman-path"]):
+		fail_usage("Powerman not found or not executable at path " + options["--powerman-path"])
+
+	# call the fencing.fence_action function, passing in my various fence functions
+	result = fence_action(
+				None,
+				options,
+				set_power_status,
+				get_power_status,
+				get_list,
+				None
+			)
+	sys.exit(result)
+
+
+if __name__ == "__main__":
+	main()
diff --git a/fence/agents/pve/fence_pve.py b/fence/agents/pve/fence_pve.py
index 6686aad..c2feb0d 100755
--- a/fence/agents/pve/fence_pve.py
+++ b/fence/agents/pve/fence_pve.py
@@ -96,7 +96,7 @@ def get_ticket(options):
 def send_cmd(options, cmd, post=None):
 	url = options["url"] + cmd
 	conn = pycurl.Curl()
-	output_buffer = io.StringIO()
+	output_buffer = io.BytesIO()
 	if logging.getLogger().getEffectiveLevel() < logging.WARNING:
 		conn.setopt(pycurl.VERBOSE, True)
 	conn.setopt(pycurl.HTTPGET, 1)
@@ -122,7 +122,7 @@ def send_cmd(options, cmd, post=None):
 
 	try:
 		conn.perform()
-		result = output_buffer.getvalue()
+		result = output_buffer.getvalue().decode()
 
 		logging.debug("RESULT [" + str(conn.getinfo(pycurl.RESPONSE_CODE)) + \
 			"]: " + result)
diff --git a/fence/agents/rhevm/fence_rhevm.py b/fence/agents/rhevm/fence_rhevm.py
index ee005b7..e2942e1 100644
--- a/fence/agents/rhevm/fence_rhevm.py
+++ b/fence/agents/rhevm/fence_rhevm.py
@@ -86,7 +86,7 @@ def send_command(opt, command, method="GET"):
 
 	## send command through pycurl
 	conn = pycurl.Curl()
-	web_buffer = io.StringIO()
+	web_buffer = io.BytesIO()
 	conn.setopt(pycurl.URL, url)
 	conn.setopt(pycurl.HTTPHEADER, ["Content-type: application/xml", "Accept: application/xml", "Prefer: persistent-auth", "Filter: true"])
 
@@ -121,7 +121,7 @@ def send_command(opt, command, method="GET"):
 
 		opt["cookie"] = cookie
 
-	result = web_buffer.getvalue()
+	result = web_buffer.getvalue().decode()
 
 	logging.debug("%s\n", command)
 	logging.debug("%s\n", result)
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 "--ssl" in options or "--ssl-secure" in options or "--ssl-insecure" in options:
 		if "--ssl-insecure" in options:
+			from requests.packages.urllib3.exceptions import InsecureRequestWarning
+			requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 			verify = False
 		else:
 			verify = True
diff --git a/fence/agents/zvm/fence_zvmip.py b/fence/agents/zvm/fence_zvmip.py
index f4214fc..e5f8940 100644
--- a/fence/agents/zvm/fence_zvmip.py
+++ b/fence/agents/zvm/fence_zvmip.py
@@ -157,7 +157,7 @@ def main():
 	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), other_conditions=True)
 
diff --git a/make/ac_python_module.m4 b/m4/ac_python_module.m4
similarity index 100%
rename from make/ac_python_module.m4
rename to m4/ac_python_module.m4
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
index 859e2a7..a8d205e 100644
--- a/make/fencebuild.mk
+++ b/make/fencebuild.mk
@@ -11,6 +11,7 @@ define gen_agent_from_py
 		-e 's#@''SBINDIR@#${sbindir}#g' \
 		-e 's#@''LIBEXECDIR@#${libexecdir}#g' \
 		-e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
+		-e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
 		-e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
 		-e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \
 		-e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \
@@ -28,10 +29,11 @@ define gen_agent_from_py
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
 		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
+		-e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
-		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
+		PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml
index 86e96f9..0d986f6 100644
--- a/tests/data/metadata/fence_alom.xml
+++ b/tests/data/metadata/fence_alom.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -90,12 +95,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -105,22 +110,22 @@
 	</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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
index 1a73057..dfdfa2e 100644
--- a/tests/data/metadata/fence_amt.xml
+++ b/tests/data/metadata/fence_amt.xml
@@ -36,7 +36,7 @@
 	</parameter>
 	<parameter name="ipport" unique="0" required="0">
 		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="16994"  />
+		<content type="integer" default="16994"  />
 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
@@ -62,6 +62,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,12 +93,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -103,22 +108,22 @@
 	</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="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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_amt_ws.xml b/tests/data/metadata/fence_amt_ws.xml
index 16b2035..4642c0f 100644
--- a/tests/data/metadata/fence_amt_ws.xml
+++ b/tests/data/metadata/fence_amt_ws.xml
@@ -36,7 +36,7 @@
 	</parameter>
 	<parameter name="ipport" unique="0" required="0">
 		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="16992"  />
+		<content type="integer" default="16992"  />
 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
@@ -62,6 +62,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -84,12 +89,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -99,22 +104,22 @@
 	</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="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 --git a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml
index e187c3b..f1b94ed 100644
--- a/tests/data/metadata/fence_apc.xml
+++ b/tests/data/metadata/fence_apc.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -73,6 +73,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical switch number on device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,32 +105,32 @@
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml
index ba3b47a..a7dc7ef 100644
--- a/tests/data/metadata/fence_apc_snmp.xml
+++ b/tests/data/metadata/fence_apc_snmp.xml
@@ -31,7 +31,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -98,6 +98,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -125,32 +130,32 @@
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_azure_arm.xml
similarity index 72%
copy from tests/data/metadata/fence_ovh.xml
copy to tests/data/metadata/fence_azure_arm.xml
index 3ef2fdf..de0f01e 100644
--- a/tests/data/metadata/fence_ovh.xml
+++ b/tests/data/metadata/fence_azure_arm.xml
@@ -1,18 +1,13 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_ovh" shortdesc="Fence agent for OVH" >
-<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>
+<resource-agent name="fence_azure_arm" shortdesc="Fence agent for Azure Resource Manager" >
+<longdesc>Used to deallocate virtual machines and to report power state of virtual machines running in Azure</longdesc>
+<vendor-url>http://www.microsoft.com</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="email" unique="0" required="1">
-		<getopt mixed="-Z, --email=[email]" />
-		<content type="string"  />
-		<shortdesc lang="en">Reboot email</shortdesc>
-	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
@@ -33,6 +28,26 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="resourceGroup" unique="0" required="1">
+		<getopt mixed="--resourceGroup=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Name of resource group.</shortdesc>
+	</parameter>
+	<parameter name="tenantId" unique="0" required="1">
+		<getopt mixed="--tenantId=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Id of Azure Active Directory tenant.</shortdesc>
+	</parameter>
+	<parameter name="subscriptionId" unique="0" required="1">
+		<getopt mixed="--subscriptionId=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Id of the Azure subscription.</shortdesc>
+	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -60,32 +75,32 @@
 	</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="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="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>
@@ -93,6 +108,7 @@
 	<action name="on" automatic="0"/>
 	<action name="off" />
 	<action name="reboot" />
+	<action name="status" />
 	<action name="list" />
 	<action name="list-status" />
 	<action name="monitor" />
diff --git a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml
index bf1760f..9bfe5af 100644
--- a/tests/data/metadata/fence_bladecenter.xml
+++ b/tests/data/metadata/fence_bladecenter.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,12 +100,12 @@
 	</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="missing_as_off" unique="0" required="0">
@@ -110,22 +115,22 @@
 	</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="10"  />
+		<content type="second" default="10"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml
index 14273e3..2026f84 100644
--- a/tests/data/metadata/fence_brocade.xml
+++ b/tests/data/metadata/fence_brocade.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,32 +100,32 @@
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml
index 8b9e96b..35628ed 100644
--- a/tests/data/metadata/fence_cisco_mds.xml
+++ b/tests/data/metadata/fence_cisco_mds.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -97,6 +97,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -124,32 +129,32 @@
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml
index cf1b5be..3ddf787 100644
--- a/tests/data/metadata/fence_cisco_ucs.xml
+++ b/tests/data/metadata/fence_cisco_ucs.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -73,6 +73,11 @@
 		<content type="string" default=""  />
 		<shortdesc lang="en">Additional path needed to access suborganization</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,12 +105,12 @@
 	</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="missing_as_off" unique="0" required="0">
@@ -115,22 +120,22 @@
 	</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="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>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml
index 1864303..bb271ab 100644
--- a/tests/data/metadata/fence_compute.xml
+++ b/tests/data/metadata/fence_compute.xml
@@ -9,7 +9,7 @@
 		<shortdesc lang="en">Fencing action</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" default=""  />
 		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
 	</parameter>
@@ -73,6 +73,11 @@
 		<content type="string" default="False"  />
 		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,32 +105,32 @@
 	</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="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="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 --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml
index e53ff92..bfc1df1 100644
--- a/tests/data/metadata/fence_docker.xml
+++ b/tests/data/metadata/fence_docker.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="method" unique="0" required="0">
@@ -76,6 +76,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Path to client key (PEM format) for TLS authentication.  Required if --ssl option is used.</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -103,32 +108,32 @@
 	</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="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="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>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
index 45bbcd1..ded2e7a 100644
--- a/tests/data/metadata/fence_drac.xml
+++ b/tests/data/metadata/fence_drac.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -53,6 +53,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -75,12 +80,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -90,22 +95,22 @@
 	</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="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>
 	<parameter name="telnet_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml
index 806f9b7..8793765 100644
--- a/tests/data/metadata/fence_drac5.xml
+++ b/tests/data/metadata/fence_drac5.xml
@@ -44,7 +44,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -77,6 +77,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,32 +109,32 @@
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml
index c84481b..ba58f7d 100644
--- a/tests/data/metadata/fence_dummy.xml
+++ b/tests/data/metadata/fence_dummy.xml
@@ -23,6 +23,11 @@
 		<content type="string" default="file"  />
 		<shortdesc lang="en">Type of the dummy fence agent</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -45,32 +50,32 @@
 	</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="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="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 --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml
index da6bdbe..04fff5a 100644
--- a/tests/data/metadata/fence_eaton_snmp.xml
+++ b/tests/data/metadata/fence_eaton_snmp.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -97,6 +97,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -124,32 +129,32 @@
 	</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="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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml
index 957631b..74a45ee 100644
--- a/tests/data/metadata/fence_emerson.xml
+++ b/tests/data/metadata/fence_emerson.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -97,6 +97,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -124,32 +129,32 @@
 	</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="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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml
index deb9de4..779d1d0 100644
--- a/tests/data/metadata/fence_eps.xml
+++ b/tests/data/metadata/fence_eps.xml
@@ -32,7 +32,7 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -55,6 +55,11 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -82,32 +87,32 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 	</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="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="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 --git a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml
index fa46677..660c335 100644
--- a/tests/data/metadata/fence_hds_cb.xml
+++ b/tests/data/metadata/fence_hds_cb.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,12 +100,12 @@
 	</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="missing_as_off" unique="0" required="0">
@@ -110,22 +115,22 @@
 	</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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml
index d4342a5..ab7caf2 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_hpblade.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,12 +100,12 @@
 	</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="10"  />
+		<content type="second" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="missing_as_off" unique="0" required="0">
@@ -110,22 +115,22 @@
 	</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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml
index ea7f618..bbd575b 100644
--- a/tests/data/metadata/fence_ibmblade.xml
+++ b/tests/data/metadata/fence_ibmblade.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -97,6 +97,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -124,32 +129,32 @@
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
index a958fd5..2ee556f 100644
--- a/tests/data/metadata/fence_idrac.xml
+++ b/tests/data/metadata/fence_idrac.xml
@@ -43,7 +43,7 @@
 	</parameter>
 	<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="lanplus" unique="0" required="0">
@@ -89,6 +89,11 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -111,7 +116,7 @@
 	</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="ipmitool_path" unique="0" required="0">
@@ -120,7 +125,7 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -130,22 +135,22 @@
 	</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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml
index 1d223db..642cff5 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
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -99,6 +99,11 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -126,32 +131,32 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
index 3f0a984..8398c06 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -26,7 +26,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -79,6 +79,11 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Disable TLS negotiation and force TLS1.0. This should only be used for devices that do not support TLS1.1 and up.</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -101,12 +106,12 @@
 	</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="10"  />
+		<content type="second" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="port_as_ip" unique="0" required="0">
@@ -116,22 +121,22 @@
 	</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="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="3"  />
+		<content type="integer" default="3"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
index 6bac41b..7079916 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -26,7 +26,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -79,6 +79,11 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Disable TLS negotiation and force TLS1.0. This should only be used for devices that do not support TLS1.1 and up.</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -101,12 +106,12 @@
 	</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="10"  />
+		<content type="second" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="port_as_ip" unique="0" required="0">
@@ -116,22 +121,22 @@
 	</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="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="3"  />
+		<content type="integer" default="3"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
index 6e75592..b2be749 100644
--- a/tests/data/metadata/fence_ilo3.xml
+++ b/tests/data/metadata/fence_ilo3.xml
@@ -43,7 +43,7 @@
 	</parameter>
 	<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="lanplus" unique="0" required="0">
@@ -89,6 +89,11 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -111,7 +116,7 @@
 	</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="ipmitool_path" unique="0" required="0">
@@ -120,7 +125,7 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -130,22 +135,22 @@
 	</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="4"  />
+		<content type="second" default="4"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml
index a400855..69f59b4 100644
--- a/tests/data/metadata/fence_ilo3_ssh.xml
+++ b/tests/data/metadata/fence_ilo3_ssh.xml
@@ -37,7 +37,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -78,6 +78,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,12 +105,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -115,22 +120,22 @@
 	</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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
index cb7da23..953ddc4 100644
--- a/tests/data/metadata/fence_ilo4.xml
+++ b/tests/data/metadata/fence_ilo4.xml
@@ -43,7 +43,7 @@
 	</parameter>
 	<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="lanplus" unique="0" required="0">
@@ -89,6 +89,11 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -111,7 +116,7 @@
 	</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="ipmitool_path" unique="0" required="0">
@@ -120,7 +125,7 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -130,22 +135,22 @@
 	</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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml
index 9a677dc..5bea7db 100644
--- a/tests/data/metadata/fence_ilo4_ssh.xml
+++ b/tests/data/metadata/fence_ilo4_ssh.xml
@@ -37,7 +37,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -78,6 +78,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,12 +105,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -115,22 +120,22 @@
 	</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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml
index 3220f65..a3a9834 100644
--- a/tests/data/metadata/fence_ilo_moonshot.xml
+++ b/tests/data/metadata/fence_ilo_moonshot.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,32 +100,32 @@
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml
index d9946fb..cf14a02 100644
--- a/tests/data/metadata/fence_ilo_mp.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -90,12 +95,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -105,22 +110,22 @@
 	</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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml
index 6bffbd0..bcd93b2 100644
--- a/tests/data/metadata/fence_ilo_ssh.xml
+++ b/tests/data/metadata/fence_ilo_ssh.xml
@@ -37,7 +37,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -78,6 +78,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,12 +105,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -115,22 +120,22 @@
 	</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="5"  />
+		<content type="second" default="5"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
index d2fca4f..04113f0 100644
--- a/tests/data/metadata/fence_imm.xml
+++ b/tests/data/metadata/fence_imm.xml
@@ -43,7 +43,7 @@
 	</parameter>
 	<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="lanplus" unique="0" required="0">
@@ -89,6 +89,11 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -111,7 +116,7 @@
 	</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="ipmitool_path" unique="0" required="0">
@@ -120,7 +125,7 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -130,22 +135,22 @@
 	</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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml
index 1a72209..84eff9c 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
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -99,6 +99,11 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -126,32 +131,32 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml
index 9593d06..2418fea 100644
--- a/tests/data/metadata/fence_ipdu.xml
+++ b/tests/data/metadata/fence_ipdu.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -97,6 +97,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -124,32 +129,32 @@
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
index dcf1c3c..e197d5d 100644
--- a/tests/data/metadata/fence_ipmilan.xml
+++ b/tests/data/metadata/fence_ipmilan.xml
@@ -43,7 +43,7 @@
 	</parameter>
 	<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="lanplus" unique="0" required="0">
@@ -89,6 +89,11 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -111,7 +116,7 @@
 	</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="ipmitool_path" unique="0" required="0">
@@ -120,7 +125,7 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -130,22 +135,22 @@
 	</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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_ironic.xml
similarity index 69%
copy from tests/data/metadata/fence_netio.xml
copy to tests/data/metadata/fence_ironic.xml
index a0a5b8e..759387c 100644
--- a/tests/data/metadata/fence_netio.xml
+++ b/tests/data/metadata/fence_ironic.xml
@@ -1,32 +1,17 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_netio" shortdesc="I/O Fencing agent for Koukaam NETIO-230B" >
-<longdesc>fence_netio is an I/O Fencing agent which can be used with the Koukaam NETIO-230B Power Distribution Unit. It logs into device via telnet and reboots a specified outlet. Lengthy telnet connections should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
-<vendor-url>http://www.koukaam.se/</vendor-url>
+<resource-agent name="fence_ironic" shortdesc="Fence agent for OpenStack's Ironic (Bare Metal as a service) service" >
+<longdesc>fence_ironic is a Fencing agent which can be used with machines controlled by the Ironic service. This agent calls the openstack CLI. WARNING! This fence agent is not intended for production use. Relying on a functional ironic service for fencing is not a good design choice.</longdesc>
+<vendor-url>https://wiki.openstack.org/wiki/Ironic</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="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
+	<parameter name="auth-url" unique="0" required="1">
+		<getopt mixed="--auth-url=[authurl]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
-	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="1234"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
 	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
@@ -48,6 +33,16 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="tenant-name" unique="0" required="0">
+		<getopt mixed="-t, --tenant-name=[tenant]" />
+		<content type="string" default="admin"  />
+		<shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -75,38 +70,39 @@
 	</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="openstack-path" unique="0" required="0">
+		<getopt mixed="--openstack-path=[path]" />
+		<content type="string" default="/usr/bin/openstack"  />
+		<shortdesc lang="en">Path to the OpenStack binary</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="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>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
diff --git a/tests/data/metadata/fence_kdump.xml b/tests/data/metadata/fence_kdump.xml
index 08967fd..bb11fa7 100644
--- a/tests/data/metadata/fence_kdump.xml
+++ b/tests/data/metadata/fence_kdump.xml
@@ -28,6 +28,11 @@
 		<content type="string" default="60" />
 		<shortdesc lang="en">Timeout in seconds</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean" />
diff --git a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml
index f026f6d..71e4c84 100644
--- a/tests/data/metadata/fence_ldom.xml
+++ b/tests/data/metadata/fence_ldom.xml
@@ -37,7 +37,7 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -70,6 +70,11 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -97,32 +102,32 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml
index f9f8144..a3d7572 100644
--- a/tests/data/metadata/fence_lpar.xml
+++ b/tests/data/metadata/fence_lpar.xml
@@ -18,6 +18,7 @@
 		<content type="select" default="4"  >
 			<option value="3" />
 			<option value="4" />
+			<option value="ivm" />
 		</content>
 		<shortdesc lang="en">Force HMC version to use</shortdesc>
 	</parameter>
@@ -43,7 +44,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -81,6 +82,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -108,32 +114,32 @@
 	</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="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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
index 5a31b98..010868c 100644
--- a/tests/data/metadata/fence_mpath.xml
+++ b/tests/data/metadata/fence_mpath.xml
@@ -19,6 +19,11 @@ The fence_mpath agent works by having a unique key for each node that has to be
 		<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="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -41,12 +46,12 @@ The fence_mpath agent works by having a unique key for each node that has to be
 	</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="mpathpersist_path" unique="0" required="0">
@@ -55,17 +60,17 @@ The fence_mpath agent works by having a unique key for each node that has to be
 	</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="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="store_path" unique="0" required="0">
@@ -74,7 +79,7 @@ The fence_mpath agent works by having a unique key for each node that has to be
 	</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 --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml
index a0a5b8e..3378f91 100644
--- a/tests/data/metadata/fence_netio.xml
+++ b/tests/data/metadata/fence_netio.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -48,6 +48,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -75,32 +80,32 @@
 	</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="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="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>
 	<parameter name="telnet_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml
index 3ef2fdf..7f379da 100644
--- a/tests/data/metadata/fence_ovh.xml
+++ b/tests/data/metadata/fence_ovh.xml
@@ -33,6 +33,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -60,32 +65,32 @@
 	</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="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="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 --git a/tests/data/metadata/fence_amt_ws.xml b/tests/data/metadata/fence_powerman.xml
similarity index 68%
copy from tests/data/metadata/fence_amt_ws.xml
copy to tests/data/metadata/fence_powerman.xml
index 16b2035..220d7d4 100644
--- a/tests/data/metadata/fence_amt_ws.xml
+++ b/tests/data/metadata/fence_powerman.xml
@@ -1,24 +1,13 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_amt_ws" shortdesc="Fence agent for AMT (WS)" >
-<longdesc>fence_amt_ws is an I/O Fencing agent which can be used with Intel AMT (WS). This agent requires the pywsman Python library which is included in OpenWSMAN. (http://openwsman.github.io/).</longdesc>
-<vendor-url>http://www.intel.com/</vendor-url>
+<resource-agent name="fence_powerman" shortdesc="Fence Agent for Powerman" >
+<longdesc>This is a Pacemaker Fence Agent for the Powerman management utility that was designed for LLNL systems.</longdesc>
+<vendor-url>https://github.com/chaos/powerman</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="boot_option" unique="0" required="0">
-		<getopt mixed="-b, --boot-option=[option]" />
-		<content type="select"  >
-			<option value="pxe" />
-			<option value="hd" />
-			<option value="hdsafe" />
-			<option value="cd" />
-			<option value="diag" />
-		</content>
-		<shortdesc lang="en">Change the default boot behavior of the machine.</shortdesc>
-	</parameter>
 	<parameter name="inet4_only" unique="0" required="0">
 		<getopt mixed="-4, --inet4-only" />
 		<content type="boolean"  />
@@ -36,32 +25,19 @@
 	</parameter>
 	<parameter name="ipport" unique="0" required="0">
 		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="16992"  />
+		<content type="integer" default="10101"  />
 		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
-	<parameter name="method" unique="0" required="0">
-		<getopt mixed="-m, --method=[method]" />
-		<content type="select" default="onoff"  >
-			<option value="onoff" />
-			<option value="cycle" />
-		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
-	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
-		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
-	</parameter>
 	<parameter name="port" unique="0" required="0">
 		<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="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -84,12 +60,12 @@
 	</parameter>
 	<parameter name="delay" unique="0" required="0">
 		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
+		<content type="second" default="3"  />
 		<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="port_as_ip" unique="0" required="0">
@@ -99,22 +75,26 @@
 	</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="3"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
+	<parameter name="powerman_path" unique="0" required="0">
+		<getopt mixed="--powerman-path=[path]" />
+		<shortdesc lang="en">Path to powerman 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="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/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml
index 59c650c..4cb82ce 100644
--- a/tests/data/metadata/fence_pve.xml
+++ b/tests/data/metadata/fence_pve.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -53,6 +53,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Node on which machine is located. (Optional, will be automatically determined)</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -80,32 +85,32 @@
 	</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="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="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 --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml
index 51810c9..1db4267 100644
--- a/tests/data/metadata/fence_raritan.xml
+++ b/tests/data/metadata/fence_raritan.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -48,6 +48,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -75,32 +80,32 @@
 	</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="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="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>
 	<parameter name="telnet_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_rcd_serial.xml b/tests/data/metadata/fence_rcd_serial.xml
index b5bbc5b..04e566f 100644
--- a/tests/data/metadata/fence_rcd_serial.xml
+++ b/tests/data/metadata/fence_rcd_serial.xml
@@ -21,6 +21,11 @@
 		<content type="string" default="/dev/ttyS0"  />
 		<shortdesc lang="en">Port of the serial device</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -43,32 +48,32 @@
 	</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="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="2"  />
+		<content type="second" default="2"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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 --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml
index 6c97fb4..431f760 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_rhevm.xml
@@ -25,7 +25,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -73,6 +73,11 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Reuse cookies for authentication</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -100,32 +105,32 @@
 	</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="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="1"  />
+		<content type="second" default="1"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</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>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml
index 150abba..01c5b16 100644
--- a/tests/data/metadata/fence_rsa.xml
+++ b/tests/data/metadata/fence_rsa.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string" default="-F /dev/null"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -90,12 +95,12 @@
 	</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="10"  />
+		<content type="second" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="port_as_ip" unique="0" required="0">
@@ -105,22 +110,22 @@
 	</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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml
index f698348..b20bb55 100644
--- a/tests/data/metadata/fence_rsb.xml
+++ b/tests/data/metadata/fence_rsb.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -90,12 +95,12 @@
 	</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="port_as_ip" unique="0" required="0">
@@ -105,22 +110,22 @@
 	</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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml
index 67bea31..a714f69 100644
--- a/tests/data/metadata/fence_sanbox2.xml
+++ b/tests/data/metadata/fence_sanbox2.xml
@@ -30,7 +30,7 @@
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -53,6 +53,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -80,32 +85,32 @@
 	</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="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="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>
 	<parameter name="telnet_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml
index 361f5e8..3d06c2a 100644
--- a/tests/data/metadata/fence_sbd.xml
+++ b/tests/data/metadata/fence_sbd.xml
@@ -26,6 +26,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -53,22 +58,22 @@
 	</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="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="sbd_path" unique="0" required="0">
@@ -77,12 +82,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 --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml
index 7b59df5..c4ccc97 100644
--- a/tests/data/metadata/fence_scsi.xml
+++ b/tests/data/metadata/fence_scsi.xml
@@ -34,6 +34,11 @@ The fence_scsi agent works by having each node in the cluster register a unique
 		<content type="string"  />
 		<shortdesc lang="en">Log output (stdout and stderr) to file</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -56,32 +61,32 @@ The fence_scsi agent works by having each node in the cluster register a unique
 	</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="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="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>
 	<parameter name="corosync-cmap_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_tripplite_snmp.xml b/tests/data/metadata/fence_tripplite_snmp.xml
index 3a61c89..f6b486c 100644
--- a/tests/data/metadata/fence_tripplite_snmp.xml
+++ b/tests/data/metadata/fence_tripplite_snmp.xml
@@ -31,7 +31,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -98,6 +98,11 @@
 		</content>
 		<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -125,32 +130,32 @@
 	</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="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="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>
 	<parameter name="snmpget_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_vbox.xml b/tests/data/metadata/fence_vbox.xml
index 4a357e5..5b86193 100644
--- a/tests/data/metadata/fence_vbox.xml
+++ b/tests/data/metadata/fence_vbox.xml
@@ -37,7 +37,7 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -70,6 +70,11 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
 		<content type="string" default="-t '/bin/bash -c "PS1=\\[EXPECT\\]#\  /bin/bash --noprofile --norc"'"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -97,12 +102,12 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
 	</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="missing_as_off" unique="0" required="0">
@@ -112,22 +117,22 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
 	</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="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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml
index 1d3a351..92b8038 100644
--- a/tests/data/metadata/fence_virsh.xml
+++ b/tests/data/metadata/fence_virsh.xml
@@ -37,7 +37,7 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -70,6 +70,11 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 		<content type="string" default="-t '/bin/bash -c "PS1=\\[EXPECT\\]#\  /bin/bash --noprofile --norc"'"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -97,12 +102,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 	</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="missing_as_off" unique="0" required="0">
@@ -112,22 +117,22 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 	</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="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>
 	<parameter name="sudo" unique="0" required="0">
diff --git a/tests/data/metadata/fence_vmware.xml b/tests/data/metadata/fence_vmware.xml
index ffc6f26..5791ab5 100644
--- a/tests/data/metadata/fence_vmware.xml
+++ b/tests/data/metadata/fence_vmware.xml
@@ -43,7 +43,7 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -86,6 +86,11 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
 		<content type="string"  />
 		<shortdesc lang="en">VMWare datacenter filter</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -108,12 +113,12 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
 	</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="port_as_ip" unique="0" required="0">
@@ -123,22 +128,22 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
 	</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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml
index 19012b6..c4f549d 100644
--- a/tests/data/metadata/fence_vmware_soap.xml
+++ b/tests/data/metadata/fence_vmware_soap.xml
@@ -27,7 +27,7 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -70,6 +70,11 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 		<content type="boolean"  />
 		<shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -97,32 +102,32 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 	</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="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="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>
 	<parameter name="gnutlscli_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml
index 695a3cc..664f6d5 100644
--- a/tests/data/metadata/fence_wti.xml
+++ b/tests/data/metadata/fence_wti.xml
@@ -35,7 +35,7 @@
 	</parameter>
 	<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="login" unique="0" required="0">
@@ -68,6 +68,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,32 +100,32 @@
 	</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="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="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>
 	<parameter name="ssh_path" unique="0" required="0">
diff --git a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml
index 2c8c30d..7623673 100644
--- a/tests/data/metadata/fence_xenapi.xml
+++ b/tests/data/metadata/fence_xenapi.xml
@@ -33,6 +33,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">URL to connect to XenServer on</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -60,32 +65,32 @@
 	</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="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="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 --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml
index d9bea72..4391d45 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -39,7 +39,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	</parameter>
 	<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="login" unique="0" required="1">
@@ -70,6 +70,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string"  />
 		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
 	</parameter>
+	<parameter name="quiet" unique="0" required="0">
+		<getopt mixed="-q, --quiet" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -97,12 +102,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	</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="missing_as_off" unique="0" required="0">
@@ -112,22 +117,22 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	</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="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="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>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-ha/fence-agents.git



More information about the Debian-HA-Commits mailing list