[Debian-ha-commits] [fence-agents] 01/03: Imported Upstream version 4.0.19

Adrian Vondendriesch discostu-guest at moszumanska.debian.org
Fri Jul 3 11:27:45 UTC 2015


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

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

commit df63057e76bdc41e56c9a44737a8ce04556c9434
Author: Adrian Vondendriesch <adrian.vondendriesch at credativ.de>
Date:   Fri Jul 3 08:40:25 2015 +0200

    Imported Upstream version 4.0.19
---
 .tarball-version                                   |   2 +-
 .version                                           |   2 +-
 ChangeLog                                          |  76 +++++++
 Makefile.in                                        |   1 +
 configure                                          |  65 +++++-
 configure.ac                                       |   2 +
 doc/Makefile.in                                    |   1 +
 fence/Makefile.in                                  |   1 +
 fence/agents/Makefile.in                           |   1 +
 fence/agents/alom/Makefile.in                      |   2 +
 fence/agents/amt/Makefile.in                       |   2 +
 fence/agents/apc/Makefile.in                       |   2 +
 fence/agents/apc_snmp/Makefile.in                  |   2 +
 fence/agents/bladecenter/Makefile.in               |   2 +
 fence/agents/brocade/Makefile.in                   |   2 +
 fence/agents/cisco_mds/Makefile.in                 |   2 +
 fence/agents/cisco_ucs/Makefile.in                 |   2 +
 fence/agents/compute/Makefile.am                   |  17 ++
 fence/agents/{bladecenter => compute}/Makefile.in  |  12 +-
 fence/agents/compute/fence_compute.py              | 248 +++++++++++++++++++++
 fence/agents/docker/Makefile.in                    |   2 +
 fence/agents/drac/Makefile.in                      |   2 +
 fence/agents/drac5/Makefile.in                     |   2 +
 fence/agents/dummy/Makefile.in                     |   2 +
 fence/agents/eaton_snmp/Makefile.in                |   2 +
 fence/agents/emerson/Makefile.in                   |   2 +
 fence/agents/eps/Makefile.in                       |   2 +
 fence/agents/hds_cb/Makefile.in                    |   2 +
 fence/agents/hpblade/Makefile.in                   |   2 +
 fence/agents/hpblade/fence_hpblade.py              |  89 ++++++--
 fence/agents/ibmblade/Makefile.in                  |   2 +
 fence/agents/ifmib/Makefile.in                     |   2 +
 fence/agents/ilo/Makefile.in                       |   2 +
 fence/agents/ilo_moonshot/Makefile.in              |   2 +
 fence/agents/ilo_mp/Makefile.in                    |   2 +
 fence/agents/ilo_ssh/Makefile.in                   |   2 +
 fence/agents/intelmodular/Makefile.in              |   2 +
 fence/agents/ipdu/Makefile.in                      |   2 +
 fence/agents/ipmilan/Makefile.in                   |   2 +
 fence/agents/kdump/Makefile.in                     |   1 +
 fence/agents/ldom/Makefile.in                      |   2 +
 fence/agents/lib/Makefile.in                       |   2 +
 fence/agents/lib/fencing.py.py                     |  11 +-
 fence/agents/lpar/Makefile.in                      |   2 +
 fence/agents/lpar/fence_lpar.py                    |   4 +-
 fence/agents/manual/Makefile.in                    |   1 +
 fence/agents/mpath/Makefile.in                     |   2 +
 fence/agents/mpath/fence_mpath.py                  |   4 +-
 fence/agents/netio/Makefile.in                     |   2 +
 fence/agents/ovh/Makefile.in                       |   2 +
 fence/agents/pve/Makefile.in                       |   2 +
 fence/agents/raritan/Makefile.in                   |   2 +
 fence/agents/rhevm/Makefile.in                     |   2 +
 fence/agents/rhevm/fence_rhevm.py                  |   5 +-
 fence/agents/rsa/Makefile.in                       |   2 +
 fence/agents/rsb/Makefile.in                       |   2 +
 fence/agents/sanbox2/Makefile.in                   |   2 +
 fence/agents/scsi/Makefile.in                      |   2 +
 fence/agents/virsh/Makefile.in                     |   2 +
 fence/agents/vmware/Makefile.in                    |   2 +
 fence/agents/vmware_soap/Makefile.in               |   2 +
 fence/agents/wti/Makefile.in                       |   2 +
 fence/agents/xenapi/Makefile.in                    |   2 +
 fence/agents/zvm/Makefile.in                       |   2 +
 fence/agents/zvm/fence_zvmip.py                    |  54 +++--
 make/fencebuild.mk                                 |   1 +
 .../{fence_hpblade.xml => fence_alom.xml.orig}     | 113 ++++------
 .../{fence_zvmip.xml => fence_amt.xml.orig}        | 108 ++++-----
 .../{fence_zvmip.xml => fence_compute.xml}         |  78 +++----
 .../{fence_zvmip.xml => fence_drac.xml.orig}       | 107 ++++-----
 tests/data/metadata/fence_dummy.xml.orig           |  91 ++++++++
 tests/data/metadata/fence_dummy.xml.rej            |  23 ++
 tests/data/metadata/fence_hpblade.xml              |   4 +-
 .../{fence_zvmip.xml => fence_idrac.xml.orig}      | 129 ++++++-----
 .../{fence_zvmip.xml => fence_ilo.xml.orig}        | 119 +++++-----
 .../{fence_zvmip.xml => fence_ilo2.xml.orig}       | 119 +++++-----
 .../{fence_zvmip.xml => fence_ilo3.xml.orig}       | 133 ++++++-----
 .../{fence_hpblade.xml => fence_ilo3_ssh.xml.orig} | 121 +++++-----
 .../{fence_zvmip.xml => fence_ilo4.xml.orig}       | 129 ++++++-----
 .../{fence_hpblade.xml => fence_ilo4_ssh.xml.orig} | 121 +++++-----
 .../{fence_hpblade.xml => fence_ilo_mp.xml.orig}   | 113 ++++------
 .../{fence_hpblade.xml => fence_ilo_ssh.xml.orig}  | 121 +++++-----
 .../{fence_zvmip.xml => fence_imm.xml.orig}        | 129 ++++++-----
 .../{fence_zvmip.xml => fence_ipmilan.xml.orig}    | 129 ++++++-----
 tests/data/metadata/fence_mpath.xml.orig           |  96 ++++++++
 .../{fence_hpblade.xml => fence_rsa.xml.orig}      | 117 ++++------
 .../{fence_hpblade.xml => fence_rsb.xml.orig}      | 113 ++++------
 tests/data/metadata/fence_zvmip.xml                |   5 +
 88 files changed, 1775 insertions(+), 1131 deletions(-)

diff --git a/.tarball-version b/.tarball-version
index 029696b..805226c 100644
--- a/.tarball-version
+++ b/.tarball-version
@@ -1 +1 @@
-4.0.18
+4.0.19
diff --git a/.version b/.version
index 029696b..805226c 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-4.0.18
+4.0.19
diff --git a/ChangeLog b/ChangeLog
index 3636c85..66640b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,79 @@
+2015-07-01  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	tests: Update XML metadata for changed agents
+
+2015-06-29  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_compute: Update version to be sync with out-of-tree tested versions
+
+2015-06-20  Fabio M. Di Nitto  <fdinitto at redhat.com>
+
+	fence_compute: add support for recording fencing operations in attrd
+	This is required to support multiple compute nodes failure at once
+	with controller node failures happening at the same time.
+
+	compute: add support for endpoint-type
+
+	fence_compute: fix on-shared-storage option parsing
+
+2015-06-18  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_zvmip: Update XML metadata with --missing-as-off
+
+	fence_zvmip: Change used API methods
+	* monitor -> check if authentication works instead of list
+	* status -> check individual plug only
+
+2015-06-17  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_hpblade: Add support for HP Integrity Superdome X (BL920s)
+
+2015-06-03  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fencing: Add verbose output also before command-prompt is found
+	Previously, it was not possible to get information about connection (or error messages)
+	before connection was established. After this patch, it is possible to see problems if
+	verbose output is enabled.
+
+2015-05-20  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #5 from credativ/fix-whitespace
+	Fix bad whitespace in lpar, mpath and zvmip agents
+
+	Merge pull request #6 from rtheys/rhevm
+	fence_rhevm fixes
+
+2015-05-19  Rik Theys  <Rik.Theys at esat.kuleuven.be>
+
+	fence_rhevm: Fill in outlet status in get_list
+	The outlet status was set to None for all outlets. This results in a
+	traceback in fencing.py as it tries to execute the upper() function on
+	the status. This is fine when the account that tries to access the data
+	is an admin account as the list will be empty. If a UserRole user is
+	used, the vm list is not empty and the error occurs.
+
+	Fill in the status of each vm in the outlet status to prevent the
+	traceback.
+
+	fence_rhevm: Add Filter header
+	oVirt users who only have the UserRole role don't have enough privileges
+	to query the vm list, unless the Filter header is set to true.
+
+	See rhbz#1102801 for details.
+
+2015-05-18  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_compute: Fix status if node is off
+
+2015-05-15  Christoph Berg  <myon at debian.org>
+
+	Fix bad whitespace in lpar, mpath and zvmip agents
+
+2015-05-14  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_compute: Fence agent for Nova compute machines
+	Author: Andrew Beekhof
+
 2015-05-11  Marek 'marx' Grac  <mgrac at redhat.com>
 
 	fencing: Add warning if line on STDIN is ignored because of missing value
