fence-agents: master - testing: Add regression tests for XML metadata of C fence agents

Marek GrĂ¡c marx at fedoraproject.org
Wed Apr 9 09:21:48 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=2282f16026478d2149e56e9e9306adb13ffd3c3e
Commit:        2282f16026478d2149e56e9e9306adb13ffd3c3e
Parent:        30058ca1dcfd92c628a41c0c3674b0146e8e95a4
Author:        Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate:    Wed Apr 9 11:19:57 2014 +0200
Committer:     Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Wed Apr 9 11:19:57 2014 +0200

testing: Add regression tests for XML metadata of C fence agents

---
 fence/agents/kdump/Makefile.am           |    5 +++
 fence/agents/rackswitch/Makefile.am      |    1 +
 fence/agents/zvm/Makefile.am             |    5 +++
 make/agentccheck.mk                      |   15 +++++++++
 tests/data/metadata/fence_kdump.xml      |   51 ++++++++++++++++++++++++++++++
 tests/data/metadata/fence_rackswitch.xml |   30 +++++++++++++++++
 tests/data/metadata/fence_zvmip.xml      |   42 ++++++++++++++++++++++++
 7 files changed, 149 insertions(+), 0 deletions(-)

diff --git a/fence/agents/kdump/Makefile.am b/fence/agents/kdump/Makefile.am
index 26e452c..0752376 100644
--- a/fence/agents/kdump/Makefile.am
+++ b/fence/agents/kdump/Makefile.am
@@ -12,3 +12,8 @@ fence_kdump_send_SOURCES	= fence_kdump_send.c
 fence_kdump_send_CFLAGS		= -D_GNU_SOURCE
 
 dist_man_MANS			= fence_kdump.8 fence_kdump_send.8
+
+include $(top_srcdir)/make/agentccheck.mk
+
+check: xml-check.fence_kdump
+
diff --git a/fence/agents/rackswitch/Makefile.am b/fence/agents/rackswitch/Makefile.am
index 8c435c0..0792308 100644
--- a/fence/agents/rackswitch/Makefile.am
+++ b/fence/agents/rackswitch/Makefile.am
@@ -11,6 +11,7 @@ fence_rackswitch_SOURCES = do_rack.c
 man_MANS		 = $(TARGET).8
 
 include $(top_srcdir)/make/fencemanc.mk
+include $(top_srcdir)/make/agentccheck.mk
 
 clean-local: clean-man
 	rm -f $(TARGET)
diff --git a/fence/agents/zvm/Makefile.am b/fence/agents/zvm/Makefile.am
index 2dc0005..01d551f 100644
--- a/fence/agents/zvm/Makefile.am
+++ b/fence/agents/zvm/Makefile.am
@@ -11,3 +11,8 @@ fence_zvmip_SOURCES	= fence_zvmip.c
 fence_zvmip_CFLAGS	= -D_GNU_SOURCE
 
 dist_man_MANS		= fence_zvm.8 fence_zvmip.8
