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

Adrian Vondendriesch discostu-guest at moszumanska.debian.org
Sat Sep 17 14:19:54 UTC 2016


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

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

commit 78376ae949c23793b2610c1e744568c6ce9a46a3
Author: Adrian Vondendriesch <adrian.vondendriesch at credativ.de>
Date:   Sat Sep 17 15:47:21 2016 +0200

    New upstream version 4.0.24
---
 .tarball-version                             |   2 +-
 .version                                     |   2 +-
 ChangeLog                                    |  35 ++
 configure                                    |  20 +-
 fence/agents/Makefile.am                     |  10 +-
 fence/agents/Makefile.in                     |  72 +++-
 fence/agents/cisco_ucs/fence_cisco_ucs.py    |  16 +-
 fence/agents/compute/fence_compute.py        |   6 +-
 fence/agents/eps/fence_eps.py                |   2 +-
 fence/agents/lib/Makefile.in                 |  50 ++-
 fence/agents/lib/XenAPI.py.py                |   2 +-
 fence/agents/lib/fencing.py.py               |   2 +-
 fence/agents/mpath/fence_mpath.py            |   4 +-
 fence/agents/pve/fence_pve.py                |   2 +-
 fence/agents/scsi/fence_scsi.py              |   2 +-
 fence/agents/zvm/fence_zvm.8                 |  87 ++++
 fence/agents/zvm/fence_zvm.h                 | 583 +++++++++++++++++++++++++++
 fence/agents/zvm/fence_zvm_man_page          |  87 ++++
 make/agentpycheck.mk                         |   2 +-
 make/fencebuild.mk                           |  37 +-
 make/fenceman.mk                             |   4 +-
 tests/data/metadata/fence_alom.xml           |   1 -
 tests/data/metadata/fence_amt.xml            |   2 -
 tests/data/metadata/fence_apc.xml            |   2 -
 tests/data/metadata/fence_apc_snmp.xml       |   3 -
 tests/data/metadata/fence_bladecenter.xml    |   2 -
 tests/data/metadata/fence_brocade.xml        |   2 -
 tests/data/metadata/fence_cisco_mds.xml      |   3 -
 tests/data/metadata/fence_cisco_ucs.xml      |   1 -
 tests/data/metadata/fence_docker.xml         |   1 -
 tests/data/metadata/fence_drac.xml           |   1 -
 tests/data/metadata/fence_drac5.xml          |   2 -
 tests/data/metadata/fence_eaton_snmp.xml     |   3 -
 tests/data/metadata/fence_emerson.xml        |   3 -
 tests/data/metadata/fence_hds_cb.xml         |   2 -
 tests/data/metadata/fence_hpblade.xml        |   2 -
 tests/data/metadata/fence_ibmblade.xml       |   3 -
 tests/data/metadata/fence_idrac.xml          |   2 -
 tests/data/metadata/fence_ifmib.xml          |   3 -
 tests/data/metadata/fence_ilo.xml            |   1 -
 tests/data/metadata/fence_ilo2.xml           |   1 -
 tests/data/metadata/fence_ilo3.xml           |   2 -
 tests/data/metadata/fence_ilo3_ssh.xml       |   2 -
 tests/data/metadata/fence_ilo4.xml           |   2 -
 tests/data/metadata/fence_ilo4_ssh.xml       |   2 -
 tests/data/metadata/fence_ilo_moonshot.xml   |   1 -
 tests/data/metadata/fence_ilo_mp.xml         |   2 -
 tests/data/metadata/fence_ilo_ssh.xml        |   2 -
 tests/data/metadata/fence_imm.xml            |   2 -
 tests/data/metadata/fence_intelmodular.xml   |   3 -
 tests/data/metadata/fence_ipdu.xml           |   3 -
 tests/data/metadata/fence_ipmilan.xml        |   2 -
 tests/data/metadata/fence_ldom.xml           |   1 -
 tests/data/metadata/fence_lpar.xml           |   1 -
 tests/data/metadata/fence_mpath.xml          |   4 +-
 tests/data/metadata/fence_netio.xml          |   1 -
 tests/data/metadata/fence_raritan.xml        |   1 -
 tests/data/metadata/fence_rhevm.xml          |   1 -
 tests/data/metadata/fence_rsa.xml            |   2 -
 tests/data/metadata/fence_rsb.xml            |   2 -
 tests/data/metadata/fence_sanbox2.xml        |   1 -
 tests/data/metadata/fence_sbd.xml            |   1 -
 tests/data/metadata/fence_scsi.xml           |   6 +-
 tests/data/metadata/fence_tripplite_snmp.xml |   3 -
 tests/data/metadata/fence_vbox.xml           |   2 -
 tests/data/metadata/fence_virsh.xml          |   2 -
 tests/data/metadata/fence_vmware.xml         |   1 -
 tests/data/metadata/fence_vmware_soap.xml    |   1 -
 tests/data/metadata/fence_wti.xml            |   2 -
 69 files changed, 971 insertions(+), 151 deletions(-)

diff --git a/.tarball-version b/.tarball-version
index f05f0cb..0227d4a 100644
--- a/.tarball-version
+++ b/.tarball-version
@@ -1 +1 @@
-4.0.23
+4.0.24
diff --git a/.version b/.version
index f05f0cb..0227d4a 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-4.0.23
+4.0.24
diff --git a/ChangeLog b/ChangeLog
index 8e86700..e29e448 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,38 @@
+2016-08-22  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	fence_cisco_ucs: Improve a method to obtain status
+	On Cisco UCS there are two attributes which are important for obtaining
+	correct power status of blade. One checks if slot is powered ON and other if
+	the node is pulled off the blade.
+
+2016-08-22  marxsk  <mgrac at redhat.com>
+
+	Merge pull request #81 from oalbrigt/install-fix
+	Fix install issue for symlinked agents
+
+	Merge pull request #85 from oalbrigt/fence_mpath-unique-key-per-node
+	fence_mpath: update unique key info to say that it's per node and not per node/device
+
+2016-08-17  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	fence_scsi: correct 'devive(s)' typo
+
+	fence_mpath: update unique key info to say that it's per node and not per node/device
+
+2016-08-15  Marek 'marx' Grac  <mgrac at redhat.com>
+
+	build: Do not test paths in metadata
+
+2016-07-13  Oyvind Albrigtsen  <oalbrigt at redhat.com>
+
+	Python 2.6 compatibility
+
+	Fix install issue for symlinked agents
+
+2016-07-06  Andrew Beekhof  <beekhof at Andrew-MBP16.local>
+
+	compute: Prevent use of undefined variable
+
 2016-06-29  Marek 'marx' Grac  <mgrac at redhat.com>
 
 	build: clean-up of CLEAN_TARGET_ADDITIONAL
diff --git a/configure b/configure
index 817d9c2..660bb09 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.23.
+# Generated by GNU Autoconf 2.69 for fence-agents 4.0.24.
 #
 # 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.23'
-PACKAGE_STRING='fence-agents 4.0.23'
+PACKAGE_VERSION='4.0.24'
+PACKAGE_STRING='fence-agents 4.0.24'
 PACKAGE_BUGREPORT='linux-cluster at redhat.com'
 PACKAGE_URL=''
 
@@ -1362,7 +1362,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.23 to adapt to many kinds of systems.
+\`configure' configures fence-agents 4.0.24 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1432,7 +1432,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fence-agents 4.0.23:";;
+     short | recursive ) echo "Configuration of fence-agents 4.0.24:";;
    esac
   cat <<\_ACEOF
 
@@ -1550,7 +1550,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fence-agents configure 4.0.23
+fence-agents configure 4.0.24
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2148,7 +2148,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.23, which was
+It was created by fence-agents $as_me 4.0.24, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3012,7 +3012,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='fence-agents'
- VERSION='4.0.23'
+ VERSION='4.0.24'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18501,7 +18501,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.23, which was
+This file was extended by fence-agents $as_me 4.0.24, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18567,7 +18567,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.23
+fence-agents config.status 4.0.24
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/fence/agents/Makefile.am b/fence/agents/Makefile.am
index 3b276b8..9f0964c 100644
--- a/fence/agents/Makefile.am
+++ b/fence/agents/Makefile.am
@@ -4,9 +4,9 @@ TARGET				= $(AGENTS_LIST:%.py=%)
 
 SRC				= $(TARGET:=.py)
 
-CLEAN_TARGET_ADDITIONAL		= kdump/fence_kdump_send manual/fence_ack_manual
+CLEAN_TARGET_ADDITIONAL		= kdump/fence_kdump_send manual/fence_ack_manual */*.o
 
-EXTRA_DIST			= $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8
+EXTRA_DIST			= $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8 zvm/fence_zvm_man_page
 
 sbin_SCRIPTS			= $(TARGET) manual/fence_ack_manual
 
@@ -17,7 +17,7 @@ man_MANS			= $(sbin_SCRIPTS:=.8)
 sbin_PROGRAMS			= kdump/fence_kdump zvm/fence_zvm
 libexec_PROGRAMS		= kdump/fence_kdump_send
 
-noinst_HEADERS			= kdump/list.h kdump/message.h kdump/options.h kdump/version.h
+noinst_HEADERS			= kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
 
 kdump_fence_kdump_SOURCES	= kdump/fence_kdump.c
 kdump_fence_kdump_CFLAGS	= -D_GNU_SOURCE -Ikdump
@@ -25,13 +25,13 @@ kdump_fence_kdump_CFLAGS	= -D_GNU_SOURCE -Ikdump
 kdump_fence_kdump_send_SOURCES	= kdump/fence_kdump_send.c
 kdump_fence_kdump_send_CFLAGS	= -D_GNU_SOURCE -Ikdump
 
-dist_man_MANS			= kdump/fence_kdump.8 kdump/fence_kdump_send.8
+dist_man_MANS			= kdump/fence_kdump.8 kdump/fence_kdump_send.8 zvm/fence_zvm.8
 
 scsidatadir			= $(CLUSTERDATA)
 scsidata_SCRIPTS		= scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
 
 zvm_fence_zvm_SOURCES		= zvm/fence_zvm.c
-zvm_fence_zvm_CFLAGS		= -D_GNU_SOURCE
+zvm_fence_zvm_CFLAGS		= -D_GNU_SOURCE -Izvm
 
 FENCE_TEST_ARGS			= \
 login=test\n\
diff --git a/fence/agents/Makefile.in b/fence/agents/Makefile.in
index 5e59885..2f30aab 100644
--- a/fence/agents/Makefile.in
+++ b/fence/agents/Makefile.in
@@ -392,21 +392,21 @@ top_srcdir = @top_srcdir@
 MAINTAINERCLEANFILES = Makefile.in
 TARGET = $(AGENTS_LIST:%.py=%)
 SRC = $(TARGET:=.py)
-CLEAN_TARGET_ADDITIONAL = kdump/fence_kdump_send manual/fence_ack_manual
-EXTRA_DIST = $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8
+CLEAN_TARGET_ADDITIONAL = kdump/fence_kdump_send manual/fence_ack_manual */*.o
+EXTRA_DIST = $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8 zvm/fence_zvm_man_page
 sbin_SCRIPTS = $(TARGET) manual/fence_ack_manual
 EXTRA_SCRIPTS = 
 man_MANS = $(sbin_SCRIPTS:=.8)
-noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h
+noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
 kdump_fence_kdump_SOURCES = kdump/fence_kdump.c
 kdump_fence_kdump_CFLAGS = -D_GNU_SOURCE -Ikdump
 kdump_fence_kdump_send_SOURCES = kdump/fence_kdump_send.c
 kdump_fence_kdump_send_CFLAGS = -D_GNU_SOURCE -Ikdump
-dist_man_MANS = kdump/fence_kdump.8 kdump/fence_kdump_send.8
+dist_man_MANS = kdump/fence_kdump.8 kdump/fence_kdump_send.8 zvm/fence_zvm.8
 scsidatadir = $(CLUSTERDATA)
 scsidata_SCRIPTS = scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
 zvm_fence_zvm_SOURCES = zvm/fence_zvm.c
-zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE
+zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE -Izvm
 FENCE_TEST_ARGS = \
 login=test\n\
 passwd=test\n\
@@ -418,7 +418,7 @@ session_url=http://test\n\
 email=test at test.te
 
 DATADIR := $(abs_top_srcdir)/tests/data/metadata
-AWK_VAL = 'BEGIN {store=-1} /name=\"store_path\"/ {store=2} {if (store!=0) {print}; store--}'
+AWK_VAL = 'BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}'
 TEST_TARGET = $(filter-out $(TEST_TARGET_SKIP),$(TARGET))
 all: all-am
 
@@ -935,7 +935,8 @@ install-dvi-am:
 
 install-exec-am: install-libexecPROGRAMS install-sbinPROGRAMS \
 	install-sbinSCRIPTS
-
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
 install-html: install-html-am
 
 install-html-am:
@@ -977,10 +978,11 @@ ps-am:
 uninstall-am: uninstall-libexecPROGRAMS uninstall-man \
 	uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS \
 	uninstall-scsidataSCRIPTS
-
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man8
 
-.MAKE: install-am install-strip
+.MAKE: install-am install-exec-am install-strip uninstall-am
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libexecPROGRAMS clean-libtool clean-local \
@@ -988,17 +990,18 @@ uninstall-man: uninstall-man8
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am \
+	install-dvi-am install-exec install-exec-am install-exec-hook \
+	install-html install-html-am install-info install-info-am \
 	install-libexecPROGRAMS install-man install-man8 install-pdf \
 	install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
 	install-sbinSCRIPTS install-scsidataSCRIPTS install-strip \
 	installcheck installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am uninstall-libexecPROGRAMS \
-	uninstall-man uninstall-man8 uninstall-sbinPROGRAMS \
-	uninstall-sbinSCRIPTS uninstall-scsidataSCRIPTS
+	tags tags-am uninstall uninstall-am uninstall-hook \
+	uninstall-libexecPROGRAMS uninstall-man uninstall-man8 \
+	uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS \
+	uninstall-scsidataSCRIPTS
 
 .PRECIOUS: Makefile
 
@@ -1039,7 +1042,7 @@ cisco_mds/fence_cisco_mds.delay-check: cisco_mds/fence_cisco_mds
 	sed 's/\.//' | tail -n 1` -ge 1000 || ( \
 	PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -f "%e" \
 	sh -c "/bin/echo -e "delay=0\n $$FENCE_TEST_ARGS_CISCO_MDS" | $(PYTHON) ./$(INPUT)"; false )