diff --git a/Makefile.in b/Makefile.in
index 7af1816..9b57b0e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -256,6 +256,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/configure b/configure
index 9edf798..5081f83 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.18.
+# Generated by GNU Autoconf 2.69 for fence-agents 4.0.19.
 #
 # 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.18'
-PACKAGE_STRING='fence-agents 4.0.18'
+PACKAGE_VERSION='4.0.19'
+PACKAGE_STRING='fence-agents 4.0.19'
 PACKAGE_BUGREPORT='linux-cluster at redhat.com'
 PACKAGE_URL=''
 
@@ -645,6 +645,7 @@ CLUSTERVARRUN
 LOGDIR
 DEFAULT_CONFIG_FILE
 DEFAULT_CONFIG_DIR
+NOVA_PATH
 SNMPGET_PATH
 SNMPSET_PATH
 SNMPWALK_PATH
@@ -1350,7 +1351,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.18 to adapt to many kinds of systems.
+\`configure' configures fence-agents 4.0.19 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1420,7 +1421,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fence-agents 4.0.18:";;
+     short | recursive ) echo "Configuration of fence-agents 4.0.19:";;
    esac
   cat <<\_ACEOF
 
@@ -1537,7 +1538,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fence-agents configure 4.0.18
+fence-agents configure 4.0.19
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2135,7 +2136,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.18, which was
+It was created by fence-agents $as_me 4.0.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2999,7 +3000,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='fence-agents'
- VERSION='4.0.18'
+ VERSION='4.0.19'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17481,6 +17482,47 @@ $as_echo "no" >&6; }
 fi
 
 
+# Extract the first word of "nova", so it can be a program name with args.
+set dummy nova; 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_NOVA_PATH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $NOVA_PATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_NOVA_PATH="$NOVA_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_NOVA_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_NOVA_PATH" && ac_cv_path_NOVA_PATH="/usr/bin/nova"
+  ;;
+esac
+fi
+NOVA_PATH=$ac_cv_path_NOVA_PATH
+if test -n "$NOVA_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NOVA_PATH" >&5
+$as_echo "$NOVA_PATH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 
 ## do subst
 
@@ -17593,7 +17635,7 @@ CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS"
 LDFLAGS="$ENV_LDFLAGS"
 
 
-ac_config_files="$ac_config_files Makefile fence/Makefile fence/agents/Makefile fence/agents/alom/Makefile fence/agents/apc/Makefile fence/agents/apc_snmp/Makefile fence/agents/amt/Makefile fence/agents/bladecenter/Makefile fence/agents/brocade/Makefile fence/agents/cisco_mds/Makefile fence/agents/cisco_ucs/Makefile fence/agents/docker/Makefile fence/agents/drac/Makefile fence/agents/drac5/Makefile fence/agents/dummy/Makefile fence/agents/eaton_snmp/Makefile fence/agents/emerson/Makefile [...]
+ac_config_files="$ac_config_files Makefile fence/Makefile fence/agents/Makefile fence/agents/alom/Makefile fence/agents/apc/Makefile fence/agents/apc_snmp/Makefile fence/agents/amt/Makefile fence/agents/bladecenter/Makefile fence/agents/brocade/Makefile fence/agents/cisco_mds/Makefile fence/agents/cisco_ucs/Makefile fence/agents/compute/Makefile fence/agents/docker/Makefile fence/agents/drac/Makefile fence/agents/drac5/Makefile fence/agents/dummy/Makefile fence/agents/eaton_snmp/Makefile [...]
 
 
 cat >confcache <<\_ACEOF
@@ -18138,7 +18180,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.18, which was
+This file was extended by fence-agents $as_me 4.0.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18204,7 +18246,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.18
+fence-agents config.status 4.0.19
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -18722,6 +18764,7 @@ do
     "fence/agents/brocade/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/brocade/Makefile" ;;
     "fence/agents/cisco_mds/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/cisco_mds/Makefile" ;;
     "fence/agents/cisco_ucs/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/cisco_ucs/Makefile" ;;
+    "fence/agents/compute/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/compute/Makefile" ;;
     "fence/agents/docker/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/docker/Makefile" ;;
     "fence/agents/drac/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/drac/Makefile" ;;
     "fence/agents/drac5/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/drac5/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index ce2ca46..42e8ffc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -174,6 +174,7 @@ AC_PATH_PROG([SUDO_PATH], [sudo], [/usr/bin/sudo])
 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])
 
 ## do subst
 
@@ -274,6 +275,7 @@ AC_CONFIG_FILES([Makefile
 		 fence/agents/brocade/Makefile
 		 fence/agents/cisco_mds/Makefile
 		 fence/agents/cisco_ucs/Makefile
+		 fence/agents/compute/Makefile
 		 fence/agents/docker/Makefile
 		 fence/agents/drac/Makefile
 		 fence/agents/drac5/Makefile
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 52e62f1..8f64768 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -203,6 +203,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/fence/Makefile.in b/fence/Makefile.in
index 31a1787..e6dcc57 100644
--- a/fence/Makefile.in
+++ b/fence/Makefile.in
@@ -232,6 +232,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/fence/agents/Makefile.in b/fence/agents/Makefile.in
index bd91672..0aba870 100644
--- a/fence/agents/Makefile.in
+++ b/fence/agents/Makefile.in
@@ -232,6 +232,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/fence/agents/alom/Makefile.in b/fence/agents/alom/Makefile.in
index 1484d12..11a793d 100644
--- a/fence/agents/alom/Makefile.in
+++ b/fence/agents/alom/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/amt/Makefile.in b/fence/agents/amt/Makefile.in
index 0b1517c..363a147 100644
--- a/fence/agents/amt/Makefile.in
+++ b/fence/agents/amt/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/apc/Makefile.in b/fence/agents/apc/Makefile.in
index 8ea5ca6..9e7961c 100644
--- a/fence/agents/apc/Makefile.in
+++ b/fence/agents/apc/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/apc_snmp/Makefile.in b/fence/agents/apc_snmp/Makefile.in
index ebc9b96..ceb6fea 100644
--- a/fence/agents/apc_snmp/Makefile.in
+++ b/fence/agents/apc_snmp/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -603,6 +604,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/bladecenter/Makefile.in b/fence/agents/bladecenter/Makefile.in
index 3493422..34442a3 100644
--- a/fence/agents/bladecenter/Makefile.in
+++ b/fence/agents/bladecenter/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/brocade/Makefile.in b/fence/agents/brocade/Makefile.in
index d034620..3dd2a63 100644
--- a/fence/agents/brocade/Makefile.in
+++ b/fence/agents/brocade/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/cisco_mds/Makefile.in b/fence/agents/cisco_mds/Makefile.in
index 519065d..738abb4 100644
--- a/fence/agents/cisco_mds/Makefile.in
+++ b/fence/agents/cisco_mds/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/cisco_ucs/Makefile.in b/fence/agents/cisco_ucs/Makefile.in
index 3031f29..06e1c44 100644
--- a/fence/agents/cisco_ucs/Makefile.in
+++ b/fence/agents/cisco_ucs/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/compute/Makefile.am b/fence/agents/compute/Makefile.am
new file mode 100644
index 0000000..ab21272
--- /dev/null
+++ b/fence/agents/compute/Makefile.am
@@ -0,0 +1,17 @@
+MAINTAINERCLEANFILES	= Makefile.in
+
+TARGET			= fence_compute
+
+SRC			= $(TARGET).py
+
+EXTRA_DIST		= $(SRC)
+
+sbin_SCRIPTS		= $(TARGET)
+
+man_MANS		= $(TARGET).8
+
+FENCE_TEST_ARGS		= -l test -p test -n 1
+
+include $(top_srcdir)/make/fencebuild.mk
+include $(top_srcdir)/make/fenceman.mk
+include $(top_srcdir)/make/agentpycheck.mk
diff --git a/fence/agents/bladecenter/Makefile.in b/fence/agents/compute/Makefile.in
similarity index 98%
copy from fence/agents/bladecenter/Makefile.in
copy to fence/agents/compute/Makefile.in
index 3493422..98dd8de 100644
--- a/fence/agents/bladecenter/Makefile.in
+++ b/fence/agents/compute/Makefile.in
@@ -82,7 +82,7 @@ DIST_COMMON = $(top_srcdir)/make/fencebuild.mk \
 	$(top_srcdir)/make/fenceman.mk \
 	$(top_srcdir)/make/agentpycheck.mk $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am
-subdir = fence/agents/bladecenter
+subdir = fence/agents/compute
 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 \
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -290,12 +291,12 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 MAINTAINERCLEANFILES = Makefile.in
-TARGET = fence_bladecenter
+TARGET = fence_compute
 SRC = $(TARGET).py
 EXTRA_DIST = $(SRC)
 sbin_SCRIPTS = $(TARGET)
 man_MANS = $(TARGET).8
-FENCE_TEST_ARGS = -l test -p test -a test -n 1
+FENCE_TEST_ARGS = -l test -p test -n 1
 DATADIR := $(abs_top_srcdir)/tests/data/metadata
 AWK_VAL = 'BEGIN {store=-1} /name=\"store_path\"/ {store=2} {if (store!=0) {print}; store--}'
 all: all-am
@@ -310,9 +311,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/make/fencebuild.mk $
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fence/agents/bladecenter/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fence/agents/compute/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu fence/agents/bladecenter/Makefile
+	  $(AUTOMAKE) --gnu fence/agents/compute/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py
new file mode 100644
index 0000000..82d9c46
--- /dev/null
+++ b/fence/agents/compute/fence_compute.py
@@ -0,0 +1,248 @@
+#!/usr/bin/python -tt
+
+import sys
+import time
+import atexit
+import logging
+import requests.exceptions
+
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail_usage, is_executable, run_command, run_delay
+
+#BEGIN_VERSION_GENERATION
+RELEASE_VERSION="4.0.11"
+BUILD_DATE="(built Wed Nov 12 06:33:38 EST 2014)"
+REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
+#END_VERSION_GENERATION
+
+override_status = ""
+nova = None
+
+def get_power_status(_, options):
+	global override_status
+
+	status = "unknown"
+	logging.debug("get action: " + options["--action"])
+
+	if len(override_status):
+		logging.debug("Pretending we're " + override_status)
+		return override_status
+
+	if nova:
+		try:
+			services = nova.services.list(host=options["--plug"])
+
+			for service in services:
+				if service.binary == "nova-compute":
+					if service.state == "up":
+						status = "on"
+					elif service.state == "down":
+						status = "off"
+					else:
+						logging.debug("Unknown status detected from nova: " + service.state)
+					break
+		except ConnectionError as (err):
+			logging.warning("Nova connection failed: " + str(err))
+	return status
+
+# NOTE(sbauza); We mimic the host-evacuate module since it's only a contrib
+# module which is not stable
+def _server_evacuate(server, on_shared_storage):
+	success = True
+	error_message = ""
+	try:
+		nova.servers.evacuate(server=server['uuid'], on_shared_storage=on_shared_storage)
+	except Exception as e:
+		success = False
+		error_message = "Error while evacuating instance: %s" % e
+
+	return {
+		"server_uuid": server['uuid'],
+		"evacuate_accepted": success,
+		"error_message": error_message,
+		}
+
+def _host_evacuate(host, on_shared_storage):
+	hypervisors = nova.hypervisors.search(host, servers=True)
+	response = []
+	for hyper in hypervisors:
+		if hasattr(hyper, 'servers'):
+			for server in hyper.servers:
+				response.append(_server_evacuate(server, on_shared_storage))
+
+def set_attrd_status(host, status, options):
+	logging.debug("Setting fencing status for %s to %s" % (host, status))
+	run_command(options, "attrd_updater -p -n evacute -Q -N %s -v %s" % (host, status))
+
+def set_power_status(_, options):
+	global override_status
+
+	override_status = ""
+	logging.debug("set action: " + options["--action"])
+
+	if not nova:
+		return
+
+	if options["--action"] == "on":
+		if get_power_status(_, options) == "on":
+			nova.services.enable(options["--plug"], 'nova-compute')
+		else:
+			# Pretend we're 'on' so that the fencing library doesn't loop forever waiting for the node to boot
+			override_status = "on"
+		return
+
+	# need to wait for nova to update its internal status or we
+	# cannot call host-evacuate
+	while get_power_status(_, options) != "off":
+		# Loop forever if need be.
+		#
+		# Some callers (such as Pacemaker) will have a timer
+		# running and kill us if necessary
+		logging.debug("Waiting for nova to update it's internal state")
+		time.sleep(1)
+
+	if options["--no-shared-storage"] != "False":
+		on_shared_storage = False
+	else:
+		on_shared_storage = True
+
+	_host_evacuate(options["--plug"], on_shared_storage)
+	return
+
+def get_plugs_list(_, options):
+	result = {}
+
+	if nova:
+		hypervisors = nova.hypervisors.list()
+		for hypervisor in hypervisors:
+			longhost = hypervisor.hypervisor_hostname
+			if options["--action"] == "list" and options["--domain"] != "":
+				shorthost = longhost.replace("." + options["--domain"],
+                                                 "")
+				result[shorthost] = ("", None)
+			else:
+				result[longhost] = ("", None)
+	return result
+
+
+def define_new_opts():
+	all_opt["endpoint-type"] = {
+		"getopt" : "e:",
+		"longopt" : "endpoint-type",
+		"help" : "-e, --endpoint-type=[endpoint] Nova Endpoint type (publicURL, internalURL, adminURL)",
+		"required" : "0",
+		"shortdesc" : "Nova Endpoint type",
+		"default" : "internalURL",
+		"order": 1,
+	}
+	all_opt["tenant-name"] = {
+		"getopt" : "t:",
+		"longopt" : "tenant-name",
+		"help" : "-t, --tenant-name=[tenant]     Keystone Admin Tenant",
+		"required" : "0",
+		"shortdesc" : "Keystone Admin Tenant",
+		"default" : "",
+		"order": 1,
+	}
+	all_opt["auth-url"] = {
+		"getopt" : "k:",
+		"longopt" : "auth-url",
+		"help" : "-k, --auth-url=[tenant]        Keystone Admin Auth URL",
+		"required" : "0",
+		"shortdesc" : "Keystone Admin Auth URL",
+		"default" : "",
+		"order": 1,
+	}
+	all_opt["domain"] = {
+		"getopt" : "d:",
+		"longopt" : "domain",
+		"help" : "-d, --domain=[string]          DNS domain in which hosts live, useful when the cluster uses short names and nova uses FQDN",
+		"required" : "0",
+		"shortdesc" : "DNS domain in which hosts live",
+		"default" : "",
+		"order": 5,
+	}
+	all_opt["record-only"] = {
+		"getopt" : "",
+		"longopt" : "record-only",
+		"help" : "--record-only                  Record the target as needing evacuation but as yet do not intiate it",
+		"required" : "0",
+		"shortdesc" : "Only record the target as needing evacuation",
+		"default" : "False",
+		"order": 5,
+	}
+	all_opt["no-shared-storage"] = {
+		"getopt" : "",
+		"longopt" : "no-shared-storage",
+		"help" : "--no-shared-storage            Disable functionality for shared storage",
+		"required" : "0",
+		"shortdesc" : "Disable functionality for dealing with shared storage",
+		"default" : "False",
+		"order": 5,
+	}
+
+def main():
+	global override_status
+	global nova
+	atexit.register(atexit_handler)
+
+	device_opt = ["login", "passwd", "tenant-name", "auth-url",
+		"no_login", "no_password", "port", "domain", "no-shared-storage", "endpoint-type",
+		"record-only"]
+	define_new_opts()
+	all_opt["shell_timeout"]["default"] = "180"
+
+	options = check_input(device_opt, process_input(device_opt))
+
+	docs = {}
+	docs["shortdesc"] = "Fence agent for nova compute nodes"
+	docs["longdesc"] = "fence_nova_host is a Nova fencing notification agent"
+	docs["vendorurl"] = ""
+
+	show_docs(options, docs)
+
+	run_delay(options)
+
+	try:
+		from novaclient import client as nova_client
+	except ImportError:
+		fail_usage("nova not found or not accessible")
+
+	# Potentially we should make this a pacemaker feature
+	if options["--action"] != "list" and options["--domain"] != "" and options.has_key("--plug"):
+		options["--plug"] = options["--plug"] + "." + options["--domain"]
+
+	if options["--record-only"] != "False":
+		if options["--action"] == "on":
+			set_attrd_status(options["--plug"], "no", options)
+			sys.exit(0)
+
+		elif options["--action"] in ["off", "reboot"]:
+			set_attrd_status(options["--plug"], "yes", options)
+			sys.exit(0)
+
+		elif options["--action"] in ["status", "monitor"]:
+			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"],
+		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"
+
+	if options["--action"] == "on":
+		# Pretend we're 'off' so that the fencing library will always call set_power_status(on)
+		override_status = "off"
+
+	result = fence_action(None, options, set_power_status, get_power_status, get_plugs_list, None)
+	sys.exit(result)
+
+if __name__ == "__main__":
+	main()
diff --git a/fence/agents/docker/Makefile.in b/fence/agents/docker/Makefile.in
index 995a62a..ce3665c 100644
--- a/fence/agents/docker/Makefile.in
+++ b/fence/agents/docker/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/drac/Makefile.in b/fence/agents/drac/Makefile.in
index 9e1ab92..27b1704 100644
--- a/fence/agents/drac/Makefile.in
+++ b/fence/agents/drac/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/drac5/Makefile.in b/fence/agents/drac5/Makefile.in
index d8e8813..aaf2af6 100644
--- a/fence/agents/drac5/Makefile.in
+++ b/fence/agents/drac5/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/dummy/Makefile.in b/fence/agents/dummy/Makefile.in
index aa42d9f..aa6efc8 100644
--- a/fence/agents/dummy/Makefile.in
+++ b/fence/agents/dummy/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -598,6 +599,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/eaton_snmp/Makefile.in b/fence/agents/eaton_snmp/Makefile.in
index bcf96f9..7c0f398 100644
--- a/fence/agents/eaton_snmp/Makefile.in
+++ b/fence/agents/eaton_snmp/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -601,6 +602,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/emerson/Makefile.in b/fence/agents/emerson/Makefile.in
index 1eb982b..c7f8c7f 100644
--- a/fence/agents/emerson/Makefile.in
+++ b/fence/agents/emerson/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/eps/Makefile.in b/fence/agents/eps/Makefile.in
index 5fcb35b..9d2b54f 100644
--- a/fence/agents/eps/Makefile.in
+++ b/fence/agents/eps/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/hds_cb/Makefile.in b/fence/agents/hds_cb/Makefile.in
index bb10aff..404cb5a 100644
--- a/fence/agents/hds_cb/Makefile.in
+++ b/fence/agents/hds_cb/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/hpblade/Makefile.in b/fence/agents/hpblade/Makefile.in
index b3d48ab..67b950f 100644
--- a/fence/agents/hpblade/Makefile.in
+++ b/fence/agents/hpblade/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/hpblade/fence_hpblade.py b/fence/agents/hpblade/fence_hpblade.py
index e73a6c3..d527402 100644
--- a/fence/agents/hpblade/fence_hpblade.py
+++ b/fence/agents/hpblade/fence_hpblade.py
@@ -3,31 +3,62 @@
 #####
 ##
 ## The Following Agent Has Been Tested On:
-##  * BladeSystem c7000 Enclosure
+##  * HP BladeSystem c7000 Enclosure
+##  * HP Integrity Superdome X (BL920s)
 #####
 
 import sys, re
+import pexpect, exceptions
 import atexit
 sys.path.append("@FENCEAGENTSLIBDIR@")
 from fencing import *
 from fencing import fail, EC_STATUS
 
 #BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Bladecenter Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
+RELEASE_VERSION="4.0.11-HP"
+BUILD_DATE="(built Mon Mar 30 08:31:24 EDT 2015)"
+REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
 #END_VERSION_GENERATION
 
+def get_enclosure_type(conn, options):
+	conn.send_eol("show enclosure info")
+	conn.log_expect(options, options["--command-prompt"], int(options["--shell-timeout"]))
+
+	type_re=re.compile(r"^\s*Enclosure Type: (\w+)(.*?)\s*$")
+	enclosure="unknown"
+	for line in conn.before.splitlines():
+		res = type_re.search(line)
+		if res != None:
+			enclosure=res.group(1)
+
+	if enclosure == "unknown":
+		fail(EC_GENERIC_ERROR)
+
+	return enclosure.lower().strip()
+
 def get_power_status(conn, options):
-	conn.send_eol("show server status " + options["--plug"])
-	conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
+	if options["enc_type"] == "superdome":
+		cmd_send = "parstatus -M -p " + options["--plug"]
+		powrestr = "^partition:\\d\\s+:\\w+\\s+/(\\w+)\\s.*$"
+	else:
+		cmd_send = "show server status " + options["--plug"]
+		powrestr = "^\\s*Power: (.*?)\\s*$"
+
+	conn.send_eol(cmd_send)
+	conn.log_expect(options, options["--command-prompt"], int(options["--shell-timeout"]))
 
-	power_re = re.compile(r"^\s*Power: (.*?)\s*$")
+	power_re = re.compile(powrestr)
 	status = "unknown"
 	for line in conn.before.splitlines():
 		res = power_re.search(line)
 		if res != None:
-			status = res.group(1)
+			if options["enc_type"] == "superdome":
+				if res.group(1) == "DOWN":
+					status = "off"
+				else:
+					status = "on"
+			else:
+				status = res.group(1)
 
 	if status == "unknown":
 		if options.has_key("--missing-as-off"):
@@ -38,23 +69,37 @@ def get_power_status(conn, options):
 	return status.lower().strip()
 
 def set_power_status(conn, options):
+	if options["enc_type"] == "superdome":
+		dev="partition "
+	else:
+		dev="server "
+
 	if options["--action"] == "on":
-		conn.send_eol("poweron server " + options["--plug"])
+		conn.send_eol("poweron " + dev + options["--plug"])
 	elif options["--action"] == "off":
-		conn.send_eol("poweroff server " + options["--plug"] + " force")
-	conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
+		conn.send_eol("poweroff " + dev + options["--plug"] + " force")
+	conn.log_expect(options, options["--command-prompt"], int(options["--shell-timeout"]))
 
-def get_blades_list(conn, options):
+def get_instances_list(conn, options):
 	outlets = {}
+	if options["enc_type"] == "superdome":
+		cmd_send = "parstatus -P -M"
+		listrestr = "^partition:(\\d+)\\s+:\\w+\\s+/(\\w+)\\s+:OK.*?:(\\w+)\\s*$"
+	else:
+		cmd_send = "show server list"
+		listrestr = "^\\s*(\\d+)\\s+(.*?)\\s+(.*?)\\s+OK\\s+(.*?)\\s+(.*?)\\s*$"
 
-	conn.send_eol("show server list")
-	conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
+	conn.send_eol(cmd_send)
+	conn.log_expect(options, options["--command-prompt"], int(options["--shell-timeout"]))
 
-	list_re = re.compile(r"^\s*(.*?)\s+(.*?)\s+(.*?)\s+OK\s+(.*?)\s+(.*?)\s*$")
+	list_re = re.compile(listrestr)
 	for line in conn.before.splitlines():
 		res = list_re.search(line)
 		if res != None:
-			outlets[res.group(1)] = (res.group(2), res.group(4).lower())
+			if options["enc_type"] == "superdome":
+				outlets[res.group(1)] = (res.group(3), res.group(2).lower())
+			else:
+				outlets[res.group(1)] = (res.group(2), res.group(4).lower())
 
 	return outlets
 
@@ -65,14 +110,17 @@ def main():
 	atexit.register(atexit_handler)
 
 	all_opt["cmd_prompt"]["default"] = ["c7000oa>"]
+	all_opt["login_timeout"]["default"] = "10"
 
 	options = check_input(device_opt, process_input(device_opt))
 
 	docs = {}
 	docs["shortdesc"] = "Fence agent for HP BladeSystem"
 	docs["longdesc"] = "fence_hpblade is an I/O Fencing agent \
-which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh \
-and uses the command line interface to power on and off blades."
+which can be used with HP BladeSystem and HP Integrity Superdome X. \
+It logs into the onboard administrator of an enclosure via telnet or \
+ssh and uses the command line interface to power blades or partitions \
+on or off."
 	docs["vendorurl"] = "http://www.hp.com"
 	show_docs(options, docs)
 
@@ -81,7 +129,10 @@ and uses the command line interface to power on and off blades."
 	######
 	options["eol"] = "\n"
 	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, get_blades_list)
+
+	options["enc_type"] = get_enclosure_type(conn, options)
+
+	result = fence_action(conn, options, set_power_status, get_power_status, get_instances_list)
 	fence_logout(conn, "exit")
 	sys.exit(result)
 
diff --git a/fence/agents/ibmblade/Makefile.in b/fence/agents/ibmblade/Makefile.in
index a4c69b0..b44bf50 100644
--- a/fence/agents/ibmblade/Makefile.in
+++ b/fence/agents/ibmblade/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ifmib/Makefile.in b/fence/agents/ifmib/Makefile.in
index 8a00271..a3a66c8 100644
--- a/fence/agents/ifmib/Makefile.in
+++ b/fence/agents/ifmib/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -601,6 +602,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ilo/Makefile.in b/fence/agents/ilo/Makefile.in
index c025a3c..e29a680 100644
--- a/fence/agents/ilo/Makefile.in
+++ b/fence/agents/ilo/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -603,6 +604,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ilo_moonshot/Makefile.in b/fence/agents/ilo_moonshot/Makefile.in
index 3f7313a..8538fb5 100644
--- a/fence/agents/ilo_moonshot/Makefile.in
+++ b/fence/agents/ilo_moonshot/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ilo_mp/Makefile.in b/fence/agents/ilo_mp/Makefile.in
index 1cb23a4..31403c5 100644
--- a/fence/agents/ilo_mp/Makefile.in
+++ b/fence/agents/ilo_mp/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ilo_ssh/Makefile.in b/fence/agents/ilo_ssh/Makefile.in
index ff9a908..a64e9ee 100644
--- a/fence/agents/ilo_ssh/Makefile.in
+++ b/fence/agents/ilo_ssh/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -603,6 +604,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/intelmodular/Makefile.in b/fence/agents/intelmodular/Makefile.in
index cf1f955..d163a8f 100644
--- a/fence/agents/intelmodular/Makefile.in
+++ b/fence/agents/intelmodular/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ipdu/Makefile.in b/fence/agents/ipdu/Makefile.in
index b4da785..e7d3565 100644
--- a/fence/agents/ipdu/Makefile.in
+++ b/fence/agents/ipdu/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ipmilan/Makefile.in b/fence/agents/ipmilan/Makefile.in
index 22dd931..4c9bfaf 100644
--- a/fence/agents/ipmilan/Makefile.in
+++ b/fence/agents/ipmilan/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -603,6 +604,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/kdump/Makefile.in b/fence/agents/kdump/Makefile.in
index 4538129..0251b09 100644
--- a/fence/agents/kdump/Makefile.in
+++ b/fence/agents/kdump/Makefile.in
@@ -270,6 +270,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/fence/agents/ldom/Makefile.in b/fence/agents/ldom/Makefile.in
index a302f24..f407632 100644
--- a/fence/agents/ldom/Makefile.in
+++ b/fence/agents/ldom/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/lib/Makefile.in b/fence/agents/lib/Makefile.in
index cdee66f..e167097 100644
--- a/fence/agents/lib/Makefile.in
+++ b/fence/agents/lib/Makefile.in
@@ -204,6 +204,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -557,6 +558,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 1c8f4ea..d95308b 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -759,10 +759,11 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
 				## None as soon as all existing agent will support this operation
 				print "NOTICE: List option is not working on this device yet"
 			else:
-				original_action = options["--action"]
+				options["--original-action"] = options["--action"]
 				options["--action"] = "list"
 				outlets = get_outlet_list(connection, options)
-				options["--action"] = original_action
+				options["--action"] = options["--original-action"]
+				del options["--original-action"]
 
 				## keys can be numbers (port numbers) or strings (names of VM, UUID)
 				for outlet_id in outlets.keys():
@@ -865,9 +866,11 @@ def fence_login(options, re_login_string=r"(login\s*: )|((?!Last )Login Name:  )
 			conn = _login_ssh_with_identity_file(options)
 		else:
 			conn = _login_telnet(options, re_login_string)
-	except pexpect.EOF:
+	except pexpect.EOF, exception:
+		logging.debug("%s", str(exception))
 		fail(EC_LOGIN_DENIED)
-	except pexpect.TIMEOUT:
+	except pexpect.TIMEOUT, exception:
+		logging.debug("%s", str(exception))
 		fail(EC_LOGIN_DENIED)
 	return conn
 
diff --git a/fence/agents/lpar/Makefile.in b/fence/agents/lpar/Makefile.in
index 5491c3e..3832c6d 100644
--- a/fence/agents/lpar/Makefile.in
+++ b/fence/agents/lpar/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
index c1bf7d7..6676e1c 100644
--- a/fence/agents/lpar/fence_lpar.py
+++ b/fence/agents/lpar/fence_lpar.py
@@ -144,8 +144,8 @@ def main():
 	if not options.has_key("--managed"):
 		fail_usage("Failed: You have to enter name of managed system")
 
-        if options["--action"] == "validate-all":
-                sys.exit(0)
+	if options["--action"] == "validate-all":
+		sys.exit(0)
 
 	##
 	## Operate the fencing device
diff --git a/fence/agents/manual/Makefile.in b/fence/agents/manual/Makefile.in
index 3379d03..85a3dc0 100644
--- a/fence/agents/manual/Makefile.in
+++ b/fence/agents/manual/Makefile.in
@@ -206,6 +206,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
diff --git a/fence/agents/mpath/Makefile.in b/fence/agents/mpath/Makefile.in
index 7bfba3f..06a0ad5 100644
--- a/fence/agents/mpath/Makefile.in
+++ b/fence/agents/mpath/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/mpath/fence_mpath.py b/fence/agents/mpath/fence_mpath.py
index b2464b0..94c3163 100644
--- a/fence/agents/mpath/fence_mpath.py
+++ b/fence/agents/mpath/fence_mpath.py
@@ -231,8 +231,8 @@ longer be able to write to the device(s). A manual reboot is required."
 	if not "--key" in options:
 		fail_usage("Failed: key is required")
 
-        if options["--action"] == "validate-all":
-                sys.exit(0)
+	if options["--action"] == "validate-all":
+		sys.exit(0)
 
 	options["devices"] = options["--devices"].split(",")
 
diff --git a/fence/agents/netio/Makefile.in b/fence/agents/netio/Makefile.in
index e4f461b..4b62d77 100644
--- a/fence/agents/netio/Makefile.in
+++ b/fence/agents/netio/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/ovh/Makefile.in b/fence/agents/ovh/Makefile.in
index 1a3fc46..22b924b 100644
--- a/fence/agents/ovh/Makefile.in
+++ b/fence/agents/ovh/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/pve/Makefile.in b/fence/agents/pve/Makefile.in
index 3189125..525340b 100644
--- a/fence/agents/pve/Makefile.in
+++ b/fence/agents/pve/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/raritan/Makefile.in b/fence/agents/raritan/Makefile.in
index 82c63e6..e7df695 100644
--- a/fence/agents/raritan/Makefile.in
+++ b/fence/agents/raritan/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/rhevm/Makefile.in b/fence/agents/rhevm/Makefile.in
index 3432dd8..232b6f9 100644
--- a/fence/agents/rhevm/Makefile.in
+++ b/fence/agents/rhevm/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/rhevm/fence_rhevm.py b/fence/agents/rhevm/fence_rhevm.py
index 427bed5..3926f3b 100644
--- a/fence/agents/rhevm/fence_rhevm.py
+++ b/fence/agents/rhevm/fence_rhevm.py
@@ -66,7 +66,8 @@ def get_list(conn, options):
 		lines = res.split("<vm ")
 		for i in range(1, len(lines)):
 			name = RE_GET_NAME.search(lines[i]).group(1)
-			outlets[name] = ("", None)
+			status = RE_STATUS.search(lines[i]).group(1)
+			outlets[name] = ("", status)
 	except AttributeError:
 		return {}
 	except IndexError:
@@ -87,7 +88,7 @@ def send_command(opt, command, method="GET"):
 	conn = pycurl.Curl()
 	web_buffer = StringIO.StringIO()
 	conn.setopt(pycurl.URL, url)
-	conn.setopt(pycurl.HTTPHEADER, ["Content-type: application/xml", "Accept: application/xml", "Prefer: persistent-auth"])
+	conn.setopt(pycurl.HTTPHEADER, ["Content-type: application/xml", "Accept: application/xml", "Prefer: persistent-auth", "Filter: true"])
 
 	if opt.has_key("cookie"):
 		conn.setopt(pycurl.COOKIE, opt["cookie"])
diff --git a/fence/agents/rsa/Makefile.in b/fence/agents/rsa/Makefile.in
index 2ef6716..41a6668 100644
--- a/fence/agents/rsa/Makefile.in
+++ b/fence/agents/rsa/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/rsb/Makefile.in b/fence/agents/rsb/Makefile.in
index 768dd4b..8b0de38 100644
--- a/fence/agents/rsb/Makefile.in
+++ b/fence/agents/rsb/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/sanbox2/Makefile.in b/fence/agents/sanbox2/Makefile.in
index dcb56f3..557802b 100644
--- a/fence/agents/sanbox2/Makefile.in
+++ b/fence/agents/sanbox2/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/scsi/Makefile.in b/fence/agents/scsi/Makefile.in
index e29e8ca..b9c2874 100644
--- a/fence/agents/scsi/Makefile.in
+++ b/fence/agents/scsi/Makefile.in
@@ -209,6 +209,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -641,6 +642,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/virsh/Makefile.in b/fence/agents/virsh/Makefile.in
index 296a740..36ce50c 100644
--- a/fence/agents/virsh/Makefile.in
+++ b/fence/agents/virsh/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/vmware/Makefile.in b/fence/agents/vmware/Makefile.in
index 8c302f9..35d8592 100644
--- a/fence/agents/vmware/Makefile.in
+++ b/fence/agents/vmware/Makefile.in
@@ -207,6 +207,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -596,6 +597,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/vmware_soap/Makefile.in b/fence/agents/vmware_soap/Makefile.in
index d5534ad..3c35d3e 100644
--- a/fence/agents/vmware_soap/Makefile.in
+++ b/fence/agents/vmware_soap/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/wti/Makefile.in b/fence/agents/wti/Makefile.in
index b60574a..ebba7df 100644
--- a/fence/agents/wti/Makefile.in
+++ b/fence/agents/wti/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/xenapi/Makefile.in b/fence/agents/xenapi/Makefile.in
index 3ae975f..8417fcb 100644
--- a/fence/agents/xenapi/Makefile.in
+++ b/fence/agents/xenapi/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/zvm/Makefile.in b/fence/agents/zvm/Makefile.in
index 10e9e43..2740b12 100644
--- a/fence/agents/zvm/Makefile.in
+++ b/fence/agents/zvm/Makefile.in
@@ -208,6 +208,7 @@ MKDIR_P = @MKDIR_P@
 MPATH_PATH = @MPATH_PATH@
 NM = @NM@
 NMEDIT = @NMEDIT@
+NOVA_PATH = @NOVA_PATH@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTOOL = @OTOOL@
@@ -599,6 +600,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/fence/agents/zvm/fence_zvmip.py b/fence/agents/zvm/fence_zvmip.py
index 6d09b68..08c7ae7 100644
--- a/fence/agents/zvm/fence_zvmip.py
+++ b/fence/agents/zvm/fence_zvmip.py
@@ -62,24 +62,39 @@ def prepare_smapi_command(options, smapi_function, additional_args):
 def get_power_status(conn, options):
 	del conn
 
-	# '*' = list all active images
+	if options.get("--original-action", None) == "monitor":
+		(return_code, reason_code, images_active) = \
+			get_list_of_images(options, "Check_Authentication", None)
+
+		logging.debug("Check_Authenticate (%d,%d)", return_code, reason_code)
+		if return_code == 0:
+			return {}
+		else:
+			fail(EC_LOGIN_DENIED)
+
+	if options["--action"] == "list":
+		# '*' = list all active images
+		options["--plug"] = "*"
+
 	(return_code, reason_code, images_active) = \
-			get_list_of_images(options, "Image_Status_Query", "*")
+			get_list_of_images(options, "Image_Status_Query", options["--plug"])
 	logging.debug("Image_Status_Query results are (%d,%d)", return_code, reason_code)
-	(return_code, reason_code, images_defined) = \
+
+	if not options["--action"] == "list":
+		if (return_code == 0) and (reason_code == 0):
+			return "on"
+		elif (return_code == 0) and (reason_code == 12):
+			# We are running always with --missing-as-off because we can not check if image
+			# is defined or not (look at rhbz#1188750)
+			return "off"
+		else:
+			return "unknown"
+	else:
+		(return_code, reason_code, images_defined) = \
 			get_list_of_images(options, "Image_Name_Query_DM", options["--username"])
-	logging.debug("Image_Name_Query_DM results are (%d,%d)", return_code, reason_code)
+		logging.debug("Image_Name_Query_DM results are (%d,%d)", return_code, reason_code)
 
-	if ["list", "monitor"].count(options["--action"]) == 1:
 		return dict([(i, ("", "on" if i in images_active else "off")) for i in images_defined])
-	else:
-		status = "error"
-		if options["--plug"].upper() in images_defined:
-			if options["--plug"].upper() in images_active:
-				status = "on"
-			else:
-				status = "off"
-		return status
 
 def set_power_status(conn, options):
 	conn = open_socket(options)
@@ -101,7 +116,11 @@ def set_power_status(conn, options):
 def get_list_of_images(options, command, data_as_plug):
 	conn = open_socket(options)
 
-	packet = prepare_smapi_command(options, command, [data_as_plug])
+	if data_as_plug is None:
+		packet = prepare_smapi_command(options, command, [])
+	else:
+		packet = prepare_smapi_command(options, command, [data_as_plug])
+
 	conn.send(packet)
 
 	request_id = struct.unpack("!i", conn.recv(INT4))[0]
@@ -133,19 +152,20 @@ def get_list_of_images(options, command, data_as_plug):
 	return (return_code, reason_code, images)
 
 def main():
-	device_opt = ["ipaddr", "login", "passwd", "port", "method"]
+	device_opt = ["ipaddr", "login", "passwd", "port", "method", "missing_as_off"]
 
 	atexit.register(atexit_handler)
 
 	all_opt["ipport"]["default"] = "44444"
 	all_opt["shell_timeout"]["default"] = "5.0"
+	all_opt["missing_as_off"]["default"] = "1"
 	options = check_input(device_opt, process_input(device_opt), other_conditions=True)
 
 	if len(options.get("--plug", "")) > 8:
 		fail_usage("Failed: Name of image can not be longer than 8 characters")
 
-        if options["--action"] == "validate-all":
-                sys.exit(0)
+	if options["--action"] == "validate-all":
+		sys.exit(0)
 
 	docs = {}
 	docs["shortdesc"] = "Fence agent for use with z/VM Virtual Machines"
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
index 3a035e9..9b39484 100644
--- a/make/fencebuild.mk
+++ b/make/fencebuild.mk
@@ -24,6 +24,7 @@ $(TARGET): $(SRC)
 		-e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
 		-e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
 		-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
+		-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
 	> $@
 
 	if [ 0 -eq `echo "$(SRC)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_alom.xml.orig