+
+include $(top_srcdir)/make/agentccheck.mk
+
+# we do not test fence_zvm because it can be compiled only on specific architecture
+check: xml-check.fence_zvmip
\ No newline at end of file
diff --git a/make/agentccheck.mk b/make/agentccheck.mk
new file mode 100644
index 0000000..d0dfb36
--- /dev/null
+++ b/make/agentccheck.mk
@@ -0,0 +1,15 @@
+TEMPFILE:=$(shell mktemp)
+DATADIR:=../../../tests/data/metadata
+
+check: $(TARGET:%=xml-check.%) $(SYMTARGET:%=xml-check.%)
+
+xml-check.%: %
+	$(eval INPUT=$(subst xml-check.,,$@))
+	./$(INPUT) -o metadata > $(TEMPFILE)
+	diff $(TEMPFILE) $(DATADIR)/$(INPUT).xml
+	rm $(TEMPFILE)
+
+xml-upload.%: %
+	$(eval INPUT=$(subst xml-upload.,,$@))
+	./$(INPUT) -o metadata > $(DATADIR)/$(INPUT).xml
+
diff --git a/tests/data/metadata/fence_kdump.xml b/tests/data/metadata/fence_kdump.xml
new file mode 100644
index 0000000..c985cac
--- /dev/null
+++ b/tests/data/metadata/fence_kdump.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_kdump" shortdesc="Fence agent for use with kdump">
+<longdesc>The fence_kdump agent is intended to be used with with kdump service.</longdesc>
+<vendor-url>http://www.kernel.org/pub/linux/utils/kernel/kexec/</vendor-url>
+<parameters>
+	<parameter name="nodename" unique="0" required="0">
+		<getopt mixed="-n, --nodename" />
+		<content type="string" />
+		<shortdesc lang="en">Name or IP address of node to be fenced</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-p, --ipport" />
+		<content type="string" default="7410" />
+		<shortdesc lang="en">Port number</shortdesc>
+	</parameter>
+	<parameter name="family" unique="0" required="0">
+		<getopt mixed="-f, --family" />
+		<content type="string" default="auto" />
+		<shortdesc lang="en">Network family</shortdesc>
+	</parameter>
+	<parameter name="action" unique="0" required="0">
+		<getopt mixed="-o, --action" />
+		<content type="string" default="off" />
+		<shortdesc lang="en">Fencing action</shortdesc>
+	</parameter>
+	<parameter name="timeout" unique="0" required="0">
+		<getopt mixed="-t, --timeout" />
+		<content type="string" default="60" />
+		<shortdesc lang="en">Timeout in seconds</shortdesc>
+	</parameter>
+	<parameter name="verbose" unique="0" required="0">
+		<getopt mixed="-v, --verbose" />
+		<content type="boolean" />
+		<shortdesc lang="en">Print verbose output</shortdesc>
+	</parameter>
+	<parameter name="version" unique="0" required="0">
+		<getopt mixed="-V, --version" />
+		<content type="boolean" />
+		<shortdesc lang="en">Print version</shortdesc>
+	</parameter>
+	<parameter name="usage" unique="0" required="0">
+		<getopt mixed="-h, --help" />
+		<content type="boolean" />
+		<shortdesc lang="en">Print usage</shortdesc>
+	</parameter>
+</parameters>
+<actions>
+	<action name="off" />
+	<action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_rackswitch.xml b/tests/data/metadata/fence_rackswitch.xml
new file mode 100644
index 0000000..63f2faf
--- /dev/null
+++ b/tests/data/metadata/fence_rackswitch.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_rackswitch" shortdesc="fence_rackswitch - I/O Fencing agent for RackSaver RackSwitch" >
+<longdesc>fence_rackswitch is an I/O Fencing agent which can be used with the RackSaver RackSwitch. It logs into the RackSwitch and boots a specified plug. Using the http interface to the RackSwitch should be avoided while a GFS cluster is running because the connection may interfere with the operation of this agent.</longdesc>
+<vendor-url>http://www.bladenetwork.net</vendor-url>
+<parameters>
+<parameter name="ipaddr" unique="1" required="1">
+	<getopt mixed="-a [ip]" />
+	<content type="string"  />
+	<shortdesc lang="en">IP Address or Hostname</shortdesc>
+</parameter>
+<parameter name="login" unique="1" required="1">
+	<getopt mixed="-l [name]" />
+	<content type="string"  />
+	<shortdesc lang="en">Login Name</shortdesc>
+</parameter>
+<parameter name="passwd" unique="1" required="0">
+	<getopt mixed="-p [password]" />
+	<content type="string"  />
+	<shortdesc lang="en">Login password or passphrase</shortdesc>
+</parameter>
+<parameter name="passwd_script" unique="1" required="0">
+	<getopt mixed="-S [script]" />
+	<content type="string"  />
+	<shortdesc lang="en">Script to retrieve password</shortdesc>
+</parameter>
+</parameters>
+<actions>
+	<action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml
new file mode 100644
index 0000000..0ffab1f
--- /dev/null
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with z/VM Virtual Machines">
+<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP</longdesc>
+<parameters>
+	<parameter name="port" unique="1" required="1">
+		<getopt mixed="-n, --plug" />
+		<content type="string" />
+		<shortdesc lang="en">Name of the Virtual Machine to be fenced</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="1" required="1">
+		<getopt mixed="-i, --ip" />
+		<content type="string" />
+		<shortdesc lang="en">IP Name or Address of SMAPI Server</shortdesc>
+	</parameter>
+	<parameter name="login" unique="1" required="1">
+		<getopt mixed="-u, --username" />
+		<content type="string" />
+		<shortdesc lang="en">Name of authorized SMAPI user
+</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="1" required="1">
+		<getopt mixed="-p, --password" />
+		<content type="string" />
+		<shortdesc lang="en">Password of authorized SMAPI user
+</shortdesc>
+	</parameter>
+	<parameter name="action" unique="1" required="0">
+		<getopt mixed="-o, --action" />
+		<content type="string" default="off" />
+		<shortdesc lang="en">Fencing action</shortdesc>
+	</parameter>
+	<parameter name="usage" unique="1" required="0">
+		<getopt mixed="-h, --help" />
+		<content type="boolean" />
+		<shortdesc lang="en">Print usage</shortdesc>
+	</parameter>
+</parameters>
+<actions>
+	<action name="off" />
+	<action name="metadata" />
+</actions>
+</resource-agent>


More information about the cluster-commits mailing list