-$(TARGET): $(SRC)
+define gen_agent_from_py
 	mkdir -p `dirname $@`
 	bash $(top_srcdir)/scripts/fenceparse \
 		$(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
@@ -1076,9 +1079,17 @@ $(TARGET): $(SRC)
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
-		cp $(@) $(@D)/$$x; \
+		cp -f $(@) $(@D)/$$x; \
 		$(MAKE) $(@D)/$$x.8; \
 	done
+endef
+
+# dependency, one on one
+$(foreach t,$(TARGET),$(eval $(t) : $(t:=.py)))
+
+# rule
+$(TARGET):
+	$(call gen_agent_from_py)
 
 clean: clean-man
 	rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki
@@ -1088,10 +1099,35 @@ clean: clean-man
 	fi
 
 clean-local: clean
-%.8: $(TARGET) $(top_srcdir)/fence/agents/lib/fence2man.xsl
+
+install-exec-hook: $(TARGET)
+	if [ -n "$(man8dir)" ]; then \
+		echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
+		$(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
+	fi
+	for p in $(TARGET); do \
+		dir=`dirname $$p`; \
+		for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
+			echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
+			$(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
+			echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
+			$(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \
+		done; \
+	done
+
+uninstall-hook: $(TARGET)
+	files=`for p in $(TARGET); do \
+		for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
+			echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
+			rm -f "$(DESTDIR)$(sbindir)/$$x"; \
+			echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
+			rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \
+		done; \
+	done`
+%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl
 	set -e && \
 	PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \
-		$(PYTHON) $(@:%.8=%) -o metadata > $(@D)/.$(@F).tmp && \
+		$(PYTHON) $* -o metadata > $(@D)/.$(@F).tmp && \
 	xmllint --noout --relaxng $(abs_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \
 	xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
 	xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py
index 648e45f..0d9609d 100644
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py
@@ -19,6 +19,7 @@ RE_STATUS = re.compile("<lsPower .*? state=\"(.*?)\"", re.IGNORECASE)
 RE_GET_DN = re.compile(" dn=\"(.*?)\"", re.IGNORECASE)
 RE_GET_PNDN = re.compile(" pndn=\"(.*?)\"", re.IGNORECASE)
 RE_GET_DESC = re.compile(" descr=\"(.*?)\"", re.IGNORECASE)
+RE_GET_OPERPOWER = re.compile(" operPower=\"(.*?)\"", re.IGNORECASE)
 RE_GET_PRESENCE = re.compile(" presence=\"(.*?)\"", re.IGNORECASE)
 
 options_global = None
@@ -50,12 +51,21 @@ def get_power_status(conn, options):
 	if result == None:
 		fail(EC_STATUS)
 	else:
-		status = result.group(1)
+		presence_status = result.group(1)
 
-	if status in ["missing", "mismatch"]:
+	if presence_status in ["missing", "mismatch"]:
 		return "off"
 	else:
-		return "on"
+		result = RE_GET_OPERPOWER.search(res)
+		if result == None:
+			fail(EC_STATUS)
+		else:
+			power_status = result.group(1)
+
+		if power_status == "on":
+			return "on"
+		else:
+			return "off"
 
 def set_power_status(conn, options):
 	del conn
diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py
index e3d5061..0f05c12 100644
--- a/fence/agents/compute/fence_compute.py
+++ b/fence/agents/compute/fence_compute.py
@@ -252,17 +252,21 @@ def fix_domain(options):
 
 	elif len(domains) == 1 and "--domain" not in options:
 		options["--domain"] = last_domain
+		return options["--domain"]
 
 	elif len(domains) == 1:
 		logging.error("Overriding supplied domain '%s' does not match the one calculated from: %s"
 			      % (options["--domain"], hypervisor.hypervisor_hostname))
 		options["--domain"] = last_domain
+		return options["--domain"]
 
 	elif len(domains) > 1:
 		logging.error("The supplied domain '%s' did not match any used inside nova: %s"
 			      % (options["--domain"], repr(domains)))
 		sys.exit(1)
 
+	return None
+
 def fix_plug_name(options):
 	if options["--action"] == "list":
 		return
@@ -270,7 +274,7 @@ def fix_plug_name(options):
 	if "--plug" not in options:
 		return
 
-	fix_domain(options)
+	calculated = fix_domain(options)
 	short_plug = options["--plug"].split('.')[0]
 	logging.debug("Checking target '%s' against calculated domain '%s'"% (options["--plug"], calculated))
 
diff --git a/fence/agents/eps/fence_eps.py b/fence/agents/eps/fence_eps.py
index dcdacb8..65de6a0 100644
--- a/fence/agents/eps/fence_eps.py
+++ b/fence/agents/eps/fence_eps.py
@@ -11,7 +11,7 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
 from fencing import *
 from fencing import fail, fail_usage, EC_LOGIN_DENIED, EC_TIMED_OUT, run_delay
 
-if sys.version_info.major > 2:
+if sys.version_info[0] > 2:
 	import http.client as httplib
 else:
 	import httplib
diff --git a/fence/agents/lib/Makefile.in b/fence/agents/lib/Makefile.in
index 4c5bbac..a3f61c4 100644
--- a/fence/agents/lib/Makefile.in
+++ b/fence/agents/lib/Makefile.in
@@ -498,7 +498,8 @@ install-dvi: install-dvi-am
 install-dvi-am:
 
 install-exec-am:
-
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
 install-html: install-html-am
 
 install-html-am:
@@ -536,25 +537,27 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-fencelibDATA uninstall-rngDATA
-
-.MAKE: install-am install-strip
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-exec-am install-strip uninstall-am
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
 	clean-local cscopelist-am ctags-am distclean distclean-generic \
 	distclean-libtool distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am \
+	install-dvi-am install-exec install-exec-am install-exec-hook \
 	install-fencelibDATA install-html install-html-am install-info \
 	install-info-am install-man install-pdf install-pdf-am \
 	install-ps install-ps-am install-rngDATA install-strip \
 	installcheck installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
-	uninstall-am uninstall-fencelibDATA uninstall-rngDATA
+	uninstall-am uninstall-fencelibDATA uninstall-hook \
+	uninstall-rngDATA
 
 .PRECIOUS: Makefile
 
-$(TARGET): $(SRC)
+define gen_agent_from_py
 	mkdir -p `dirname $@`
 	bash $(top_srcdir)/scripts/fenceparse \
 		$(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
@@ -591,9 +594,17 @@ $(TARGET): $(SRC)
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
-		cp $(@) $(@D)/$$x; \
+		cp -f $(@) $(@D)/$$x; \
 		$(MAKE) $(@D)/$$x.8; \
 	done
+endef
+
+# dependency, one on one
+$(foreach t,$(TARGET),$(eval $(t) : $(t:=.py)))
+
+# rule
+$(TARGET):
+	$(call gen_agent_from_py)
 
 clean: clean-man
 	rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki
@@ -604,6 +615,31 @@ clean: clean-man
 
 clean-local: clean
 
+install-exec-hook: $(TARGET)
+	if [ -n "$(man8dir)" ]; then \
+		echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
+		$(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
+	fi
+	for p in $(TARGET); do \
+		dir=`dirname $$p`; \
+		for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
+			echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
+			$(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
+			echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
+			$(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \
+		done; \
+	done
+
+uninstall-hook: $(TARGET)
+	files=`for p in $(TARGET); do \
+		for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
+			echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
+			rm -f "$(DESTDIR)$(sbindir)/$$x"; \
+			echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
+			rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \
+		done; \
+	done`
+
 clean-man:
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/fence/agents/lib/XenAPI.py.py b/fence/agents/lib/XenAPI.py.py
index 3f5456d..6fe11ef 100644
--- a/fence/agents/lib/XenAPI.py.py
+++ b/fence/agents/lib/XenAPI.py.py
@@ -49,7 +49,7 @@ import gettext
 import socket
 import logging
 
-if sys.version_info.major > 2:
+if sys.version_info[0] > 2:
 	import xmlrpc.client as xmlrpclib
 	import http.client as httplib
 else:
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 4e0b30a..1ac2d72 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -645,7 +645,7 @@ def check_input(device_opt, opt, other_conditions = False):
 	## add logging to syslog
 	logging.getLogger().addHandler(SyslogLibHandler())
 	## add logging to stderr
-	logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stderr))
+	logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
 
 	(acceptable_actions, _) = _get_available_actions(device_opt)
 
diff --git a/fence/agents/mpath/fence_mpath.py b/fence/agents/mpath/fence_mpath.py
index 349225f..5426a18 100644
--- a/fence/agents/mpath/fence_mpath.py
+++ b/fence/agents/mpath/fence_mpath.py
@@ -219,8 +219,8 @@ def main():
 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.\nThe 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 \
+having a unique key for each node that has to be set in /etc/multipath.conf. \
+Once registered, a single node will become the reservation holder \
 by creating a \"write exclusive, registrants only\" reservation on the \
 device(s). The result is that only registered nodes may write to the \
 device(s). When a node failure occurs, the fence_mpath agent will remove the \
diff --git a/fence/agents/pve/fence_pve.py b/fence/agents/pve/fence_pve.py
index 3867047..6686aad 100755
--- a/fence/agents/pve/fence_pve.py
+++ b/fence/agents/pve/fence_pve.py
@@ -13,7 +13,7 @@ import logging
 sys.path.append("@FENCEAGENTSLIBDIR@")
 from fencing import fail, EC_LOGIN_DENIED, atexit_handler, all_opt, check_input, process_input, show_docs, fence_action, run_delay
 
-if sys.version_info.major > 2: import urllib.parse as urllib
+if sys.version_info[0] > 2: import urllib.parse as urllib
 else: import urllib
 
 #BEGIN_VERSION_GENERATION
diff --git a/fence/agents/scsi/fence_scsi.py b/fence/agents/scsi/fence_scsi.py
index d572ca3..37ff1d3 100644
--- a/fence/agents/scsi/fence_scsi.py
+++ b/fence/agents/scsi/fence_scsi.py
@@ -438,7 +438,7 @@ persistent reservations to control access to shared storage devices. These \
 devices must support SCSI-3 persistent reservations (SPC-3 or greater) as \
 well as the \"preempt-and-abort\" subcommand.\nThe fence_scsi agent works by \
 having each node in the cluster register a unique key with the SCSI \
-devive(s). Once registered, a single node will become the reservation holder \
+device(s). 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_scsi agent will remove the \
diff --git a/fence/agents/zvm/fence_zvm.8 b/fence/agents/zvm/fence_zvm.8
new file mode 100644
index 0000000..359436e
--- /dev/null
+++ b/fence/agents/zvm/fence_zvm.8
@@ -0,0 +1,87 @@
+.TH fence_zvm 8
+
+.SH NAME
+fence_zvm - Power Fencing agent for GFS on System z z/VM Clusters
+
+.SH SYNOPSIS
+.B
+fence_zvm
+[\fIOPTION\fR]...
+
+.SH DESCRIPTION
+fence_zvm is a Power Fencing agent used on a GFS virtual machine in a System z z/VM cluster.
+It uses the SMAPI interface to recycle an active image.
+
+fence_zvm accepts options on the command line as well as from stdin.
+fence_node sends the options through stdin when it execs the agent.
+fence_zvm can be run by itself with command line options which is useful
+for testing.
+
+Vendor URL: http://www.sinenomine.net
+
+.SH OPTIONS
+.TP
+\fB-o --action\fP
+Fencing action: "off" - deactivate virtual machine; "on" - activate virtual machine; "metadata" - display device metadata" - describe fence agent parameters; "status" - state of virtual machine
+.TP
+\fB--delay\fP \fIseconds\fP
+Time to delay fencing action in seconds
+.TP
+\fB-n --plug\fP \fItarget\fP
+Name of virtual machine to recycle.
+.TP
+\fB-h --help\fP
+Print out a help message describing available options, then exit.
+.TP
+\fB-a --ip\fP \fIsmapi Server\fP
+\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents this name is a little misleading: it is the name of the virtual machine not its IP address or hostname.
+.TP
+\fB--zvmsys\fP \fIz/VM System\fP
+\fBName\fP of z/VM on which the SMAPI server virtual machine resides. Optional - defaults to system on which the node is running.
+.TP
+\fB-h --help\fP
+Display usage information
+.TP
+\fI-t --timeout = < shutdown timeout >\fP
+Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
+forcibly terminated. Currently, this option is ignored.
+
+.SH STDIN PARAMETERS
+.TP
+\fIagent = < param >\fP
+This option is used by fence_node(8) and is ignored by fence_zvm.
+.TP
+\fIaction = < action >\fP
+Fencing action: "off" - fence off device; "metadata" - display device metadata; "status" - state of device
+.TP
+\fIport = < target >\fP
+Name of virtual machine to recycle.
+.TP
+\fIipaddr= < server name >\fP
+\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents thisname is a little misleading: it is the name of the virtual machine not its IP address or hostname.
+.TP
+\fItimeout = < shutdown timeout >\fP
+Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
+forcibly terminated. Currently, this option is ignored.
+
+.SH SEE ALSO
+fence(8), fenced(8), fence_node(8)
+
+.SH NOTES
+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:
+
+.nf
+Column 1                   Column 66                Column 131
+|                          |                        |
+V                          V                        V
+XXXXXXXX                   ALL                      IMAGE_OPERATIONS
+.fi
+
+Where XXXXXXX is the name of the virtual machine where the agent resides. 
+
+In addition, the VM directory entry that defines this virtual machine requires the
+IUCV ANY statement (or IUCV <userid of SMAPI Server>). This authorizes use of IUCV
+to connect to the SMAPI server.
diff --git a/fence/agents/zvm/fence_zvm.h b/fence/agents/zvm/fence_zvm.h
new file mode 100644
index 0000000..ca18e4d
--- /dev/null
+++ b/fence/agents/zvm/fence_zvm.h
@@ -0,0 +1,583 @@
+/*
+ * fence_zvm.h: SMAPI interface for z/VM Guests
+ *
+ * Copyright (C) 2012 Sine Nomine Associates
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Neale Ferguson <neale at sinenomine.net>
+ *
+ */
+
+#ifndef FENCE_ZVM_H
+# define FENCE_ZVM_H
+
+# include <sys/types.h>
+
+# define SMAPI_TARGET	"OVIRTADM"
+# define SMAPI_MAXCPU   96
+
+/*
+ * Return codes
+ */
+# define RC_OK				  0	/* Request successful */
+# define RC_WNG				  4	/* Warning */
+# define RC_ERR				  8	/* Error */
+# define RCERR_SYNTAX			 24	/* Function parameter syntax error */
+# define RCERR_FILE_NOT_FOUND		 28	/* File not found */
+# define RCERR_FILE_CANNOT_BE_UPDATED	 36	/* Name list file cannot be updated */
+# define RCERR_AUTH			100	/* Request not authorized by ESM  */
+# define RCERR_NO_AUTHFILE		104	/* Authorization file not found */
+# define RCERR_AUTHFILE_RO		106	/* Authorization file cannot be updated */
+# define RCERR_EXISTS			108	/* Authorization file entry already exists */
+# define RCERR_NO_ENTRY			112	/* Authorization file entry does not exist */
+# define RCERR_USER_PW_BAD		120	/* Authentication error: Userid or pwd invalid */
+# define RCERR_PW_EXPIRED		128	/* Authentication error: password expired */
+# define RCERR_ESM			188	/* ESM failure */
+# define RCERR_PW_CHECK			192	/* Internal error: can't authenticate user or pwd */
+# define RCERR_DMSCSL			196	/* Internal Callable Services error */
+# define RCERR_IMAGEOP			200	/* Image Operation error */
+# define RCERR_LIST			200	/* Bad rc for list or list function */
+# define RCERR_IMAGEDEVU		204	/* Image Device Usage error */
+# define RCERR_IMAGEDISKU		208	/* Image Disk Usage error */
+# define RCERR_IMAGECONN		212	/* Image Connectivity Definition error */
+# define RCERR_IMAGECPU			216	/* Image CPU definition error */
+# define RCERR_VOLUME			300	/* Image Volume function error */
+# define RCERR_INTERNAL			396	/* Internal product-specific error */
+# define RCERR_IMAGE_NAME		400	/* Image Name error */
+# define RCERR_IMAGEDEF			400	/* Image Definition error */
+# define RCERR_IMAGEDEVD		404	/* Image Device Definition error */
+# define RCERR_IMAGEDISKD		408	/* Image Disk Definition error */
+# define RCERR_IMAGECONND		412	/* Image Connectivity Definition error */
+# define RCERR_PROTODEF			416	/* Prototype Definition error */
+# define RCERR_DASD_DM			420	/* Volume/region name already defined or region in group */
+# define RCERR_SEGMENT_DM		424	/* Segment definition errors */
+# define RCERR_NOTIFY			428	/* Notification subscription errors */
+# define RCERR_TAG			432	/* Local tag definition errors */
+# define RCERR_PROFILED			436	/* Profile definition errors */
+# define RCERR_POLICY_PW		444	/* Password policy error */
+# define RCERR_POLICY_ACCT		448	/* Account number policy error */
+# define RCERR_TASK			452	/* Task error */
+# define RCERR_SCSI			456	/* SCSI error */
+# define RCERR_DM			500	/* Directory Manager error */
+# define RCERR_LIST_DM			504	/* Directory Manager list error */
+# define RCERR_ASYNC_DM			592	/* Asynchronous Operation error */
+# define RCERR_INTERNAL_DM		596	/* Internal Directory Manager error */
+# define RCERR_SHSTOR			600	/* Shared Memory function error */
+# define RCERR_VIRTUALNETWORKD		620	/* Vswitch function error */
+# define RCERR_VMRM			800	/* Error from VMRM functions */
+# define RCERR_SERVER			900	/* Socket-Server error */
+
+/*
+ * Syntax error reason codes
+ */
+# define RS_NONE			  0
+# define RS_TOOMANY			  0
+# define RS_TANY			  0 
+# define RS_TBIN			  2
+# define RS_UNSIGNEDINT			 10
+# define RS_TNUM			 10
+# define RS_UNSUPPORTED			 11
+# define RS_SHORT			 14
+# define RS_LESSTHANMIN			 15
+# define RS_HEX				 16
+# define RS_THEX			 16
+# define RS_THEXHY			 17
+# define RS_LONG			 13
+# define RS_MORETHANMAX			 18
+# define RS_UNRECOG			 19
+# define RS_CONFLICTING			 23
+# define RS_UNSPECIFIED			 24
+# define RS_EXTRANEOUS			 25
+# define RS_ALPHABETIC			 26
+# define RS_TALPHA			 26
+# define RS_FUNCTIONNAME		 27
+# define RS_TALPHA_			 27
+# define RS_ALPHANUMERIC		 36
+# define RS_TNUMALPHA			 36
+# define RS_ALPHANUMERIC_		 37
+# define RS_TNUMALPHAHY			 37
+# define RS_TLIST			 38 
+# define RS_DIRMAINTFILE		 42
+# define RS_TFILE			 42 
+# define RS_DIRMAINTFILE_		 43
+# define RS_TFILE_			 43 
+# define RS_DIRMAINTFILE_EQ		 44
+# define RS_TFILE_EQ			 44 
+# define RS_UNEXPECTED_END		 88
+# define RS_NON_BREAKING_CHAR		 99
+# define RS_TNONBLANK			 99
+
+/*
+ * Non-syntax related reason codes
+ */
+# define RS_NONE			  0	/* Request successful */
+# define RS_INVALID_USER		  2	/* Invalid user */
+# define RS_INVALID_DEVICE		  2	/* invalid device */
+# define RS_NO_OSAS			  4 	/* No OSAs exist */
+# define RS_INVALID_OP			  3 	/* Invalid LAN operation */
+# define RS_INVALID_PRO			  4 	/* Invalid LAN promiscuity */
+# define RS_NO_DEV			  4 	/* No IPL device */
+# define RS_DEFERRED_SERVER		  4 	/* Authorization deferred to server */
+# define RS_DUP_NAME			  4 	/* Duplicate tag name */
+# define RS_EXISTS			  4 	/* Device already exists*/
+# define RS_IN_USE			  4 	/* Image Disk already in use */
+# define RS_IVS_NAME_USED		  4 	/* Group/region/volume already defined */
+# define RS_LOADDEV_NOT_FOUND		  4 	/* LOADDEV statement not found */
+# define RS_NO_PARTNER			  4 	/* Partner image not found */
+# define RS_NO_UPDATES			  4 	/* Directory manager not accepting update*/
+# define RS_NOT_FOUND			  4 	/* Image/Task Not Found */
+# define RS_NOTIFY_DUPLICATE		  4 	/* Duplicate subscription */
+# define RS_SEG_NAME_DUPLICATE		  4 	/* Segment name already used */
+# define RS_AFFINITY_SUPPRESSED		  4	/* CPU defined but affinity suppressed */
+# define RS_WORK_OUTSTANDING		  4	/* Image_Defintion_* asynch */
+# define RS_UNRESTRICTED_LAN		  5 	/* LAN is unrestricted */
+# define RS_NO_USERS			  6 	/* No users authorized for LAN */
+# define RS_ADAPTER_NOT_EXIST		  8 	/* Adapter does not exist */
+# define RS_ALREADY_ACTIVE		  8 	/* Image already active */
+# define RS_AUTHERR_CONNECT		  8 	/* Not authorized to connect */
+# define RS_AUTHERR_ESM			  8 	/* Request not authorized by an ESM */
+# define RS_BAD_RANGE			  8 	/* Bad page range */
+# define RS_DEV_NOT_FOUND		  8 	/* Device not found */
+# define RS_IVS_NAME_NOT_USED		  8 	/* Group/region/volume is not defined */
+# define RS_NAME_EXISTS			  8 	/* Image Name already defined */
+# define RS_NO_MEASUREMENT_DATA		  8 	/* No VMRM measurement query data */
+# define RS_NOT_AVAILABLE		  8 	/* Directory manager not available */
+# define RS_NOT_DEFINED			  8 	/* Image Device/Volume/Region/Group/Tag name not defined */
+# define RS_NOT_EXIST			  8 	/* Device does not exist */
+# define RS_NOTIFY_NOT_FOUND		  8 	/* No matching entries */
+# define RS_NOT_IN_USE			  8 	/* Image disk not in use */
+# define RS_OFFLINE			  8 	/* Successful; Object directory offline */
+# define RS_SEG_NAME_NOT_FOUND		  8 	/* Segment name not used */
+# define RS_WORKER_NOT_FOUND		  8 	/* Worker server not found */
+# define RS_DEV_NOT_AVAIL_TO_ATTACH	 10  	/* Device not found */
+# define RS_TOO_MANY_PARM		 10 	/* Too many parms in parameter list */
+# define RS_TOO_FEW_PARM		 11 	/* Too few parms in parameter list */
+# define RS_ALREADY_LOCKED		 12 	/* Image definition already locked */
+# define RS_AUTHERR_DM			 12 	/* Request not authorized by Directory Manager */
+# define RS_BUSY			 12 	/* Image device is busy */
+# define RS_DUP_ORDINAL			 12 	/* Duplicate tag ordinal */
+# define RS_FUNCTION_NOT_VALID		 12 	/* Not a valid SMAPI function */
+# define RS_IVS_NAME_NOT_INCLUDED	 12 	/* Name not included (ISR,ISQ)*/
+# define RS_LAN_NOT_EXIST		 12 	/* LAN does not exist */
+# define RS_LOCKED			 12 	/* Image definition is locked */
+# define RS_NAMESAVE_EXISTS		 12 	/* Namesave statementt already in directory*/
+# define RS_NEW_LIST 			 12 	/* Successful new list created */
+# define RS_NOT_ACTIVE			 12 	/* Image not active */
+# define RS_NOT_INCLUDED		 12 	/* Region not included in group */
+# define RS_NOT_LOGGED_ON		 12 	/* User not logged on */
+# define RS_DEV_NOT_VOLUME		 12 	/* Device not a volume */
+# define RS_UPDATE_SYNTAX_ERROR		 12 	/* Errors in configuration update buffer */
+# define RS_FREE_MODE_NOT_AVAIL		 14 	/* Free mode not available */
+# define RS_AUTHERR_SERVER		 16 	/* Request not authorized by server */
+# define RS_BEING_DEACT			 16 	/* Image being deactivated */
+# define RS_CANNOT_ACCESS_DATA		 16 	/* Cannot access configuration or VMRM measurement data */
+# define RS_CANNOT_DELETE		 16 	/* Cannot delete image definition */
+# define RS_CANNOT_REVOKE		 16 	/* Cannot revoke tag definition */
+# define RS_CANNOT_SHARE		 16 	/* Image disk cannot be shared */
+# define RS_DEV_NOT_ONLINE		 16 	/* Device not online */
+# define RS_LIST_DESTROYED		 16 	/* Successful no more entries: list destroyed */
+# define RS_NO_MATCH			 16 	/* Parameters don't match existing directory statement */
+# define RS_NO_SHARING			 16 	/* Image disk sharing not allowed by target image definition */
+# define RS_NOSAVE			 16 	/* Could not save segment */
+# define RS_PTS_ENTRY_NOT_VALID		 16  	/* Parser entry not valid */
+# define RS_TAG_LONG			 16 	/* Tag too long */
+# define RS_VOLID_NOT_FOUND		 18 	/* Volid not found */
+# define RS_IS_CONNECTED		 20 	/* Device already connected */
+# define RS_NOT_AUTHORIZED		 20 	/* Not authorized for function */
+# define RS_OWNER_NOT_ACTIVE		 20 	/* Owner of reqested LAN not active */
+# define RS_PARM_LIST_NOT_VALID		 20 	/* Parameter list not valid */
+# define RS_PW_FORMAT_NOT_SUPPORTED	 20 	/* Directory manager does not support password format */
+# define RS_SHARE_DIFF_MODE		 20 	/* Image disk shared in different mode */
+# define RS_VOLID_IN_USE		 20 	/* Volid is in use */
+# define RS_TARGET_IMG_NOT_AUTH		 20 	/* Target Image not authorized to issue the command */
+# define RS_PDISKS_SAME			 22 	/* Parm disk 1 and 2 are same */
+# define RS_CONFLICTING_PARMS		 24 	/* Conflicting storage parameters */
+# define RS_LAN_NAME_EXISTS		 24 	/* Same name as an existing LAN */
+# define RS_LIST_NOT_FOUND		 24 	/* List not found */
+# define RS_NO_SPACE			 24 	/* Image disk space not available */
+# define RS_NOT_LOCKED			 24 	/* Image name is not locked  */
+# define RS_PARM_DISK_LINK_ERR		 24 	/* Error linking parm disk (1 or 2)*/
+# define RS_SFS_ERROR			 24 	/* Shared File System error */
+# define RS_TYPE_NOT_SAME		 24 	/* Image device type not same as source */
+# define RS_UPDATE_WRITE_ERROR		 24 	/* Configuration update could not write files */
+# define RS_TAPE_NOT_ASSIGNED		 24 	/* Tape not assigned */
+# define RS_VCPU_ALREADY_EXISTS		 24 	/* Virtual CPU already defined */
+# define RS_VCPU_OUT_OF_RANGE		 28 	/* CPU beyond range defined in directory */
+# define RS_DEV_INCOMPATIBLE		 28 	/* Incorrect device type */
+# define RS_EMPTY			 28 	/* Return buffer is empty */
+# define RS_FILE_NOT_FOUND		 28 	/* File not found */
+# define RS_NO_MATCH_ON_SEARCH		 28 	/* No entries match search criteria */
+# define RS_NOT_ALL			 28 	/* Some images in list not activated */
+# define RS_OUTPUT_NOT_VALID		 28 	/* Output from function not valid */
+# define RS_PARM_DISK_NOT_RW		 28 	/* Parm Disk (1 or 2) not R/W */
+# define RS_PW_NEEDED			 28 	/* Image Disk does not have required password */
+# define RS_SEGMENT_NOT_FOUND		 28 	/* Shared Storage Segment not found */
+# define RS_SIZE_NOT_SAME		 28 	/* Image device size not same as source */
+# define RS_DEV_NOT_SHARED		 28 	/* Device not shared */
+# define RS_BAD_PW			 32 	/* Incorrect password specified for image disk */
+# define RS_NOT_CONNECTED		 32 	/* Device not connected */
+# define RS_NOT_IN_LIST			 32 	/* Name was not in list */
+# define RS_SOME_NOT_DEACT		 32 	/* Some Images in list not deactivated */
+# define RS_UPDATE_PROCESS_ERROR	 32 	/* Configuration update internal processer */
+# define RS_SYS_CONF_NOT_FOUND		 32 	/* System configuration file not found on PARM disk */
+# define RS_DEV_NOT_RESERVED		 32 	/* Device not reserved */
+# define RS_REQRESP_NOT_VALID		 32 	/* Internal request error */
+# define RS_SYS_CONF_BAD_DATA		 34 	/* Syntax Errors with original system configuration */
+# define RS_IVS_NAME_NOT_DASD		 36 	/* Name not DASD (for ISD) */
+# define RS_LENGTH_NOT_VALID		 36 	/* Length on input/output not valid */
+# define RS_NAME_IN_LIST		 36 	/* Name is already in list  */
+# define RS_NO_VOLUME			 36 	/* No such DASD vol mounted on system; Unable to determine dev type */
+# define RS_SOME_NOT_RECYC		 36 	/* Some images in list not recycled */
+# define RS_SYS_CONF_SYNTX_ERR		 36 	/* Syntax errors with system configuration update*/
+# define RS_TIME_NOT_VALID		 36 	/* Force time for deactvation not valid */
+# define RS_VSWITCH_EXISTS		 36 	/* VSwitch already exists */
+# define RS_DEV_IO_ERROR		 36 	/* Device I/O error */
+# define RS_NO_DIR_AUTH_TO_LINK		 36 	/* No directory authority to link */
+# define RS_CPDISK_MODE_NOT_AVAIL	 38 	/* CP disk modes not available */
+# define RS_PARM_DISK_FULL		 40 	/* Parm Disk (1 or 2) is full */
+# define RS_VSWITCH_NOT_EXISTS		 40 	/* VSwitch doesn't exist */
+# define RS_NWDEV_NOT_DETACHED		 40 	/* Device not detached */
+# define RS_MULTIPLE			 40 	/* Multiple - multiple what? */
+# define RS_SOCKET			 40 	/* Socket error */
+# define RS_TYPE_NOT_SUPPORTED		 40	/* CPU type not supported on your system */
+# define RS_PDISK_ACC_NOT_ALLOWED	 42 	/* Parm Disk 1 or 2 - access not allowed */
+# define RS_ALREADY_AUTH		 44 	/* Image already granted */
+# define RS_PDISK_PW_NOT_SUPPLIED	 44 	/* Parm Disk (1 or 2) password not supplied */
+# define RS_DASD_IN_USE			 44 	/* DASD in use */
+# define RS_IS_DISCONNECTED		 48 	/* Disconnected */
+# define RS_PDISK_PW_INCORRECT		 46 	/* Parm Disk (1 or 2) password is incorrect */
+# define RS_PARM_DISK_NOT_IN_SRVR_DIR    48 	/* Parm Disk (1 or 2) is not in server's user directory */
+# define RS_VLAN_NOT_FOUND		 48 	/* vLAN not found */
+# define RS_MAX_CONN			 52 	/* Max connections reached */
+# define RS_CPRELEASE_ERROR		 50 	/* CPRELEASE error for Parm Disk (1 or 2) */
+# define RS_CPACCESS_ERROR		 52 	/* CPACCESS error for Parm Disk (1 or 2) */
+# define RS_DEF_VSWITCH_EXISTS		 54 	/* DEFINE exists in System Config */
+# define RS_GRANT_EXISTS		 56 	/* GRANT exists in System Config */
+# define RS_REVOKE_FAILED		 58 	/* MODIFY does not exist in System Config */
+# define RS_DEF_VSWITCH_NOT_EXIST	 60 	/* DEFINE does not exist in System config */
+# define RS_VSWITCH_CONFLICT		 62 	/* VSwitch conflict for set API */
+# define RS_DEF_MOD_MULTI_FOUND		 64 	/* Multiple Define or Modify statements found */
+# define RS_DEF_MOD_MULTI_ERASED	 66 	/* Multiple Define or Modify statements erased */
+# define RS_DATABASE			 68 	/* Unable to access database */
+# define RS_UNKNOWN			 96 	/* Connect request failed for unknown reason */
+# define RS_RETRY			 99 	/* Suggest retry API call */
+# define RS_ASYNC_OP_SUCCEEDED		100 	/* Asynch operation succeeded */
+# define RS_ASYNC_OP_IN_PROGRESS	104 	/* Asynch operation in progress */
+# define RS_ASYNC_OP_FAILED		108 	/* Asynch operation failed */ 
+# define RS_CLASS_S_ALREADY_DEFINED	299 	/* DEFSEG class S file exists */
+# define RS_NOT_YET_AVAILABLE		999 	/* Function not yet available */
+# define RS_DEVNO_REQUIRES_FREE_DISK	1157 	/* DEVNO parameter requires the device to be a free volume*/
+# define RS_INVALID_LANID		2783 	/* invalid LAN id */
+# define RS_INVALID_LAN_PARM		2795 	/* LAN parameter for this LAN id */ 
+# define RS_RELOCATION_ERRORS		3000 	/* Relocation error(s) encountered */
+# define RS_NO_RELOCATION_ACTIVE	3001 	/* No active relocations found */
+# define RS_INVALID_PARAMETER		3002 	/* Invalid parameter name */
+# define RS_INVALID_OPERAND		3003 	/* Invalid parameter operand */
+# define RS_MISSING_PARAMETER		3004 	/* Missing parameter */
+# define RS_NOT_IN_SSI			3005 	/* System not in an SSI */
+# define RS_SSI_UNSTABLE		3006 	/* SSI is not in a stable state */
+# define RS_SSI_CPOWNED_CONFLICT	3007 	/* The volume or slot is not on all systems in SSI */
+# define RS_NOT_SSI_MEMBER		3008 	/* Not a member of an SSI cluster */
+# define RS_REPAIR_IPL_PARAM		3009 	/* IPLed with the REPAIR IPL param */
+# define RS_RELOCATION_MODIFY_ERROR	3010 	/* VMRELOCATE Modify error */
+# define RS_NO_SLOTS_AVAILABLE		3011 	/* No unique CP_OWNED slot available on system and in config */
+# define RS_VOLUME_NOT_FOUND		3012 	/* VOLUME cannot be found */
+# define RS_VOLUME_OFFLINE		3013 	/* The volume is offline */
+# define RS_SHARE_UNSUPPORTED		3014 	/* Volume does not support sharing */
+
+/*
+ * API functional level
+ */
+# define RS_530  			  0	/* 5.3.0 level */
+# define RS_540				540	/* 5.4.0 level */
+# define RS_610				610	/* 6.1.0 level */
+# define RS_611				611	/* 6.1.1 level */
+# define RS_620				620	/* 6.2.0 level */
+# define RS_621				621	/* 6.2.1 level */
+# define RS_630				630	/* 6.3.0 level */
+
+/*
+ * SMAPI Operations
+ */
+# define Asynchronous_Notification_Disable_DM			"Asynchronous_Notification_Disable_DM"
+# define Asynchronous_Notification_Enable_DM			"Asynchronous_Notification_Enable_DM"
+# define Asynchronous_Notification_Query_DM			"Asynchronous_Notification_Query_DM"
+# define Authorization_List_Add					"Authorization_List_Add"
+# define Authorization_List_Query				"Authorization_List_Query"
+# define Authorization_List_Remove				"Authorization_List_Remove"
+# define Check_Authentication					"Check_Authentication"
+# define Delete_ABEND_Dump					"Delete_ABEND_Dump"
+# define Directory_Manager_Local_Tag_Define_DM			"Directory_Manager_Local_Tag_Define_DM"
+# define Directory_Manager_Local_Tag_Delete_DM			"Directory_Manager_Local_Tag_Delete_DM"
+# define Directory_Manager_Local_Tag_Query_DM			"Directory_Manager_Local_Tag_Query_DM"
+# define Directory_Manager_Local_Tag_Set_DM			"Directory_Manager_Local_Tag_Set_DM"
+# define Directory_Manager_Search_DM				"Directory_Manager_Search_DM"
+# define Directory_Manager_Task_Cancel_DM			"Directory_Manager_Task_Cancel_DM"
+# define Event_Stream_Add					"Event_Stream_Add"
+# define Event_Subscribe					"Event_Subscribe"
+# define Event_Unsubscribe					"Event_Unsubscribe"
+# define Image_Activate						"Image_Activate"
+# define Image_Active_Configuration_Query			"Image_Active_Configuration_Query"
+# define Image_CPU_Define					"Image_CPU_Define"
+# define Image_CPU_Define_DM					"Image_CPU_Define_DM"
+# define Image_CPU_Delete					"Image_CPU_Delete"
+# define Image_CPU_Delete_DM					"Image_CPU_Delete_DM"
+# define Image_CPU_Query					"Image_CPU_Query"
+# define Image_CPU_Query_DM					"Image_CPU_Query_DM"
+# define Image_CPU_Set_Maximum_DM				"Image_CPU_Set_Maximum_DM"
+# define Image_Create_DM					"Image_Create_DM"
+# define Image_Deactivate					"Image_Deactivate"
+# define Image_Definition_Async_Updates				"Image_Definition_Async_Updates"
+# define Image_Definition_Create_DM				"Image_Definition_Create_DM"
+# define Image_Definition_Delete_DM				"Image_Definition_Delete_DM"
+# define Image_Definition_Query_DM				"Image_Definition_Query_DM"
+# define Image_Definition_Update_DM				"Image_Definition_Update_DM"
+# define Image_Delete_DM					"Image_Delete_DM"
+# define Image_Device_Dedicate					"Image_Device_Dedicate"
+# define Image_Device_Dedicate_DM				"Image_Device_Dedicate_DM"
+# define Image_Device_Reset					"Image_Device_Reset"
+# define Image_Device_Undedicate				"Image_Device_Undedicate"
+# define Image_Device_Undedicate_DM				"Image_Device_Undedicate_DM"
+# define Image_Disk_Copy					"Image_Disk_Copy"
+# define Image_Disk_Copy_DM					"Image_Disk_Copy_DM"
+# define Image_Disk_Create					"Image_Disk_Create"
+# define Image_Disk_Create_DM					"Image_Disk_Create_DM"
+# define Image_Disk_Delete					"Image_Disk_Delete"
+# define Image_Disk_Delete_DM					"Image_Disk_Delete_DM"
+# define Image_Disk_Query					"Image_Disk_Query"
+# define Image_Disk_Share					"Image_Disk_Share"
+# define Image_Disk_Share_DM					"Image_Disk_Share_DM"
+# define Image_Disk_Unshare					"Image_Disk_Unshare"
+# define Image_Disk_Unshare_DM					"Image_Disk_Unshare_DM"
+# define Image_IPL_Delete_DM					"Image_IPL_Delete_DM"
+# define Image_IPL_Query_DM					"Image_IPL_Query_DM"
+# define Image_IPL_Set_DM					"Image_IPL_Set_DM"
+# define Image_Lock_DM						"Image_Lock_DM"
+# define Image_Name_Query_DM					"Image_Name_Query_DM"
+# define Image_Password_Set_DM					"Image_Password_Set_DM"
+# define Image_Query_Activate_Time				"Image_Query_Activate_Time"
+# define Image_Query_DM						"Image_Query_DM"
+# define Image_Recycle						"Image_Recycle"
+# define Image_Replace_DM					"Image_Replace_DM"
+# define Image_SCSI_Characteristics_Define_DM			"Image_SCSI_Characteristics_Define_DM"
+# define Image_SCSI_Characteristics_Query_DM			"Image_SCSI_Characteristics_Query_DM"
+# define Image_Status_Query					"Image_Status_Query"
+# define Image_Unlock_DM					"Image_Unlock_DM"
+# define Image_Volume_Add					"Image_Volume_Add"
+# define Image_Volume_Delete					"Image_Volume_Delete"
+# define Image_Volume_Share					"Image_Volume_Share"
+# define Image_Volume_Space_Define_DM				"Image_Volume_Space_Define_DM"
+# define Image_Volume_Space_Define_Extended_DM			"Image_Volume_Space_Define_Extended_DM"
+# define Image_Volume_Space_Query_DM				"Image_Volume_Space_Query_DM"
+# define Image_Volume_Space_Query_Extended_DM			"Image_Volume_Space_Query_Extended_DM"
+# define Image_Volume_Space_Remove_DM				"Image_Volume_Space_Remove_DM"
+# define Metadata_Delete					"Metadata_Delete"
+# define Metadata_Get						"Metadata_Get"
+# define Metadata_Set						"Metadata_Set"
+# define Name_List_Add						"Name_List_Add"
+# define Name_List_Destroy					"Name_List_Destroy"
+# define Name_List_Query					"Name_List_Query"
+# define Name_List_Remove					"Name_List_Remove"
+# define Page_or_Spool_Volume_Add				"Page_or_Spool_Volume_Add"
+# define Process_ABEND_Dump					"Process_ABEND_Dump"
+# define Profile_Create_DM					"Profile_Create_DM"
+# define Profile_Delete_DM					"Profile_Delete_DM"
+# define Profile_Lock_DM					"Profile_Lock_DM"
+# define Profile_Query_DM					"Profile_Query_DM"
+# define Profile_Replace_DM					"Profile_Replace_DM"
+# define Profile_Unlock_DM					"Profile_Unlock_DM"
+# define Prototype_Create_DM					"Prototype_Create_DM"
+# define Prototype_Delete_DM					"Prototype_Delete_DM"
+# define Prototype_Name_Query_DM				"Prototype_Name_Query_DM"
+# define Prototype_Query_DM					"Prototype_Query_DM"
+# define Prototype_Replace_DM					"Prototype_Replace_DM"
+# define Query_ABEND_Dump					"Query_ABEND_Dump"
+# define Query_All_DM						"Query_All_DM"
+# define Query_API_Functional_Level				"Query_API_Functional_Level"
+# define Query_Asynchronous_Operation_DM			"Query_Asynchronous_Operation_DM"
+# define Query_Directory_Manager_Level_DM			"Query_Directory_Manager_Level_DM"
+# define Response_Recovery					"Response_Recovery"
+# define Shared_Memory_Access_Add_DM				"Shared_Memory_Access_Add_DM"
+# define Shared_Memory_Access_Query_DM				"Shared_Memory_Access_Query_DM"
+# define Shared_Memory_Access_Remove_DM				"Shared_Memory_Access_Remove_DM"
+# define Shared_Memory_Create					"Shared_Memory_Create"
+# define Shared_Memory_Delete					"Shared_Memory_Delete"
+# define Shared_Memory_Query					"Shared_Memory_Query"
+# define Shared_Memory_Replace					"Shared_Memory_Replace"
+# define SSI_Query						"SSI_Query"
+# define Static_Image_Changes_Activate_DM			"Static_Image_Changes_Activate_DM"
+# define Static_Image_Changes_Deactivate_DM			"Static_Image_Changes_Deactivate_DM"
+# define Static_Image_Changes_Immediate_DM			"Static_Image_Changes_Immediate_DM"
+# define System_Config_Syntax_Check				"System_Config_Syntax_Check"
+# define System_Disk_Accessibility				"System_Disk_Accessibility"
+# define System_Disk_Add					"System_Disk_Add"
+# define System_Disk_Query					"System_Disk_Query"
+# define System_FCP_Free_Query					"System_FCP_Free_Query"
+# define System_Performance_Threshold_Disable			"System_Performance_Threshold_Disable"
+# define System_Performance_Threshold_Enable			"System_Performance_Threshold_Enable"
+# define System_SCSI_Disk_Add					"System_SCSI_Disk_Add"
+# define System_SCSI_Disk_Delete				"System_SCSI_Disk_Delete"
+# define System_SCSI_Disk_Query					"System_SCSI_Disk_Query"
+# define System_WWPN_Query					"System_WWPN_Query"
+# define Virtual_Channel_Connection_Create			"Virtual_Channel_Connection_Create"
+# define Virtual_Channel_Connection_Create_DM			"Virtual_Channel_Connection_Create_DM"
+# define Virtual_Channel_Connection_Delete			"Virtual_Channel_Connection_Delete"
+# define Virtual_Channel_Connection_Delete_DM			"Virtual_Channel_Connection_Delete_DM"
+# define Virtual_Network_Adapter_Connect_LAN			"Virtual_Network_Adapter_Connect_LAN"
+# define Virtual_Network_Adapter_Connect_LAN_DM			"Virtual_Network_Adapter_Connect_LAN_DM"
+# define Virtual_Network_Adapter_Connect_Vswitch		"Virtual_Network_Adapter_Connect_Vswitch"
+# define Virtual_Network_Adapter_Connect_Vswitch_DM		"Virtual_Network_Adapter_Connect_Vswitch_DM"
+# define Virtual_Network_Adapter_Connect_Vswitch_Extended	"Virtual_Network_Adapter_Connect_Vswitch_Extended"
+# define Virtual_Network_Adapter_Create				"Virtual_Network_Adapter_Create"
+# define Virtual_Network_Adapter_Create_DM			"Virtual_Network_Adapter_Create_DM"
+# define Virtual_Network_Adapter_Create_Extended		"Virtual_Network_Adapter_Create_Extended"
+# define Virtual_Network_Adapter_Create_Extended_DM		"Virtual_Network_Adapter_Create_Extended_DM"
+# define Virtual_Network_Adapter_Delete				"Virtual_Network_Adapter_Delete"
+# define Virtual_Network_Adapter_Delete_DM			"Virtual_Network_Adapter_Delete_DM"
+# define Virtual_Network_Adapter_Disconnect			"Virtual_Network_Adapter_Disconnect"
+# define Virtual_Network_Adapter_Disconnect_DM			"Virtual_Network_Adapter_Disconnect_DM"
+# define Virtual_Network_Adapter_Query				"Virtual_Network_Adapter_Query"
+# define Virtual_Network_LAN_Access				"Virtual_Network_LAN_Access"
+# define Virtual_Network_LAN_Access_Query			"Virtual_Network_LAN_Access_Query"
+# define Virtual_Network_LAN_Create				"Virtual_Network_LAN_Create"
+# define Virtual_Network_LAN_Delete				"Virtual_Network_LAN_Delete"
+# define Virtual_Network_LAN_Query				"Virtual_Network_LAN_Query"
+# define Virtual_Network_OSA_Query				"Virtual_Network_OSA_Query"
+# define Virtual_Network_VLAN_Query_Stats			"Virtual_Network_VLAN_Query_Stats"
+# define Virtual_Network_Vswitch_Create				"Virtual_Network_Vswitch_Create"
+# define Virtual_Network_Vswitch_Create_Extended		"Virtual_Network_Vswitch_Create_Extended"
+# define Virtual_Network_Vswitch_Delete				"Virtual_Network_Vswitch_Delete"
+# define Virtual_Network_Vswitch_Delete_Extended		"Virtual_Network_Vswitch_Delete_Extended"
+# define Virtual_Network_Vswitch_Query				"Virtual_Network_Vswitch_Query"
+# define Virtual_Network_Vswitch_Query_Extended			"Virtual_Network_Vswitch_Query_Extended"
+# define Virtual_Network_Vswitch_Query_Stats			"Virtual_Network_Vswitch_Query_Stats"
+# define Virtual_Network_Vswitch_Set				"Virtual_Network_Vswitch_Set"
+# define Virtual_Network_Vswitch_Set_Extended			"Virtual_Network_Vswitch_Set_Extended"
+# define VMRELOCATE						"VMRELOCATE"
+# define VMRELOCATE_Image_Attributes				"VMRELOCATE_Image_Attributes"
+# define VMRELOCATE_Modify					"VMRELOCATE_Modify"
+# define VMRELOCATE_Status					"VMRELOCATE_Status"
+# define VMRM_Configuration_Query				"VMRM_Configuration_Query"
+# define VMRM_Configuration_Update				"VMRM_Configuration_Update"
+# define VMRM_Measurement_Query					"VMRM_Measurement_Query"
+
+# define FORCE_IMMED	"IMMED"
+# define FORCE_WITHIN	"WITHIN 99999"
+
+/*
+ * Standard fields in a response from SMAPI server
+ */
+typedef struct {
+	uint32_t outLen;		/* Length of output data */
+	uint32_t reqId;			/* Request ID to which response refers */
+	uint32_t rc;			/* Return code */
+	uint32_t reason;		/* Reason code */
+} smapiOutHeader_t;
+
+typedef struct {
+	smapiOutHeader_t hdr;		/* Output header */
+	uint32_t lArray;		/* Length of array output */
+	char     array[0];		/* Start of array output */
+} smapiArrayHeader_t;
+ 
+/*
+ * Structures returned from Image_Active_Configuration_Query
+ */
+typedef struct {
+	smapiOutHeader_t hdr;
+	int32_t memSize;
+	uint8_t	memUnit;
+# define SMAPI_MEMUNIT_KB	1
+# define SMAPI_MEMUNIT_MB	2
+# define SMAPI_MEMUNIT_GB	3
+	uint8_t	shareType;	
+# define SMAPI_SHRTYPE_R	1
+# define SMAPI_SHRTYPE_A	2
+	int32_t	lShare;
+	char	share[0];
+} __attribute__ ((__packed__)) zvm_actImgHdr_t;
+
+typedef struct {
+	char	share[5];
+} zvm_actImgShr_t;
+
+typedef struct {
+	int32_t	nCPU;
+	int32_t	lCPUArray;
+	char	cpuArray[0];
+} zvm_actImgCPUArr_t;
+
+typedef struct {
+	int32_t	lCPUStruct;
+	char	cpuStruct[0];
+} zvm_actImgCPUHdr_t;
+
+typedef struct {
+	int32_t	cpuNumber;
+	int32_t	lCPUId;
+	char	cpuId[16];
+} zvm_actImgCPUId_t;
+
+typedef struct {
+	uint8_t	cpuState;
+# define SMAPI_CPUSTATE_BASE	1
+# define SMAPI_CPUSTATE_STOPPED	2
+# define SMAPI_CPUSTATE_CHECK	3
+# define SMAPI_CPUSTATE_ACTIVE	4
+	int32_t	lDevArray;
+	char	devArray[0];
+} __attribute__ ((__packed__)) zvm_actImgCPUState_t;
+
+typedef struct {
+	int32_t	lDevStruct;
+	char	devStruct[0];
+} zvm_actImgDevHdr_t;
+
+typedef struct {
+	uint8_t	devType;
+# define SMAPI_DEVTYPE_CONS	1
+# define SMAPI_DEVTYPE_RDR	2
+# define SMAPI_DEVTYPE_PUN	3
+# define SMAPI_DEVTYPE_PRT	4
+# define SMAPI_DEVTYPE_DASD	5
+	int32_t	lDevAddr;
+	uint8_t	devAddr[4];
+} __attribute__ ((__packed__)) zvm_actImgDev_t;
+
+typedef struct {
+	int	 sd;
+	int	 reason;
+	uint32_t timeOut;
+	uint32_t delay;
+	char	 target[9];
+	char	 authUser[9];
+	char	 authPass[9];
+	char	 node[9];
+	char	 smapiSrv[128];
+} zvm_driver_t;
+
+int zvm_smapi_open(zvm_driver_t *);
+int zvm_smapi_send(zvm_driver_t *, void *, uint32_t *, int32_t);
+int zvm_smapi_recv(zvm_driver_t *, void **, int32_t *);
+int zvm_smapi_close(zvm_driver_t *);
+int zvm_smapi_imageActivate(zvm_driver_t *);
+int zvm_smapi_imageActiveQuery(zvm_driver_t *);
+int zvm_smapi_imageDeactivate(zvm_driver_t *);
+int zvm_smapi_imageRecycle(zvm_driver_t *);
+int zvm_smapi_imageQuery(zvm_driver_t *);
+
+#endif /* FENCE_ZVM_H */
diff --git a/fence/agents/zvm/fence_zvm_man_page b/fence/agents/zvm/fence_zvm_man_page
new file mode 100644
index 0000000..359436e
--- /dev/null
+++ b/fence/agents/zvm/fence_zvm_man_page
@@ -0,0 +1,87 @@
+.TH fence_zvm 8
+
+.SH NAME
+fence_zvm - Power Fencing agent for GFS on System z z/VM Clusters
+
+.SH SYNOPSIS
+.B
+fence_zvm
+[\fIOPTION\fR]...
+
+.SH DESCRIPTION
+fence_zvm is a Power Fencing agent used on a GFS virtual machine in a System z z/VM cluster.
+It uses the SMAPI interface to recycle an active image.
+
+fence_zvm accepts options on the command line as well as from stdin.
+fence_node sends the options through stdin when it execs the agent.
+fence_zvm can be run by itself with command line options which is useful
+for testing.
+
+Vendor URL: http://www.sinenomine.net
+
+.SH OPTIONS
+.TP
+\fB-o --action\fP
+Fencing action: "off" - deactivate virtual machine; "on" - activate virtual machine; "metadata" - display device metadata" - describe fence agent parameters; "status" - state of virtual machine
+.TP
+\fB--delay\fP \fIseconds\fP
+Time to delay fencing action in seconds
+.TP
+\fB-n --plug\fP \fItarget\fP
+Name of virtual machine to recycle.
+.TP
+\fB-h --help\fP
+Print out a help message describing available options, then exit.
+.TP
+\fB-a --ip\fP \fIsmapi Server\fP
+\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents this name is a little misleading: it is the name of the virtual machine not its IP address or hostname.
+.TP
+\fB--zvmsys\fP \fIz/VM System\fP
+\fBName\fP of z/VM on which the SMAPI server virtual machine resides. Optional - defaults to system on which the node is running.
+.TP
+\fB-h --help\fP
+Display usage information
+.TP
+\fI-t --timeout = < shutdown timeout >\fP
+Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
+forcibly terminated. Currently, this option is ignored.
+
+.SH STDIN PARAMETERS
+.TP
+\fIagent = < param >\fP
+This option is used by fence_node(8) and is ignored by fence_zvm.
+.TP
+\fIaction = < action >\fP
+Fencing action: "off" - fence off device; "metadata" - display device metadata; "status" - state of device
+.TP
+\fIport = < target >\fP
+Name of virtual machine to recycle.
+.TP
+\fIipaddr= < server name >\fP
+\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents thisname is a little misleading: it is the name of the virtual machine not its IP address or hostname.
+.TP
+\fItimeout = < shutdown timeout >\fP
+Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
+forcibly terminated. Currently, this option is ignored.
+
+.SH SEE ALSO
+fence(8), fenced(8), fence_node(8)
+
+.SH NOTES
+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:
+
+.nf
+Column 1                   Column 66                Column 131
+|                          |                        |
+V                          V                        V
+XXXXXXXX                   ALL                      IMAGE_OPERATIONS
+.fi
+
+Where XXXXXXX is the name of the virtual machine where the agent resides. 
+
+In addition, the VM directory entry that defines this virtual machine requires the
+IUCV ANY statement (or IUCV <userid of SMAPI Server>). This authorizes use of IUCV
+to connect to the SMAPI server.
diff --git a/make/agentpycheck.mk b/make/agentpycheck.mk
index 181fd17..759da0c 100644
--- a/make/agentpycheck.mk
+++ b/make/agentpycheck.mk
@@ -1,5 +1,5 @@
 DATADIR:=$(abs_top_srcdir)/tests/data/metadata
-AWK_VAL='BEGIN {store=-1} /name=\"store_path\"/ {store=2} {if (store!=0) {print}; store--}'
+AWK_VAL='BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}'
 
 TEST_TARGET=$(filter-out $(TEST_TARGET_SKIP),$(TARGET))
 
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
index 1d50398..859e2a7 100644
--- a/make/fencebuild.mk
+++ b/make/fencebuild.mk
@@ -1,4 +1,4 @@
-$(TARGET): $(SRC)
+define gen_agent_from_py
 	mkdir -p `dirname $@`
 	bash $(top_srcdir)/scripts/fenceparse \
 		$(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
@@ -35,9 +35,17 @@ $(TARGET): $(SRC)
 	else true ; fi
 
 	for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
-		cp $(@) $(@D)/$$x; \
+		cp -f $(@) $(@D)/$$x; \
 		$(MAKE) $(@D)/$$x.8; \
 	done
+endef
+
+# dependency, one on one
+$(foreach t,$(TARGET),$(eval $(t) : $(t:=.py)))
+
+# rule
+$(TARGET):
+	$(call gen_agent_from_py)
 
 clean: clean-man
 	rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki
@@ -47,3 +55,28 @@ clean: clean-man
 	fi
 
 clean-local: clean
+
+install-exec-hook: $(TARGET)
+	if [ -n "$(man8dir)" ]; then \
+		echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
+		$(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
+	fi
+	for p in $(TARGET); do \
+		dir=`dirname $$p`; \
+		for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
+			echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
+			$(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
+			echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
+			$(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \
+		done; \
+	done
+
+uninstall-hook: $(TARGET)
+	files=`for p in $(TARGET); do \
+		for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
+			echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
+			rm -f "$(DESTDIR)$(sbindir)/$$x"; \
+			echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
+			rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \
+		done; \
+	done`
diff --git a/make/fenceman.mk b/make/fenceman.mk
index 1496eb4..4bfc33c 100644
--- a/make/fenceman.mk
+++ b/make/fenceman.mk
@@ -1,7 +1,7 @@
-%.8: $(TARGET) $(top_srcdir)/fence/agents/lib/fence2man.xsl
+%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl
 	set -e && \
 	PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \
-		$(PYTHON) $(@:%.8=%) -o metadata > $(@D)/.$(@F).tmp && \
+		$(PYTHON) $* -o metadata > $(@D)/.$(@F).tmp && \
 	xmllint --noout --relaxng $(abs_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \
 	xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
 	xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml
index 2a69464..86e96f9 100644
--- a/tests/data/metadata/fence_alom.xml
+++ b/tests/data/metadata/fence_alom.xml
@@ -125,7 +125,6 @@
 	</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>
 </parameters>
diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
index 8844fcc..1a73057 100644
--- a/tests/data/metadata/fence_amt.xml
+++ b/tests/data/metadata/fence_amt.xml
@@ -84,7 +84,6 @@
 	</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="delay" unique="0" required="0">
@@ -129,7 +128,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml
index a133e3e..e187c3b 100644
--- a/tests/data/metadata/fence_apc.xml
+++ b/tests/data/metadata/fence_apc.xml
@@ -130,12 +130,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml
index 608f271..ba3b47a 100644
--- a/tests/data/metadata/fence_apc_snmp.xml
+++ b/tests/data/metadata/fence_apc_snmp.xml
@@ -155,17 +155,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml
index 357e229..bf1760f 100644
--- a/tests/data/metadata/fence_bladecenter.xml
+++ b/tests/data/metadata/fence_bladecenter.xml
@@ -130,12 +130,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml
index be42da7..14273e3 100644
--- a/tests/data/metadata/fence_brocade.xml
+++ b/tests/data/metadata/fence_brocade.xml
@@ -125,12 +125,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml
index 915d2e8..8b9e96b 100644
--- a/tests/data/metadata/fence_cisco_mds.xml
+++ b/tests/data/metadata/fence_cisco_mds.xml
@@ -154,17 +154,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml
index a0d7697..cf1b5be 100644
--- a/tests/data/metadata/fence_cisco_ucs.xml
+++ b/tests/data/metadata/fence_cisco_ucs.xml
@@ -135,7 +135,6 @@
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml
index 6ef6019..e53ff92 100644
--- a/tests/data/metadata/fence_docker.xml
+++ b/tests/data/metadata/fence_docker.xml
@@ -133,7 +133,6 @@
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
index 4228724..45bbcd1 100644
--- a/tests/data/metadata/fence_drac.xml
+++ b/tests/data/metadata/fence_drac.xml
@@ -110,7 +110,6 @@
 	</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>
diff --git a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml
index 9d3f1a4..806f9b7 100644
--- a/tests/data/metadata/fence_drac5.xml
+++ b/tests/data/metadata/fence_drac5.xml
@@ -134,12 +134,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml
index dce5848..da6bdbe 100644
--- a/tests/data/metadata/fence_eaton_snmp.xml
+++ b/tests/data/metadata/fence_eaton_snmp.xml
@@ -154,17 +154,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml
index 9d0c85e..957631b 100644
--- a/tests/data/metadata/fence_emerson.xml
+++ b/tests/data/metadata/fence_emerson.xml
@@ -154,17 +154,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml
index abeedbe..fa46677 100644
--- a/tests/data/metadata/fence_hds_cb.xml
+++ b/tests/data/metadata/fence_hds_cb.xml
@@ -130,12 +130,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml
index 97d9afc..d4342a5 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_hpblade.xml
@@ -130,12 +130,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml
index e854ad4..ea7f618 100644
--- a/tests/data/metadata/fence_ibmblade.xml
+++ b/tests/data/metadata/fence_ibmblade.xml
@@ -154,17 +154,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
index c8929b7..a958fd5 100644
--- a/tests/data/metadata/fence_idrac.xml
+++ b/tests/data/metadata/fence_idrac.xml
@@ -116,7 +116,6 @@
 	</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="login_timeout" unique="0" required="0">
@@ -156,7 +155,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml
index 9310ee6..1d223db 100644
--- a/tests/data/metadata/fence_ifmib.xml
+++ b/tests/data/metadata/fence_ifmib.xml
@@ -156,17 +156,14 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
index cf080f8..3f0a984 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -136,7 +136,6 @@
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
index 411f164..6bac41b 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -136,7 +136,6 @@
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
index cc8562c..6e75592 100644
--- a/tests/data/metadata/fence_ilo3.xml
+++ b/tests/data/metadata/fence_ilo3.xml
@@ -116,7 +116,6 @@
 	</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="login_timeout" unique="0" required="0">
@@ -156,7 +155,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml
index e2131a9..a400855 100644
--- a/tests/data/metadata/fence_ilo3_ssh.xml
+++ b/tests/data/metadata/fence_ilo3_ssh.xml
@@ -135,12 +135,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
index a5c7061..cb7da23 100644
--- a/tests/data/metadata/fence_ilo4.xml
+++ b/tests/data/metadata/fence_ilo4.xml
@@ -116,7 +116,6 @@
 	</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="login_timeout" unique="0" required="0">
@@ -156,7 +155,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml
index 918b4c1..9a677dc 100644
--- a/tests/data/metadata/fence_ilo4_ssh.xml
+++ b/tests/data/metadata/fence_ilo4_ssh.xml
@@ -135,12 +135,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml
index ad6e439..3220f65 100644
--- a/tests/data/metadata/fence_ilo_moonshot.xml
+++ b/tests/data/metadata/fence_ilo_moonshot.xml
@@ -125,7 +125,6 @@
 	</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>
 </parameters>
diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml
index a891d8a..d9946fb 100644
--- a/tests/data/metadata/fence_ilo_mp.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml
@@ -125,12 +125,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml
index 9c42203..6bffbd0 100644
--- a/tests/data/metadata/fence_ilo_ssh.xml
+++ b/tests/data/metadata/fence_ilo_ssh.xml
@@ -135,12 +135,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
index 5f29130..d2fca4f 100644
--- a/tests/data/metadata/fence_imm.xml
+++ b/tests/data/metadata/fence_imm.xml
@@ -116,7 +116,6 @@
 	</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="login_timeout" unique="0" required="0">
@@ -156,7 +155,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml
index df3d333..1a72209 100644
--- a/tests/data/metadata/fence_intelmodular.xml
+++ b/tests/data/metadata/fence_intelmodular.xml
@@ -156,17 +156,14 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml
index 03411de..9593d06 100644
--- a/tests/data/metadata/fence_ipdu.xml
+++ b/tests/data/metadata/fence_ipdu.xml
@@ -154,17 +154,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
index e6a93e4..dcf1c3c 100644
--- a/tests/data/metadata/fence_ipmilan.xml
+++ b/tests/data/metadata/fence_ipmilan.xml
@@ -116,7 +116,6 @@
 	</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="login_timeout" unique="0" required="0">
@@ -156,7 +155,6 @@
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml
index 152500d..f026f6d 100644
--- a/tests/data/metadata/fence_ldom.xml
+++ b/tests/data/metadata/fence_ldom.xml
@@ -127,7 +127,6 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 	</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>
 </parameters>
diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml
index 1dceaca..f9f8144 100644
--- a/tests/data/metadata/fence_lpar.xml
+++ b/tests/data/metadata/fence_lpar.xml
@@ -138,7 +138,6 @@
 	</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>
 </parameters>
diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
index c20b0bc..5a31b98 100644
--- a/tests/data/metadata/fence_mpath.xml
+++ b/tests/data/metadata/fence_mpath.xml
@@ -1,7 +1,7 @@
 <?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 [...]
+The fence_mpath agent works by having a unique key for each node that has to be set in /etc/multipath.conf. Once registered, a single node will become the reservation holder by creating a "write exclusive, registrants only" reservation on the device(s). The result is that only registered nodes may write to the device(s). When a node failure occurs, the fence_mpath agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to [...]
 <vendor-url>https://www.sourceware.org/dm/</vendor-url>
 <parameters>
 	<parameter name="action" unique="0" required="1">
@@ -51,7 +51,6 @@ The fence_mpath agent works by having an unique key for each pair of node and de
 	</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="power_timeout" unique="0" required="0">
@@ -85,7 +84,6 @@ The fence_mpath agent works by having an unique key for each pair of node and de
 	</parameter>
 	<parameter name="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml
index 0b747b9..a0a5b8e 100644
--- a/tests/data/metadata/fence_netio.xml
+++ b/tests/data/metadata/fence_netio.xml
@@ -105,7 +105,6 @@
 	</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>
diff --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml
index f3cbf72..51810c9 100644
--- a/tests/data/metadata/fence_raritan.xml
+++ b/tests/data/metadata/fence_raritan.xml
@@ -105,7 +105,6 @@
 	</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>
diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml
index 893a3c5..6c97fb4 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_rhevm.xml
@@ -130,7 +130,6 @@
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml
index bb1efa1..150abba 100644
--- a/tests/data/metadata/fence_rsa.xml
+++ b/tests/data/metadata/fence_rsa.xml
@@ -125,12 +125,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml
index 4fc70bd..f698348 100644
--- a/tests/data/metadata/fence_rsb.xml
+++ b/tests/data/metadata/fence_rsb.xml
@@ -125,12 +125,10 @@
 	</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>
diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml
index 43eab0b..67bea31 100644
--- a/tests/data/metadata/fence_sanbox2.xml
+++ b/tests/data/metadata/fence_sanbox2.xml
@@ -110,7 +110,6 @@
 	</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>
diff --git a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml
index 1909507..361f5e8 100644
--- a/tests/data/metadata/fence_sbd.xml
+++ b/tests/data/metadata/fence_sbd.xml
@@ -73,7 +73,6 @@
 	</parameter>
 	<parameter name="sbd_path" unique="0" required="0">
 		<getopt mixed="--sbd-path=[path]" />
-		<content type="string" default="/sbin/sbd"  />
 		<shortdesc lang="en">Path to SBD binary</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
diff --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml
index c635633..7b59df5 100644
--- a/tests/data/metadata/fence_scsi.xml
+++ b/tests/data/metadata/fence_scsi.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <resource-agent name="fence_scsi" shortdesc="Fence agent for SCSI persistent reservation" >
 <longdesc>fence_scsi is an I/O fencing agent that uses SCSI-3 persistent reservations to control access to shared storage devices. These devices must support SCSI-3 persistent reservations (SPC-3 or greater) as well as the "preempt-and-abort" subcommand.
-The fence_scsi agent works by having each node in the cluster register a unique key with the SCSI devive(s). 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_scsi agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to [...]
+The fence_scsi agent works by having each node in the cluster register a unique key with the SCSI device(s). 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_scsi agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to [...]
 <vendor-url></vendor-url>
 <parameters>
 	<parameter name="action" unique="0" required="1">
@@ -86,22 +86,18 @@ The fence_scsi agent works by having each node in the cluster register a unique
 	</parameter>
 	<parameter name="corosync-cmap_path" unique="0" required="0">
 		<getopt mixed="--corosync-cmap-path=[path]" />
-		<content type="string" default="/usr/sbin/corosync-cmapctl"  />
 		<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
 	</parameter>
 	<parameter name="sg_persist_path" unique="0" required="0">
 		<getopt mixed="--sg_persist-path=[path]" />
-		<content type="string" default="/usr/bin/sg_persist"  />
 		<shortdesc lang="en">Path to sg_persist binary</shortdesc>
 	</parameter>
 	<parameter name="sg_turs_path" unique="0" required="0">
 		<getopt mixed="--sg_turs-path=[path]" />
-		<content type="string" default="/usr/bin/sg_turs"  />
 		<shortdesc lang="en">Path to sg_turs binary</shortdesc>
 	</parameter>
 	<parameter name="vgs_path" unique="0" required="0">
 		<getopt mixed="--vgs-path=[path]" />
-		<content type="string" default="/usr/sbin/vgs"  />
 		<shortdesc lang="en">Path to vgs binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_tripplite_snmp.xml b/tests/data/metadata/fence_tripplite_snmp.xml
index 4ce4ec4..3a61c89 100644
--- a/tests/data/metadata/fence_tripplite_snmp.xml
+++ b/tests/data/metadata/fence_tripplite_snmp.xml
@@ -155,17 +155,14 @@
 	</parameter>
 	<parameter name="snmpget_path" unique="0" required="0">
 		<getopt mixed="--snmpget-path=[path]" />
-		<content type="string" default="/usr/bin/snmpget"  />
 		<shortdesc lang="en">Path to snmpget binary</shortdesc>
 	</parameter>
 	<parameter name="snmpset_path" unique="0" required="0">
 		<getopt mixed="--snmpset-path=[path]" />
-		<content type="string" default="/usr/bin/snmpset"  />
 		<shortdesc lang="en">Path to snmpset binary</shortdesc>
 	</parameter>
 	<parameter name="snmpwalk_path" unique="0" required="0">
 		<getopt mixed="--snmpwalk-path=[path]" />
-		<content type="string" default="/usr/bin/snmpwalk"  />
 		<shortdesc lang="en">Path to snmpwalk binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_vbox.xml b/tests/data/metadata/fence_vbox.xml
index d2f2c07..4a357e5 100644
--- a/tests/data/metadata/fence_vbox.xml
+++ b/tests/data/metadata/fence_vbox.xml
@@ -137,12 +137,10 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
 	</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="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml
index d664fc4..1d3a351 100644
--- a/tests/data/metadata/fence_virsh.xml
+++ b/tests/data/metadata/fence_virsh.xml
@@ -137,12 +137,10 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 	</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="sudo_path" unique="0" required="0">
 		<getopt mixed="--sudo-path=[path]" />
-		<content type="string" default="/usr/bin/sudo"  />
 		<shortdesc lang="en">Path to sudo binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_vmware.xml b/tests/data/metadata/fence_vmware.xml
index fbe0323..ffc6f26 100644
--- a/tests/data/metadata/fence_vmware.xml
+++ b/tests/data/metadata/fence_vmware.xml
@@ -143,7 +143,6 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
 	</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>
 </parameters>
diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml
index 3a00745..19012b6 100644
--- a/tests/data/metadata/fence_vmware_soap.xml
+++ b/tests/data/metadata/fence_vmware_soap.xml
@@ -127,7 +127,6 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 	</parameter>
 	<parameter name="gnutlscli_path" unique="0" required="0">
 		<getopt mixed="--gnutlscli-path=[path]" />
-		<content type="string" default="/usr/bin/gnutls-cli"  />
 		<shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
 	</parameter>
 </parameters>
diff --git a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml
index b833029..695a3cc 100644
--- a/tests/data/metadata/fence_wti.xml
+++ b/tests/data/metadata/fence_wti.xml
@@ -125,12 +125,10 @@
 	</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>

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