similarity index 68%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_alom.xml.orig
index 9d0e412..6bdefb7 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_alom.xml.orig
@@ -1,73 +1,68 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
-<vendor-url>http://www.hp.com</vendor-url>
+<resource-agent name="fence_alom" shortdesc="Fence agent for Sun ALOM" >
+<longdesc>fence_alom is an I/O Fencing agent which can be used with ALOM connected machines.</longdesc>
+<vendor-url>http://www.sun.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['sc\\>\\ ']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +83,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +113,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +120,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_amt.xml.orig
similarity index 67%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_amt.xml.orig
index b46ce10..b967b68 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_amt.xml.orig
@@ -1,31 +1,12 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_amt" shortdesc="Fence agent for AMT" >
+<longdesc>fence_amt is an I/O Fencing agent which can be used with Intel AMT. This agent calls support software amttool(http://www.kraxel.org/cgit/amtterm/).</longdesc>
+<vendor-url>http://www.intel.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="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,17 +16,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<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="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+	<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="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -53,22 +29,33 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<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 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="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+	<parameter 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="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +77,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,21 +92,31 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
+	<parameter name="amttool_path" unique="0" required="0">
+		<getopt mixed="--amttool-path=[path]" />
+		<content type="string" default="/usr/bin/amttool"  />
+		<shortdesc lang="en">Path to amttool binary</shortdesc>
+	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +124,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_compute.xml
similarity index 64%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_compute.xml
index b46ce10..de71c56 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_compute.xml
@@ -1,60 +1,28 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_compute" shortdesc="Fence agent for nova compute nodes" >
+<longdesc>fence_nova_host is a Nova fencing notification agent</longdesc>
+<vendor-url></vendor-url>
 <parameters>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
 		<shortdesc lang="en">Fencing action</shortdesc>
 	</parameter>
-	<parameter name="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]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+	<parameter name="auth-url" unique="0" required="0">
+		<getopt mixed="-k, --auth-url=[tenant]" />
+		<content type="string" default=""  />
+		<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="endpoint-type" unique="0" required="0">
+		<getopt mixed="-e, --endpoint-type=[endpoint]" />
+		<content type="string" default="internalURL"  />
+		<shortdesc lang="en">Nova Endpoint type</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
+	<parameter name="login" unique="0" required="0">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login name</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"  />
@@ -70,6 +38,26 @@ 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="tenant-name" unique="0" required="0">
+		<getopt mixed="-t, --tenant-name=[tenant]" />
+		<content type="string" default=""  />
+		<shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+	</parameter>
+	<parameter name="domain" unique="0" required="0">
+		<getopt mixed="-d, --domain=[string]" />
+		<content type="string" default=""  />
+		<shortdesc lang="en">DNS domain in which hosts live</shortdesc>
+	</parameter>
+	<parameter name="no-shared-storage" unique="0" required="0">
+		<getopt mixed="--no-shared-storage" />
+		<content type="boolean" default="False"  />
+		<shortdesc lang="en">Disable functionality for dealing with shared storage</shortdesc>
+	</parameter>
+	<parameter name="record-only" unique="0" required="0">
+		<getopt mixed="--record-only" />
+		<content type="boolean" default="False"  />
+		<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -117,7 +105,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="180"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_drac.xml.orig
similarity index 65%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_drac.xml.orig
index b46ce10..d2871c5 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_drac.xml.orig
@@ -1,74 +1,52 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_drac" shortdesc="I/O Fencing agent for Dell DRAC IV" >
+<longdesc>fence_drac is an I/O Fencing agent which can be used with the Dell Remote Access Card (DRAC). This card provides remote access to controlling power to a server. It logs into the DRAC through the telnet interface of the card. By default, the telnet interface is not enabled. To enable the interface, you will need to use the racadm command in the racser-devel rpm available from Dell.  To enable telnet on the DRAC: [root]# racadm config -g cfgSerial -o cfgSerialTelnetEnable 1 [root [...]
+<vendor-url>http://www.dell.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</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 name="cmd_prompt" unique="0" required="0">
+		<getopt mixed="-c, --command-prompt=[prompt]" />
+		<content type="string" default="['\\[username\\]# ']"  />
+		<shortdesc lang="en">Force Python regex for command prompt</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="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</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>
+		<shortdesc lang="en">Login Name</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,21 +68,6 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</parameter>
-	<parameter name="login_timeout" unique="0" required="0">
-		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
@@ -117,9 +80,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
@@ -132,9 +105,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_dummy.xml.orig b/tests/data/metadata/fence_dummy.xml.orig
new file mode 100644
index 0000000..61c964e
--- /dev/null
+++ b/tests/data/metadata/fence_dummy.xml.orig
@@ -0,0 +1,91 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_dummy" shortdesc="Dummy fence agent" >
+<longdesc>fence_dummy</longdesc>
+<vendor-url>http://www.example.com</vendor-url>
+<parameters>
+	<parameter name="status_file" unique="0" required="0">
+		<getopt mixed="--status-file=[file]" />
+		<content type="string" default="/tmp/fence_dummy.status"  />
+		<shortdesc lang="en">File with status</shortdesc>
+	</parameter>
+	<parameter name="random_sleep_range" unique="0" required="0">
+		<getopt mixed="--random_sleep_range=[seconds]" />
+		<content type="string"  />
+		<shortdesc lang="en">Issue a sleep between 1 and X seconds. Used for testing.</shortdesc>
+	</parameter>
+	<parameter name="type" unique="0" required="0">
+		<getopt mixed="--type=[type]" />
+		<content type="string" default="file"  />
+		<shortdesc lang="en">Type of the dummy fence agent</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="verbose" unique="0" required="0">
+		<getopt mixed="-v, --verbose" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Verbose mode</shortdesc>
+	</parameter>
+	<parameter name="debug" unique="0" required="0">
+		<getopt mixed="-D, --debug-file=[debugfile]" />
+		<content type="string"  />
+		<shortdesc lang="en">Write debug information to given file</shortdesc>
+	</parameter>
+	<parameter name="version" unique="0" required="0">
+		<getopt mixed="-V, --version" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Display version information and exit</shortdesc>
+	</parameter>
+	<parameter name="help" unique="0" required="0">
+		<getopt mixed="-h, --help" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Display help and exit</shortdesc>
+	</parameter>
+	<parameter name="separator" unique="0" required="0">
+		<getopt mixed="-C, --separator=[char]" />
+		<content type="string" default=","  />
+		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
+	</parameter>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	</parameter>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="power_timeout" unique="0" required="0">
+		<getopt mixed="--power-timeout=[seconds]" />
+		<content type="string" default="20"  />
+		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	</parameter>
+	<parameter name="retry_on" unique="0" required="0">
+		<getopt mixed="--retry-on=[attempts]" />
+		<content type="string" default="1"  />
+		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+	</parameter>
+</parameters>
+<actions>
+	<action name="on" automatic="0"/>
+	<action name="off" />
+	<action name="reboot" />
+	<action name="status" />
+	<action name="list" />
+	<action name="monitor" />
+	<action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_dummy.xml.rej b/tests/data/metadata/fence_dummy.xml.rej
new file mode 100644
index 0000000..8dae239
--- /dev/null
+++ b/tests/data/metadata/fence_dummy.xml.rej
@@ -0,0 +1,23 @@
+--- tests/data/metadata/fence_dummy.xml
++++ tests/data/metadata/fence_dummy.xml
+@@ -48,11 +53,6 @@
+ 		<content type="boolean"  />
+ 		<shortdesc lang="en">Display help and exit</shortdesc>
+ 	</parameter>
+-	<parameter name="separator" unique="0" required="0">
+-		<getopt mixed="-C, --separator=[char]" />
+-		<content type="string" default=","  />
+-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
+-	</parameter>
+ 	<parameter name="delay" unique="0" required="0">
+ 		<getopt mixed="--delay=[seconds]" />
+ 		<content type="string" default="0"  />
+@@ -94,8 +99,6 @@
+ 	<action name="off" />
+ 	<action name="reboot" />
+ 	<action name="status" />
+-	<action name="list" />
+-	<action name="list-status" />
+ 	<action name="monitor" />
+ 	<action name="metadata" />
+ 	<action name="validate-all" />
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml
index 9d0e412..97d9afc 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_hpblade.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" ?>
 <resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
+<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem and HP Integrity Superdome X. It logs into the onboard administrator of an enclosure via telnet or ssh and uses the command line interface to power blades or partitions on or off.</longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
 	<parameter name="action" unique="0" required="1">
@@ -100,7 +100,7 @@
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
+		<content type="string" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="missing_as_off" unique="0" required="0">
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_idrac.xml.orig
similarity index 62%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_idrac.xml.orig
index b46ce10..dcb3235 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_idrac.xml.orig
@@ -1,31 +1,16 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_idrac" shortdesc="Fence agent for IPMI" >
+<symlink name="fence_ilo3" shortdesc="Fence agent for HP iLO3"/>
+<symlink name="fence_ilo4" shortdesc="Fence agent for HP iLO4"/>
+<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
+<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
+<longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
+<vendor-url></vendor-url>
 <parameters>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,17 +20,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -53,22 +33,56 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="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="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]" />
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="privlvl" unique="0" required="0">
+		<getopt mixed="-L, --privlvl=[level]" />
+		<content type="select" default="administrator"  >
+			<option value="callback" />
+			<option value="user" />
+			<option value="operator" />
+			<option value="administrator" />
+		</content>
+		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +104,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,14 +119,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
@@ -125,6 +139,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +151,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_ilo.xml.orig
similarity index 65%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_ilo.xml.orig
index b46ce10..ae7fe9c 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_ilo.xml.orig
@@ -1,31 +1,33 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_ilo" shortdesc="Fence agent for HP iLO" >
+<symlink name="fence_ilo2" shortdesc="Fence agent for HP iLO2"/>
+<longdesc>fence_ilo is an I/O Fencing agent used for HP servers with the Integrated Light Out (iLO) PCI card.The agent opens an SSL connection to the iLO card. Once the SSL connection is established, the agent is able to communicate with the iLO card through an XML stream.</longdesc>
+<vendor-url>http://www.hp.com</vendor-url>
 <parameters>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="443"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable TLS negotiation, force SSL 3.0</shortdesc>
+	</parameter>
+	<parameter name="ribcl" unique="0" required="0">
+		<getopt mixed="-r, --ribcl-version=[version]" />
+		<content type="string"  />
+		<shortdesc lang="en">Force ribcl version to use</shortdesc>
+	</parameter>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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>
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,40 +37,42 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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 name="tls1.0" unique="0" required="0">
+		<getopt mixed="--tls1.0" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable TLS negotiaton, force TLS 1.0</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 name="ssl" unique="0" required="0">
+		<getopt mixed="-z, --ssl" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSL connection</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="ssl_insecure" unique="0" required="0">
+		<getopt mixed="--ssl-insecure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,19 +94,14 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
+		<content type="string" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
@@ -110,19 +109,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
-		<content type="string" default="1"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
 </parameters>
@@ -132,9 +131,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_ilo2.xml.orig
similarity index 65%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_ilo2.xml.orig
index b46ce10..19a31a1 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_ilo2.xml.orig
@@ -1,31 +1,33 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_ilo2" shortdesc="Fence agent for HP iLO" >
+<symlink name="fence_ilo2" shortdesc="Fence agent for HP iLO2"/>
+<longdesc>fence_ilo is an I/O Fencing agent used for HP servers with the Integrated Light Out (iLO) PCI card.The agent opens an SSL connection to the iLO card. Once the SSL connection is established, the agent is able to communicate with the iLO card through an XML stream.</longdesc>
+<vendor-url>http://www.hp.com</vendor-url>
 <parameters>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="443"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable TLS negotiation, force SSL 3.0</shortdesc>
+	</parameter>
+	<parameter name="ribcl" unique="0" required="0">
+		<getopt mixed="-r, --ribcl-version=[version]" />
+		<content type="string"  />
+		<shortdesc lang="en">Force ribcl version to use</shortdesc>
+	</parameter>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
+	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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>
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,40 +37,42 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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 name="tls1.0" unique="0" required="0">
+		<getopt mixed="--tls1.0" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Disable TLS negotiaton, force TLS 1.0</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 name="ssl" unique="0" required="0">
+		<getopt mixed="-z, --ssl" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSL connection</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="ssl_insecure" unique="0" required="0">
+		<getopt mixed="--ssl-insecure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,19 +94,14 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
+		<content type="string" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
@@ -110,19 +109,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
-		<content type="string" default="1"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
 </parameters>
@@ -132,9 +131,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_ilo3.xml.orig
similarity index 61%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_ilo3.xml.orig
index b46ce10..e6a48bc 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_ilo3.xml.orig
@@ -1,31 +1,16 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_ilo3" shortdesc="Fence agent for IPMI" >
+<symlink name="fence_ilo3" shortdesc="Fence agent for HP iLO3"/>
+<symlink name="fence_ilo4" shortdesc="Fence agent for HP iLO4"/>
+<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
+<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
+<longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
+<vendor-url></vendor-url>
 <parameters>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,40 +20,69 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
-		<content type="select" default="onoff"  >
+		<content type="select" default="cycle"  >
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="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="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]" />
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="privlvl" unique="0" required="0">
+		<getopt mixed="-L, --privlvl=[level]" />
+		<content type="select" default="administrator"  >
+			<option value="callback" />
+			<option value="user" />
+			<option value="operator" />
+			<option value="administrator" />
+		</content>
+		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +104,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="4"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,14 +119,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
@@ -125,6 +139,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +151,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_ilo3_ssh.xml.orig
similarity index 70%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_ilo3_ssh.xml.orig
index 9d0e412..b3531b2 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_ilo3_ssh.xml.orig
@@ -1,73 +1,78 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
+<resource-agent name="fence_ilo3_ssh" shortdesc="Fence agent for HP iLO over SSH" >
+<symlink name="fence_ilo3_ssh" shortdesc="Fence agent for HP iLO3 over SSH"/>
+<symlink name="fence_ilo4_ssh" shortdesc="Fence agent for HP iLO4 over SSH"/>
+<longdesc>fence_ilo_ssh is a fence agent that connects to iLO device. It logs into device via ssh and reboot a specified outlet. </longdesc>
 <vendor-url>http://www.hp.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['MP>', 'hpiLO->']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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 (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +93,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +123,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +130,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_ilo4.xml.orig
similarity index 62%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_ilo4.xml.orig
index b46ce10..e7b0d60 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_ilo4.xml.orig
@@ -1,31 +1,16 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_ilo4" shortdesc="Fence agent for IPMI" >
+<symlink name="fence_ilo3" shortdesc="Fence agent for HP iLO3"/>
+<symlink name="fence_ilo4" shortdesc="Fence agent for HP iLO4"/>
+<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
+<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
+<longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
+<vendor-url></vendor-url>
 <parameters>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,17 +20,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -53,22 +33,56 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="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="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]" />
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="privlvl" unique="0" required="0">
+		<getopt mixed="-L, --privlvl=[level]" />
+		<content type="select" default="administrator"  >
+			<option value="callback" />
+			<option value="user" />
+			<option value="operator" />
+			<option value="administrator" />
+		</content>
+		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +104,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,14 +119,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
@@ -125,6 +139,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +151,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_ilo4_ssh.xml.orig
similarity index 70%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_ilo4_ssh.xml.orig
index 9d0e412..2266ee1 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_ilo4_ssh.xml.orig
@@ -1,73 +1,78 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
+<resource-agent name="fence_ilo4_ssh" shortdesc="Fence agent for HP iLO over SSH" >
+<symlink name="fence_ilo3_ssh" shortdesc="Fence agent for HP iLO3 over SSH"/>
+<symlink name="fence_ilo4_ssh" shortdesc="Fence agent for HP iLO4 over SSH"/>
+<longdesc>fence_ilo_ssh is a fence agent that connects to iLO device. It logs into device via ssh and reboot a specified outlet. </longdesc>
 <vendor-url>http://www.hp.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['MP>', 'hpiLO->']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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 (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +93,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +123,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +130,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_ilo_mp.xml.orig
similarity index 70%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_ilo_mp.xml.orig
index 9d0e412..93503a0 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml.orig
@@ -1,73 +1,68 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
+<resource-agent name="fence_ilo_mp" shortdesc="Fence agent for HP iLO MP" >
+<longdesc></longdesc>
 <vendor-url>http://www.hp.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['MP>', 'hpiLO->']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +83,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +113,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +120,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_ilo_ssh.xml.orig
similarity index 70%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_ilo_ssh.xml.orig
index 9d0e412..a9bd1d3 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_ilo_ssh.xml.orig
@@ -1,73 +1,78 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
+<resource-agent name="fence_ilo_ssh" shortdesc="Fence agent for HP iLO over SSH" >
+<symlink name="fence_ilo3_ssh" shortdesc="Fence agent for HP iLO3 over SSH"/>
+<symlink name="fence_ilo4_ssh" shortdesc="Fence agent for HP iLO4 over SSH"/>
+<longdesc>fence_ilo_ssh is a fence agent that connects to iLO device. It logs into device via ssh and reboot a specified outlet. </longdesc>
 <vendor-url>http://www.hp.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['MP>', 'hpiLO->']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<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 (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +93,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +123,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +130,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_imm.xml.orig
similarity index 62%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_imm.xml.orig
index b46ce10..8fbdddd 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_imm.xml.orig
@@ -1,31 +1,16 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_imm" shortdesc="Fence agent for IPMI" >
+<symlink name="fence_ilo3" shortdesc="Fence agent for HP iLO3"/>
+<symlink name="fence_ilo4" shortdesc="Fence agent for HP iLO4"/>
+<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
+<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
+<longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
+<vendor-url></vendor-url>
 <parameters>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,17 +20,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -53,22 +33,56 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="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="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]" />
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="privlvl" unique="0" required="0">
+		<getopt mixed="-L, --privlvl=[level]" />
+		<content type="select" default="administrator"  >
+			<option value="callback" />
+			<option value="user" />
+			<option value="operator" />
+			<option value="administrator" />
+		</content>
+		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +104,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,14 +119,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
@@ -125,6 +139,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +151,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_ipmilan.xml.orig
similarity index 62%
copy from tests/data/metadata/fence_zvmip.xml
copy to tests/data/metadata/fence_ipmilan.xml.orig
index b46ce10..199490c 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_ipmilan.xml.orig
@@ -1,31 +1,16 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines" >
-<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP
-
-To  use this agent the z/VM SMAPI service needs to be configured to allow the virtual machine running this agent to connect to it and issue
-the image_recycle operation.  This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look something similar to
-this:
-
-Column 1                   Column 66                Column 131
-
-   |                          |                        |
-   V                          V                        V
-
-XXXXXXXX                      ALL                      IMAGE_OPERATIONS
-
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
-</longdesc>
-<vendor-url>http://www.ibm.com</vendor-url>
+<resource-agent name="fence_ipmilan" shortdesc="Fence agent for IPMI" >
+<symlink name="fence_ilo3" shortdesc="Fence agent for HP iLO3"/>
+<symlink name="fence_ilo4" shortdesc="Fence agent for HP iLO4"/>
+<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
+<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
+<longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
+<vendor-url></vendor-url>
 <parameters>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing action</shortdesc>
-	</parameter>
-	<parameter name="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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,17 +20,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="44444"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -53,22 +33,56 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 			<option value="onoff" />
 			<option value="cycle" />
 		</content>
-		<shortdesc lang="en">Method to fence</shortdesc>
+		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
+	</parameter>
+	<parameter name="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="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]" />
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve password</shortdesc>
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="privlvl" unique="0" required="0">
+		<getopt mixed="-L, --privlvl=[level]" />
+		<content type="select" default="administrator"  >
+			<option value="callback" />
+			<option value="user" />
+			<option value="operator" />
+			<option value="administrator" />
+		</content>
+		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -90,15 +104,10 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,14 +119,19 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="5.0"  />
+		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
@@ -125,6 +139,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -132,9 +151,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_mpath.xml.orig b/tests/data/metadata/fence_mpath.xml.orig
new file mode 100644
index 0000000..c62dd49
--- /dev/null
+++ b/tests/data/metadata/fence_mpath.xml.orig
@@ -0,0 +1,96 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_mpath" shortdesc="Fence agent for multipath persistent reservation" >
+<longdesc>fence_mpath is an I/O fencing agent that uses SCSI-3 persistent reservations to control access multipath devices. Underlying devices must support SCSI-3 persistent reservations (SPC-3 or greater) as well as the "preempt-and-abort" subcommand.
+The fence_mpath agent works by having an unique key for each pair of node and device that has to be set also in /etc/multipath.conf. Once registered, a single node will become the reservation holder by creating a "write exclusive, registrants only" reservation on the device(s). The result is that only registered nodes may write to the device(s). When a node failure occurs, the fence_mpath agent will remove the key belonging to the failed node from the device(s). The failed node will no l [...]
+<vendor-url>https://www.sourceware.org/dm/</vendor-url>
+<parameters>
+	<parameter name="devices" unique="0" required="0">
+		<getopt mixed="-d, --devices=[devices]" />
+		<content type="string"  />
+		<shortdesc lang="en">List of devices to use for current operation. Devices can be comma-separated list of device-mapper multipath devices (eg. /dev/dm-3). Each device must support SCSI-3 persistent reservations.</shortdesc>
+	</parameter>
+	<parameter name="key" unique="0" required="1">
+		<getopt mixed="-k, --key=[key]" />
+		<content type="string"  />
+		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="verbose" unique="0" required="0">
+		<getopt mixed="-v, --verbose" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Verbose mode</shortdesc>
+	</parameter>
+	<parameter name="debug" unique="0" required="0">
+		<getopt mixed="-D, --debug-file=[debugfile]" />
+		<content type="string"  />
+		<shortdesc lang="en">Write debug information to given file</shortdesc>
+	</parameter>
+	<parameter name="version" unique="0" required="0">
+		<getopt mixed="-V, --version" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Display version information and exit</shortdesc>
+	</parameter>
+	<parameter name="help" unique="0" required="0">
+		<getopt mixed="-h, --help" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Display help and exit</shortdesc>
+	</parameter>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	</parameter>
+	<parameter name="store_path" unique="0" required="0">
+		<getopt mixed="--store-path=[path]" />
+		<content type="string" default="/var/run/cluster"  />
+		<shortdesc lang="en">Path to directory where fence agent can store information</shortdesc>
+	</parameter>
+	<parameter name="power_timeout" unique="0" required="0">
+		<getopt mixed="--power-timeout=[seconds]" />
+		<content type="string" default="20"  />
+		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	</parameter>
+	<parameter name="mpathpersist_path" unique="0" required="0">
+		<getopt mixed="--mpathpersist-path=[path]" />
+		<content type="string" default="/usr/sbin/mpathpersist"  />
+		<shortdesc lang="en">Path to mpathpersist binary</shortdesc>
+	</parameter>
+	<parameter name="retry_on" unique="0" required="0">
+		<getopt mixed="--retry-on=[attempts]" />
+		<content type="string" default="1"  />
+		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+	</parameter>
+	<parameter name="sudo" unique="0" required="0">
+		<getopt mixed="--use-sudo" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Use sudo (without password) when calling 3rd party sotfware.</shortdesc>
+	</parameter>
+</parameters>
+<actions>
+	<action name="on" on_target="1" automatic="1"/>
+	<action name="off" />
+	<action name="status" />
+	<action name="list" />
+	<action name="monitor" />
+	<action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_rsa.xml.orig
similarity index 68%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_rsa.xml.orig
index 9d0e412..749b21d 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_rsa.xml.orig
@@ -1,73 +1,68 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
-<vendor-url>http://www.hp.com</vendor-url>
+<resource-agent name="fence_rsa" shortdesc="Fence agent for IBM RSA" >
+<longdesc>fence_rsa is an I/O Fencing agent which can be used with the IBM RSA II management interface. It logs into an RSA II device via telnet and reboots the associated machine. Lengthy telnet connections to the RSA II device should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
+<vendor-url>http://www.ibm.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['>']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
-		<content type="string"  />
+		<content type="string" default="-F /dev/null"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +83,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
+		<content type="string" default="10"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +113,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +120,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_rsb.xml.orig
similarity index 69%
copy from tests/data/metadata/fence_hpblade.xml
copy to tests/data/metadata/fence_rsb.xml.orig
index 9d0e412..56421fc 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_rsb.xml.orig
@@ -1,73 +1,68 @@
 <?xml version="1.0" ?>
-<resource-agent name="fence_hpblade" shortdesc="Fence agent for HP BladeSystem" >
-<longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
-<vendor-url>http://www.hp.com</vendor-url>
+<resource-agent name="fence_rsb" shortdesc="I/O Fencing agent for Fujitsu-Siemens RSB" >
+<longdesc>fence_rsb is an I/O Fencing agent which can be used with the Fujitsu-Siemens RSB management interface. It logs into device via telnet/ssh  and reboots a specified outlet. Lengthy telnet/ssh connections should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
+<vendor-url>http://www.fujitsu.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 name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="3172"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
+		<content type="string"  />
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
-		<content type="string" default="['c7000oa>']"  />
+		<content type="string" default="['to quit:']"  />
 		<shortdesc lang="en">Force Python regex for command prompt</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="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
+		<shortdesc lang="en">Identity file for ssh</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]" />
-		<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="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login name</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</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="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Use SSH connection</shortdesc>
-	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -88,35 +83,25 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="separator" unique="0" required="0">
-		<getopt mixed="-C, --separator=[char]" />
-		<content type="string" default=","  />
-		<shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
-	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<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]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
@@ -128,16 +113,6 @@
 		<content type="string" default="1"  />
 		<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
 	</parameter>
-	<parameter name="ssh_path" unique="0" required="0">
-		<getopt mixed="--ssh-path=[path]" />
-		<content type="string" default="/usr/bin/ssh"  />
-		<shortdesc lang="en">Path to ssh binary</shortdesc>
-	</parameter>
-	<parameter name="telnet_path" unique="0" required="0">
-		<getopt mixed="--telnet-path=[path]" />
-		<content type="string" default="/usr/bin/telnet"  />
-		<shortdesc lang="en">Path to telnet binary</shortdesc>
-	</parameter>
 </parameters>
 <actions>
 	<action name="on" automatic="0"/>
@@ -145,9 +120,7 @@
 	<action name="reboot" />
 	<action name="status" />
 	<action name="list" />
-	<action name="list-status" />
 	<action name="monitor" />
 	<action name="metadata" />
-	<action name="validate-all" />
 </actions>
 </resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml
index b46ce10..d9bea72 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -105,6 +105,11 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="missing_as_off" unique="0" required="0">
+		<getopt mixed="--missing-as-off" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
+	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />

-- 
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