fence-agents: master - fencing: Stability of sort of items in XML metadata

Marek GrĂ¡c marx at fedoraproject.org
Thu Nov 13 15:43:23 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=77ac33cc6d637f43a71c614a7488fd4c901a0487
Commit:        77ac33cc6d637f43a71c614a7488fd4c901a0487
Parent:        e59a87f1f518dffb09469a30a8c62596d10fdfa4
Author:        Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate:    Thu Nov 13 16:38:19 2014 +0100
Committer:     Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Thu Nov 13 16:39:05 2014 +0100

fencing: Stability of sort of items in XML metadata

Previously, sorting was done only according to values in "order" but
if several items have same "order" value then they were sorted same way
only until something did not interfere it. In order to have XML metadata
more stable, the secondary attribute for sorting - stdin name of attribute.

Problem was visible only during regression testing of XML metadata as ordering
did not usually impact applications that reuse it.

The patch is long but the only real change is in lib/fencing.py.py, the
rest is just reordering without further changes.
---
 fence/agents/lib/fencing.py.py             |    1 +
 tests/data/metadata/fence_alom.xml         |   76 +++++++++---------
 tests/data/metadata/fence_amt.xml          |   78 +++++++++---------
 tests/data/metadata/fence_apc.xml          |   86 ++++++++++----------
 tests/data/metadata/fence_apc_snmp.xml     |  116 +++++++++++++-------------
 tests/data/metadata/fence_bladecenter.xml  |  100 ++++++++++++------------
 tests/data/metadata/fence_brocade.xml      |   86 ++++++++++----------
 tests/data/metadata/fence_cisco_mds.xml    |  116 +++++++++++++-------------
 tests/data/metadata/fence_cisco_ucs.xml    |   82 ++++++++++----------
 tests/data/metadata/fence_docker.xml       |   70 ++++++++--------
 tests/data/metadata/fence_drac.xml         |   56 +++++++-------
 tests/data/metadata/fence_drac5.xml        |  100 ++++++++++++------------
 tests/data/metadata/fence_dummy.xml        |   48 ++++++------
 tests/data/metadata/fence_eaton_snmp.xml   |  120 ++++++++++++++--------------
 tests/data/metadata/fence_eps.xml          |   66 ++++++++--------
 tests/data/metadata/fence_hds_cb.xml       |  100 ++++++++++++------------
 tests/data/metadata/fence_hpblade.xml      |   96 +++++++++++-----------
 tests/data/metadata/fence_ibmblade.xml     |  116 +++++++++++++-------------
 tests/data/metadata/fence_idrac.xml        |  102 ++++++++++++------------
 tests/data/metadata/fence_ifmib.xml        |  116 +++++++++++++-------------
 tests/data/metadata/fence_ilo.xml          |   72 ++++++++--------
 tests/data/metadata/fence_ilo2.xml         |   72 ++++++++--------
 tests/data/metadata/fence_ilo3.xml         |  106 ++++++++++++------------
 tests/data/metadata/fence_ilo4.xml         |  102 ++++++++++++------------
 tests/data/metadata/fence_ilo_moonshot.xml |   86 ++++++++++----------
 tests/data/metadata/fence_ilo_mp.xml       |   80 +++++++++---------
 tests/data/metadata/fence_imm.xml          |  102 ++++++++++++------------
 tests/data/metadata/fence_intelmodular.xml |  116 +++++++++++++-------------
 tests/data/metadata/fence_ipdu.xml         |  116 +++++++++++++-------------
 tests/data/metadata/fence_ipmilan.xml      |  102 ++++++++++++------------
 tests/data/metadata/fence_ldom.xml         |   86 ++++++++++----------
 tests/data/metadata/fence_lpar.xml         |  104 ++++++++++++------------
 tests/data/metadata/fence_netio.xml        |   68 ++++++++--------
 tests/data/metadata/fence_ovh.xml          |   56 +++++++-------
 tests/data/metadata/fence_pve.xml          |   60 +++++++-------
 tests/data/metadata/fence_raritan.xml      |   68 ++++++++--------
 tests/data/metadata/fence_rhevm.xml        |   88 ++++++++++----------
 tests/data/metadata/fence_rsa.xml          |   76 +++++++++---------
 tests/data/metadata/fence_rsb.xml          |   76 +++++++++---------
 tests/data/metadata/fence_sanbox2.xml      |   58 +++++++-------
 tests/data/metadata/fence_scsi.xml         |   60 +++++++-------
 tests/data/metadata/fence_virsh.xml        |   86 ++++++++++----------
 tests/data/metadata/fence_vmware_soap.xml  |   76 +++++++++---------
 tests/data/metadata/fence_wti.xml          |   86 ++++++++++----------
 tests/data/metadata/fence_xenapi.xml       |   42 +++++-----
 45 files changed, 1888 insertions(+), 1887 deletions(-)

diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 33bb306..a6a3403 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -477,6 +477,7 @@ def usage(avail_opt):
 def metadata(avail_opt, options, docs):
 	# avail_opt has to be unique, if there are duplicities then they should be removed
 	sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt))]
+	sorted_list.sort(lambda x, y: cmp(x[0], y[0]))
 	sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"]))
 
 	print "<?xml version=\"1.0\" ?>"
diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml
index 6bdefb7..e253417 100644
--- a/tests/data/metadata/fence_alom.xml
+++ b/tests/data/metadata/fence_alom.xml
@@ -3,31 +3,16 @@
 <longdesc>fence_alom is an I/O Fencing agent which can be used with ALOM connected machines.</longdesc>
 <vendor-url>http://www.sun.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="22"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;sc\\&gt;\\ &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -38,30 +23,45 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -83,10 +83,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -98,10 +98,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
index b967b68..6595d59 100644
--- a/tests/data/metadata/fence_amt.xml
+++ b/tests/data/metadata/fence_amt.xml
@@ -3,10 +3,26 @@
 <longdesc>fence_amt is an I/O Fencing agent which can be used with Intel AMT. This agent calls support software amttool(http://www.kraxel.org/cgit/amtterm/).</longdesc>
 <vendor-url>http://www.intel.com/</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="boot_option" unique="0" required="0">
+		<getopt mixed="-b, --boot-option=[option]" />
+		<content type="select"  >
+			<option value="pxe" />
+			<option value="hd" />
+			<option value="hdsafe" />
+			<option value="cd" />
+			<option value="diag" />
+		</content>
+		<shortdesc lang="en">Change the default boot behavior of the machine.</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -18,10 +34,10 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -31,31 +47,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
-		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="boot_option" unique="0" required="0">
-		<getopt mixed="-b, --boot-option=[option]" />
-		<content type="select"  >
-			<option value="pxe" />
-			<option value="hd" />
-			<option value="hdsafe" />
-			<option value="cd" />
-			<option value="diag" />
-		</content>
-		<shortdesc lang="en">Change the default boot behavior of the machine.</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -77,10 +77,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<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">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -92,21 +97,16 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
 		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
-	<parameter name="amttool_path" unique="0" required="0">
-		<getopt mixed="--amttool-path=[path]" />
-		<content type="string" default="/usr/bin/amttool"  />
-		<shortdesc lang="en">Path to amttool binary</shortdesc>
-	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml
index 441de61..5115ad4 100644
--- a/tests/data/metadata/fence_apc.xml
+++ b/tests/data/metadata/fence_apc.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_apc is an I/O Fencing agent which can be used with the APC network power switch. It logs into device via telnet/ssh  and reboots a specified outlet. Lengthy telnet/ssh connections should be avoided while a GFS cluster  is  running  because  the  connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.apc.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\n&gt;&apos;, &apos;\napc&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,16 +23,46 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string" default="-1 -c blowfish"  />
@@ -63,16 +73,6 @@
 		<content type="string"  />
 		<shortdesc lang="en">Physical switch number on device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -98,10 +98,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -113,10 +113,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml
index 886f1b0..d09f851 100644
--- a/tests/data/metadata/fence_apc_snmp.xml
+++ b/tests/data/metadata/fence_apc_snmp.xml
@@ -3,37 +3,20 @@
 <longdesc>fence_apc_snmp is an I/O Fencing agent which can be used with the APC network power switch or Tripplite PDU devices.It logs into a device via SNMP and reboots a specified outlet. It supports SNMP v1, v2c, v3 with all combinations of  authenticity/privacy settings.</longdesc>
 <vendor-url>http://www.apc.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select" default="1"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string" default="private"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -45,15 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -63,15 +61,23 @@
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -82,20 +88,14 @@
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select" default="1"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -122,10 +122,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -137,10 +137,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml
index ec1b011..8a01b57 100644
--- a/tests/data/metadata/fence_bladecenter.xml
+++ b/tests/data/metadata/fence_bladecenter.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_bladecenter is an I/O Fencing agent which can be used with IBM Bladecenters with recent enough firmware that includes telnet support. It logs into a Brocade chasis via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
 <vendor-url>http://www.ibm.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;system&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,36 +93,36 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="10"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="missing_as_off" unique="0" required="0">
+		<getopt mixed="--missing-as-off" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
+	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="10"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
 		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml
index 5373d0e..52620f5 100644
--- a/tests/data/metadata/fence_brocade.xml
+++ b/tests/data/metadata/fence_brocade.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_brocade is an I/O Fencing agent which can be used with Brocade FC switches. It logs into a Brocade switch via telnet and disables a specified port. Disabling the port which a machine is connected to effectively fences that machine. Lengthy telnet connections to the switch should be avoided  while a GFS cluster is running because the connection will block any necessary fencing actions. After  a fence operation has taken place the fenced machine can no longer connect to the Brocade FC switch.  When the fenced machine is ready to be brought back into the GFS cluster (after reboot) the port on the Brocade FC switch needs to be enabled. This can be done by running fence_brocade and specifying the enable action</longdesc>
 <vendor-url>http://www.brocade.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;&gt; &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="off"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,10 +93,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -108,10 +108,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml
index add75f3..4adbf22 100644
--- a/tests/data/metadata/fence_cisco_mds.xml
+++ b/tests/data/metadata/fence_cisco_mds.xml
@@ -3,37 +3,20 @@
 <longdesc>fence_cisco_mds is an I/O Fencing agent which can be used with any Cisco MDS 9000 series with SNMP enabled device.</longdesc>
 <vendor-url>http://www.cisco.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -45,15 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -63,15 +61,23 @@
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -82,20 +88,14 @@
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="off"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -122,10 +122,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -137,10 +137,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml
index 75e45ce..6fab175 100644
--- a/tests/data/metadata/fence_cisco_ucs.xml
+++ b/tests/data/metadata/fence_cisco_ucs.xml
@@ -3,25 +3,15 @@
 <longdesc>fence_cisco_ucs is an I/O Fencing agent which can be used with Cisco UCS to fence machines.</longdesc>
 <vendor-url>http://www.cisco.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="80"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="notls" unique="0" required="0">
-		<getopt mixed="-t, --notls" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
 		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -33,45 +23,55 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="80"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
 		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection</shortdesc>
 	</parameter>
-	<parameter name="suborg" unique="0" required="0">
-		<getopt mixed="--suborg=[path]" />
-		<content type="string"  />
-		<shortdesc lang="en">Additional path needed to access suborganization</shortdesc>
-	</parameter>
 	<parameter name="ssl_insecure" unique="0" required="0">
 		<getopt mixed="--ssl-insecure" />
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="suborg" unique="0" required="0">
+		<getopt mixed="--suborg=[path]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">Additional path needed to access suborganization</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -98,10 +98,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -113,10 +113,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml
index d100b8c..51bcdcb 100644
--- a/tests/data/metadata/fence_docker.xml
+++ b/tests/data/metadata/fence_docker.xml
@@ -3,20 +3,15 @@
 <longdesc>fence_docker is I/O fencing agent which can be used with the Docker Engine containers. You can use this fence-agent without any authentication, or you can use TLS authentication (use --ssl option, more info about TLS authentication in docker: http://docs.docker.com/examples/https/).</longdesc>
 <vendor-url>www.docker.io</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="80"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
 		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -28,10 +23,10 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="80"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -41,6 +36,11 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
 		<content type="boolean"  />
@@ -51,15 +51,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="tlskey" unique="0" required="0">
-		<getopt mixed="--tlskey" />
-		<content type="string"  />
-		<shortdesc lang="en">Path to client key (PEM format) for TLS authentication.  Required if --ssl option is used.</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
 	<parameter name="tlscacert" unique="0" required="0">
 		<getopt mixed="--tlscacert" />
@@ -71,6 +66,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Path to client certificate (PEM format) for TLS authentication. Required if --ssl option is used.</shortdesc>
 	</parameter>
+	<parameter name="tlskey" unique="0" required="0">
+		<getopt mixed="--tlskey" />
+		<content type="string"  />
+		<shortdesc lang="en">Path to client key (PEM format) for TLS authentication.  Required if --ssl option is used.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -96,16 +96,6 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
-	</parameter>
-	<parameter name="power_timeout" unique="0" required="0">
-		<getopt mixed="--power-timeout=[seconds]" />
-		<content type="string" default="20"  />
-		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
-	</parameter>
 	<parameter name="delay" unique="0" required="0">
 		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
@@ -116,6 +106,16 @@
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="power_timeout" unique="0" required="0">
+		<getopt mixed="--power-timeout=[seconds]" />
+		<content type="string" default="20"  />
+		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
 		<content type="string" default="3"  />
diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
index d2871c5..642242c 100644
--- a/tests/data/metadata/fence_drac.xml
+++ b/tests/data/metadata/fence_drac.xml
@@ -3,46 +3,46 @@
 <longdesc>fence_drac is an I/O Fencing agent which can be used with the Dell Remote Access Card (DRAC). This card provides remote access to controlling power to a server. It logs into the DRAC through the telnet interface of the card. By default, the telnet interface is not enabled. To enable the interface, you will need to use the racadm command in the racser-devel rpm available from Dell.  To enable telnet on the DRAC: [root]# racadm config -g cfgSerial -o cfgSerialTelnetEnable 1 [root]# racadm racreset </longdesc>
 <vendor-url>http://www.dell.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\\[username\\]# &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
@@ -68,6 +68,16 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
@@ -83,16 +93,6 @@
 		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</parameter>
-	<parameter name="login_timeout" unique="0" required="0">
-		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
-	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml
index d96484c..b33b70f 100644
--- a/tests/data/metadata/fence_drac5.xml
+++ b/tests/data/metadata/fence_drac5.xml
@@ -3,35 +3,24 @@
 <longdesc>fence_drac5 is an I/O Fencing agent which can be used with the Dell Remote Access Card v5 or CMC (DRAC). This device provides remote access to controlling  power to a server. It logs into the DRAC through the telnet/ssh interface of the card. By default, the telnet interface is not  enabled.</longdesc>
 <vendor-url>http://www.dell.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\\$&apos;, &apos;DRAC\\/MC:&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	<parameter name="drac_version" unique="0" required="0">
+		<getopt mixed="-d, --drac-version=[version]" />
+		<content type="select"  >
+			<option value="DRAC CMC" />
+			<option value="DRAC MC" />
+			<option value="DRAC 5" />
+		</content>
+		<shortdesc lang="en">Force DRAC version to use (DRAC 5, DRAC CMC, DRAC MC)</shortdesc>
 	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
@@ -43,39 +32,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="drac_version" unique="0" required="0">
-		<getopt mixed="-d, --drac-version=[version]" />
-		<content type="select"  >
-			<option value="DRAC CMC" />
-			<option value="DRAC MC" />
-			<option value="DRAC 5" />
-		</content>
-		<shortdesc lang="en">Force DRAC version to use (DRAC 5, DRAC CMC, DRAC MC)</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -102,10 +102,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -117,10 +117,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml
index 61c964e..03821ac 100644
--- a/tests/data/metadata/fence_dummy.xml
+++ b/tests/data/metadata/fence_dummy.xml
@@ -3,26 +3,26 @@
 <longdesc>fence_dummy</longdesc>
 <vendor-url>http://www.example.com</vendor-url>
 <parameters>
-	<parameter name="status_file" unique="0" required="0">
-		<getopt mixed="--status-file=[file]" />
-		<content type="string" default="/tmp/fence_dummy.status"  />
-		<shortdesc lang="en">File with status</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="random_sleep_range" unique="0" required="0">
 		<getopt mixed="--random_sleep_range=[seconds]" />
 		<content type="string"  />
 		<shortdesc lang="en">Issue a sleep between 1 and X seconds. Used for testing.</shortdesc>
 	</parameter>
+	<parameter name="status_file" unique="0" required="0">
+		<getopt mixed="--status-file=[file]" />
+		<content type="string" default="/tmp/fence_dummy.status"  />
+		<shortdesc lang="en">File with status</shortdesc>
+	</parameter>
 	<parameter name="type" unique="0" required="0">
 		<getopt mixed="--type=[type]" />
 		<content type="string" default="file"  />
 		<shortdesc lang="en">Type of the dummy fence agent</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -48,21 +48,6 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
-	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
-	</parameter>
-	<parameter name="power_timeout" unique="0" required="0">
-		<getopt mixed="--power-timeout=[seconds]" />
-		<content type="string" default="20"  />
-		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
-	</parameter>
 	<parameter name="delay" unique="0" required="0">
 		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
@@ -73,6 +58,21 @@
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="power_timeout" unique="0" required="0">
+		<getopt mixed="--power-timeout=[seconds]" />
+		<content type="string" default="20"  />
+		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml
index 1cf0436..bfe05aa 100644
--- a/tests/data/metadata/fence_eaton_snmp.xml
+++ b/tests/data/metadata/fence_eaton_snmp.xml
@@ -3,37 +3,20 @@
 <longdesc>fence_eaton_snmp is an I/O Fencing agent which can be used with the Eaton network power switch. It logs into a device via SNMP and reboots a specified outlet. It supports SNMP v1 and v3 with all combinations of  authenticity/privacy settings.</longdesc>
 <vendor-url>http://powerquality.eaton.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select" default="1"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string" default="private"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -45,15 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -63,15 +61,23 @@
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -82,20 +88,14 @@
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select" default="1"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -122,10 +122,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="2"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -137,10 +137,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="2"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml
index a64ce8e..be4fed6 100644
--- a/tests/data/metadata/fence_eps.xml
+++ b/tests/data/metadata/fence_eps.xml
@@ -5,15 +5,20 @@
 Agent basically works by connecting to hidden page and pass appropriate arguments to GET request. This means, that hidden page feature must be enabled and properly configured.</longdesc>
 <vendor-url>http://www.epowerswitch.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="hidden_page" unique="0" required="0">
+		<getopt mixed="-c, --page=[page]" />
+		<content type="string" default="hidden.htm"  />
+		<shortdesc lang="en">Name of hidden page</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -25,35 +30,30 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
-	<parameter name="hidden_page" unique="0" required="0">
-		<getopt mixed="-c, --page=[page]" />
-		<content type="string" default="hidden.htm"  />
-		<shortdesc lang="en">Name of hidden page</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -80,10 +80,10 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -95,10 +95,10 @@ Agent basically works by connecting to hidden page and pass appropriate argument
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml
index 8f5279a..04b0c40 100644
--- a/tests/data/metadata/fence_hds_cb.xml
+++ b/tests/data/metadata/fence_hds_cb.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_hds_cb is an I/O Fencing agent which can be used with Hitachi Compute Blades with recent enough firmware that includes telnet support.</longdesc>
 <vendor-url>http://www.hds.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\\) :&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,36 +93,36 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="missing_as_off" unique="0" required="0">
+		<getopt mixed="--missing-as-off" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
+	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
 		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml
index 4f0976b..679907c 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_hpblade.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_hpblade is an I/O Fencing agent which can be used with HP BladeSystem. It logs into an enclosure via telnet or ssh and uses the command line interface to power on and off blades.</longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;c7000oa&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,36 +93,36 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="missing_as_off" unique="0" required="0">
+		<getopt mixed="--missing-as-off" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
+	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
 		<content type="string" default="3"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
-	<parameter name="missing_as_off" unique="0" required="0">
-		<getopt mixed="--missing-as-off" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Missing port returns OFF instead of failure</shortdesc>
-	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml
index 4731e5e..42952da 100644
--- a/tests/data/metadata/fence_ibmblade.xml
+++ b/tests/data/metadata/fence_ibmblade.xml
@@ -3,37 +3,20 @@
 <longdesc>fence_ibmblade is an I/O Fencing agent which can be used with IBM BladeCenter chassis. It issues SNMP Set request to BladeCenter chassis, rebooting, powering up or down the specified Blade Server.</longdesc>
 <vendor-url>http://www.ibm.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select" default="1"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -45,15 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -63,15 +61,23 @@
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -82,20 +88,14 @@
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select" default="1"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -122,10 +122,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -137,10 +137,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
index 26a2758..0ad21dd 100644
--- a/tests/data/metadata/fence_idrac.xml
+++ b/tests/data/metadata/fence_idrac.xml
@@ -7,10 +7,29 @@
 <longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
 <vendor-url></vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="623"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -22,10 +41,20 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -35,34 +64,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="lanplus" unique="0" required="0">
-		<getopt mixed="-P, --lanplus" />
-		<content type="boolean" default="0"  />
-		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
-	</parameter>
-	<parameter name="auth" unique="0" required="0">
-		<getopt mixed="-A, --auth=[auth]" />
-		<content type="select"  >
-			<option value="md5" />
-			<option value="password" />
-			<option value="none" />
-		</content>
-		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
-	</parameter>
-	<parameter name="cipher" unique="0" required="0">
-		<getopt mixed="-C, --cipher=[cipher]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
@@ -74,16 +84,6 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,10 +104,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -119,15 +124,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</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>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml
index 7faf2ab..523c510 100644
--- a/tests/data/metadata/fence_ifmib.xml
+++ b/tests/data/metadata/fence_ifmib.xml
@@ -5,37 +5,20 @@
 It was written with managed ethernet switches in mind, in order to fence iSCSI SAN connections. However, there are many devices that support the IF-MIB interface. The agent uses IF-MIB::ifAdminStatus to control the state of an interface.</longdesc>
 <vendor-url>http://www.ietf.org/wg/concluded/ifmib.html</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select" default="2c"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -47,15 +30,30 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -65,15 +63,23 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -84,20 +90,14 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="off"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select" default="2c"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -124,10 +124,10 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -139,10 +139,10 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
index 25d9d54..802fe0f 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -4,31 +4,16 @@
 <longdesc>fence_ilo is an I/O Fencing agent used for HP servers with the Integrated Light Out (iLO) PCI card.The agent opens an SSL connection to the iLO card. Once the SSL connection is established, the agent is able to communicate with the iLO card through an XML stream.</longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="443"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="notls" unique="0" required="0">
-		<getopt mixed="-t, --notls" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
-	</parameter>
-	<parameter name="ribcl" unique="0" required="0">
-		<getopt mixed="-r, --ribcl-version=[version]" />
-		<content type="string"  />
-		<shortdesc lang="en">Force ribcl version to use</shortdesc>
-	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
 		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
@@ -39,20 +24,35 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="443"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
 		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="ribcl" unique="0" required="0">
+		<getopt mixed="-r, --ribcl-version=[version]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Force ribcl version to use</shortdesc>
 	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
@@ -64,10 +64,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -89,10 +89,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -104,10 +104,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
index 47e8e28..75af5a9 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -4,31 +4,16 @@
 <longdesc>fence_ilo is an I/O Fencing agent used for HP servers with the Integrated Light Out (iLO) PCI card.The agent opens an SSL connection to the iLO card. Once the SSL connection is established, the agent is able to communicate with the iLO card through an XML stream.</longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="443"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="notls" unique="0" required="0">
-		<getopt mixed="-t, --notls" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
-	</parameter>
-	<parameter name="ribcl" unique="0" required="0">
-		<getopt mixed="-r, --ribcl-version=[version]" />
-		<content type="string"  />
-		<shortdesc lang="en">Force ribcl version to use</shortdesc>
-	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
 		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
@@ -39,20 +24,35 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="443"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
 		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="ribcl" unique="0" required="0">
+		<getopt mixed="-r, --ribcl-version=[version]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Force ribcl version to use</shortdesc>
 	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
@@ -64,10 +64,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -89,10 +89,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -104,10 +104,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
index c1e01ae..bc8d397 100644
--- a/tests/data/metadata/fence_ilo3.xml
+++ b/tests/data/metadata/fence_ilo3.xml
@@ -7,10 +7,29 @@
 <longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
 <vendor-url></vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="623"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -22,10 +41,20 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -35,34 +64,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="lanplus" unique="0" required="0">
-		<getopt mixed="-P, --lanplus" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
-	</parameter>
-	<parameter name="auth" unique="0" required="0">
-		<getopt mixed="-A, --auth=[auth]" />
-		<content type="select"  >
-			<option value="md5" />
-			<option value="password" />
-			<option value="none" />
-		</content>
-		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
-	</parameter>
-	<parameter name="cipher" unique="0" required="0">
-		<getopt mixed="-C, --cipher=[cipher]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
@@ -74,16 +84,6 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,10 +104,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="4"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="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">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -119,15 +124,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</parameter>
-	<parameter name="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 name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="4"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
index bbba9a0..d4e44d1 100644
--- a/tests/data/metadata/fence_ilo4.xml
+++ b/tests/data/metadata/fence_ilo4.xml
@@ -7,10 +7,29 @@
 <longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
 <vendor-url></vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="623"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -22,10 +41,20 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -35,34 +64,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="lanplus" unique="0" required="0">
-		<getopt mixed="-P, --lanplus" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
-	</parameter>
-	<parameter name="auth" unique="0" required="0">
-		<getopt mixed="-A, --auth=[auth]" />
-		<content type="select"  >
-			<option value="md5" />
-			<option value="password" />
-			<option value="none" />
-		</content>
-		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
-	</parameter>
-	<parameter name="cipher" unique="0" required="0">
-		<getopt mixed="-C, --cipher=[cipher]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
@@ -74,16 +84,6 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,10 +104,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -119,15 +124,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</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>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml
index d7f2bc9..2ad9e78 100644
--- a/tests/data/metadata/fence_ilo_moonshot.xml
+++ b/tests/data/metadata/fence_ilo_moonshot.xml
@@ -3,36 +3,16 @@
 <longdesc></longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="22"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,10 +93,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -108,10 +108,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml
index 93503a0..115655b 100644
--- a/tests/data/metadata/fence_ilo_mp.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml
@@ -3,31 +3,16 @@
 <longdesc></longdesc>
 <vendor-url>http://www.hp.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;MP&gt;&apos;, &apos;hpiLO-&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -38,30 +23,45 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -83,10 +83,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -98,10 +98,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
index addfcd4..259c423 100644
--- a/tests/data/metadata/fence_imm.xml
+++ b/tests/data/metadata/fence_imm.xml
@@ -7,10 +7,29 @@
 <longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
 <vendor-url></vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="623"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -22,10 +41,20 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -35,34 +64,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="lanplus" unique="0" required="0">
-		<getopt mixed="-P, --lanplus" />
-		<content type="boolean" default="0"  />
-		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
-	</parameter>
-	<parameter name="auth" unique="0" required="0">
-		<getopt mixed="-A, --auth=[auth]" />
-		<content type="select"  >
-			<option value="md5" />
-			<option value="password" />
-			<option value="none" />
-		</content>
-		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
-	</parameter>
-	<parameter name="cipher" unique="0" required="0">
-		<getopt mixed="-C, --cipher=[cipher]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
@@ -74,16 +84,6 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,10 +104,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -119,15 +124,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</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>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml
index 707b37a..36b7284 100644
--- a/tests/data/metadata/fence_intelmodular.xml
+++ b/tests/data/metadata/fence_intelmodular.xml
@@ -5,37 +5,20 @@
 Note: Since firmware update version 2.7, SNMP v2 write support is removed, and replaced by SNMP v3 support. So agent now has default SNMP version 3. If you are using older firmware, please supply -d for command line and snmp_version option for your cluster.conf.</longdesc>
 <vendor-url>http://www.intel.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -47,15 +30,30 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -65,15 +63,23 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -84,20 +90,14 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -124,10 +124,10 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -139,10 +139,10 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml
index 66fa768..476e861 100644
--- a/tests/data/metadata/fence_ipdu.xml
+++ b/tests/data/metadata/fence_ipdu.xml
@@ -3,37 +3,20 @@
 <longdesc>fence_ipdu is an I/O Fencing agent which can be used with the IBM iPDU network power switch. It logs into a device via SNMP and reboots a specified outlet. It supports SNMP v3 with all combinations of authenticity/privacy settings.</longdesc>
 <vendor-url>http://www.ibm.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="161"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="snmp_version" unique="0" required="0">
-		<getopt mixed="-d, --snmp-version=[version]" />
-		<content type="select" default="3"  >
-			<option value="1" />
-			<option value="2c" />
-			<option value="3" />
-		</content>
-		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="community" unique="0" required="0">
 		<getopt mixed="-c, --community=[community]" />
 		<content type="string" default="private"  />
 		<shortdesc lang="en">Set the community string</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_prot" unique="0" required="0">
-		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
-		<content type="select"  >
-			<option value="DES" />
-			<option value="AES" />
-		</content>
-		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -45,15 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd" unique="0" required="0">
-		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="161"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Set privacy protocol password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
-		<getopt mixed="-R, --snmp-priv-passwd-script" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="snmp_auth_prot" unique="0" required="0">
 		<getopt mixed="-b, --snmp-auth-prot=[prot]" />
@@ -63,15 +61,23 @@
 		</content>
 		<shortdesc lang="en">Set authentication protocol (MD5|SHA)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="snmp_priv_passwd" unique="0" required="0">
+		<getopt mixed="-P, --snmp-priv-passwd=[pass]" />
+		<content type="string"  />
+		<shortdesc lang="en">Set privacy protocol password</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="snmp_priv_passwd_script" unique="0" required="0">
+		<getopt mixed="-R, --snmp-priv-passwd-script" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Script to run to retrieve privacy password</shortdesc>
+	</parameter>
+	<parameter name="snmp_priv_prot" unique="0" required="0">
+		<getopt mixed="-B, --snmp-priv-prot=[prot]" />
+		<content type="select"  >
+			<option value="DES" />
+			<option value="AES" />
+		</content>
+		<shortdesc lang="en">Set privacy protocol (DES|AES)</shortdesc>
 	</parameter>
 	<parameter name="snmp_sec_level" unique="0" required="0">
 		<getopt mixed="-E, --snmp-sec-level=[level]" />
@@ -82,20 +88,14 @@
 		</content>
 		<shortdesc lang="en">Set security level (noAuthNoPriv|authNoPriv|authPriv)</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="snmp_version" unique="0" required="0">
+		<getopt mixed="-d, --snmp-version=[version]" />
+		<content type="select" default="3"  >
+			<option value="1" />
+			<option value="2c" />
+			<option value="3" />
+		</content>
+		<shortdesc lang="en">Specifies SNMP version to use (1,2c,3)</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -122,10 +122,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -137,10 +137,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
index d15e352..2c2664e 100644
--- a/tests/data/metadata/fence_ipmilan.xml
+++ b/tests/data/metadata/fence_ipmilan.xml
@@ -7,10 +7,29 @@
 <longdesc>fence_ipmilan is an I/O Fencing agentwhich can be used with machines controlled by IPMI.This agent calls support software ipmitool (http://ipmitool.sf.net/).</longdesc>
 <vendor-url></vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="623"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="auth" unique="0" required="0">
+		<getopt mixed="-A, --auth=[auth]" />
+		<content type="select"  >
+			<option value="md5" />
+			<option value="password" />
+			<option value="none" />
+		</content>
+		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
+	</parameter>
+	<parameter name="cipher" unique="0" required="0">
+		<getopt mixed="-C, --cipher=[cipher]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -22,10 +41,20 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="623"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="lanplus" unique="0" required="0">
+		<getopt mixed="-P, --lanplus" />
+		<content type="boolean" default="0"  />
+		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="method" unique="0" required="0">
 		<getopt mixed="-m, --method=[method]" />
@@ -35,34 +64,15 @@
 		</content>
 		<shortdesc lang="en">Method to fence (onoff|cycle)</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
-	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="lanplus" unique="0" required="0">
-		<getopt mixed="-P, --lanplus" />
-		<content type="boolean" default="0"  />
-		<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
-	</parameter>
-	<parameter name="auth" unique="0" required="0">
-		<getopt mixed="-A, --auth=[auth]" />
-		<content type="select"  >
-			<option value="md5" />
-			<option value="password" />
-			<option value="none" />
-		</content>
-		<shortdesc lang="en">IPMI Lan Auth type.</shortdesc>
-	</parameter>
-	<parameter name="cipher" unique="0" required="0">
-		<getopt mixed="-C, --cipher=[cipher]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
@@ -74,16 +84,6 @@
 		</content>
 		<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -104,10 +104,15 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="ipmitool_path" unique="0" required="0">
+		<getopt mixed="--ipmitool-path=[path]" />
+		<content type="string" default="/usr/bin/ipmitool"  />
+		<shortdesc lang="en">Path to ipmitool binary</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -119,15 +124,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</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>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml
index 082fd82..eba7613 100644
--- a/tests/data/metadata/fence_ldom.xml
+++ b/tests/data/metadata/fence_ldom.xml
@@ -5,36 +5,16 @@
 Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to something, what is displayed after successful login to host machine. Default string is space on end of string (default for root in bash). But (for example) csh use ], so in that case you must use parameter -c with argument ]. Very similar situation is, if you use bash and login to host machine with other user than root. Than prompt is $, so again, you must use parameter -c.</longdesc>
 <vendor-url>http://www.sun.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="22"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\\ $&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -45,30 +25,50 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -95,10 +95,10 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,10 +110,10 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml
index 9b6d62d..f9daa3b 100644
--- a/tests/data/metadata/fence_lpar.xml
+++ b/tests/data/metadata/fence_lpar.xml
@@ -3,31 +3,34 @@
 <longdesc></longdesc>
 <vendor-url>http://www.ibm.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="22"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="managed" unique="0" required="0">
-		<getopt mixed="-s, --managed=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Managed system name</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;:~&gt;&apos;, &apos;]\\$&apos;, &apos;\\$ &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
+	<parameter name="hmc_version" unique="0" required="0">
+		<getopt mixed="-H, --hmc-version=[version]" />
+		<content type="select" default="4"  >
+			<option value="3" />
+			<option value="4" />
+		</content>
+		<shortdesc lang="en">Force HMC version to use (3 or 4)</shortdesc>
+	</parameter>
+	<parameter name="identity_file" unique="0" required="0">
+		<getopt mixed="-k, --identity-file=[filename]" />
+		<content type="string"  />
+		<shortdesc lang="en">Identity file for ssh</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
@@ -38,49 +41,46 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="identity_file" unique="0" required="0">
-		<getopt mixed="-k, --identity-file=[filename]" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Identity file for ssh</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="hmc_version" unique="0" required="0">
-		<getopt mixed="-H, --hmc-version=[version]" />
-		<content type="select" default="4"  >
-			<option value="3" />
-			<option value="4" />
-		</content>
-		<shortdesc lang="en">Force HMC version to use (3 or 4)</shortdesc>
+	<parameter name="managed" unique="0" required="0">
+		<getopt mixed="-s, --managed=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Managed system name</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -106,10 +106,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -121,10 +121,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml
index f47238c..a20d532 100644
--- a/tests/data/metadata/fence_netio.xml
+++ b/tests/data/metadata/fence_netio.xml
@@ -3,51 +3,51 @@
 <longdesc>fence_netio is an I/O Fencing agent which can be used with the Koukaam NETIO-230B Power Distribution Unit. It logs into device via telnet and reboots a specified outlet. Lengthy telnet connections should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.koukaam.se/</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="1234"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="1234"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -73,10 +73,15 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
@@ -88,15 +93,10 @@
 		<content type="string" default="0"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</parameter>
-	<parameter name="login_timeout" unique="0" required="0">
-		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
diff --git a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml
index 7e2d83d..14a2b20 100644
--- a/tests/data/metadata/fence_ovh.xml
+++ b/tests/data/metadata/fence_ovh.xml
@@ -3,31 +3,31 @@
 <longdesc>fence_ovh is an Power Fencing agent which can be used within OVH datecentre. Poweroff is simulated with a reboot into rescue-pro mode.</longdesc>
 <vendor-url>http://www.ovh.net</vendor-url>
 <parameters>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="email" unique="0" required="1">
-		<getopt mixed="-Z, --email=[email]" />
-		<content type="string"  />
-		<shortdesc lang="en">Reboot email</shortdesc>
-	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
 		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="email" unique="0" required="1">
+		<getopt mixed="-Z, --email=[email]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Reboot email</shortdesc>
 	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
+	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
 	<parameter name="port" unique="0" required="1">
 		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
@@ -58,21 +58,6 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
-	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
-	</parameter>
-	<parameter name="power_timeout" unique="0" required="0">
-		<getopt mixed="--power-timeout=[seconds]" />
-		<content type="string" default="20"  />
-		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
-	</parameter>
 	<parameter name="delay" unique="0" required="0">
 		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
@@ -83,6 +68,21 @@
 		<content type="string" default="5"  />
 		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
+	<parameter name="power_timeout" unique="0" required="0">
+		<getopt mixed="--power-timeout=[seconds]" />
+		<content type="string" default="20"  />
+		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	</parameter>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
 		<content type="string" default="1"  />
diff --git a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml
index 86c3cd7..6d5d7e2 100644
--- a/tests/data/metadata/fence_pve.xml
+++ b/tests/data/metadata/fence_pve.xml
@@ -3,15 +3,15 @@
 <longdesc>The fence_pve agent can be used to fence virtual machines acting as nodes in a virtualized cluster.</longdesc>
 <vendor-url>http://www.proxmox.com/</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="8006"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Id of the virtual machine.</shortdesc>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -23,30 +23,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname of a node within the Proxmox cluster.</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="8006"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
-		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string" default="root at pam"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string" default="root at pam"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Id of the virtual machine.</shortdesc>
 	</parameter>
 	<parameter name="node_name" unique="0" required="0">
 		<getopt mixed="-N, --nodename" />
@@ -78,10 +78,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -93,10 +93,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml
index e970b99..f349f5d 100644
--- a/tests/data/metadata/fence_raritan.xml
+++ b/tests/data/metadata/fence_raritan.xml
@@ -3,51 +3,51 @@
 <longdesc>fence_raritan is an I/O Fencing agent which can be used with the Raritan DPXS12-20 Power Distribution Unit. It logs into device via telnet and reboots a specified outlet. Lengthy telnet connections should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.raritan.com/</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
 	<parameter name="ipaddr" unique="0" required="1">
 		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
 	<parameter name="login" unique="0" required="1">
 		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -73,10 +73,15 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	</parameter>
+	<parameter name="login_timeout" unique="0" required="0">
+		<getopt mixed="--login-timeout=[seconds]" />
+		<content type="string" default="5"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
 	</parameter>
 	<parameter name="power_timeout" unique="0" required="0">
 		<getopt mixed="--power-timeout=[seconds]" />
@@ -88,15 +93,10 @@
 		<content type="string" default="0"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
-	</parameter>
-	<parameter name="login_timeout" unique="0" required="0">
-		<getopt mixed="--login-timeout=[seconds]" />
-		<content type="string" default="5"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml
index 0db2e17..bcd6338 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_rhevm.xml
@@ -3,25 +3,15 @@
 <longdesc>fence_rhevm is an I/O Fencing agent which can be used with RHEV-M REST API to fence virtual machines.</longdesc>
 <vendor-url>http://www.redhat.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="80"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="notls" unique="0" required="0">
-		<getopt mixed="-t, --notls" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
 		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -33,45 +23,55 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="80"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
 		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection</shortdesc>
 	</parameter>
-	<parameter name="use_cookies" unique="0" required="0">
-		<getopt mixed="--use-cookies" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Reuse cookies for authentication</shortdesc>
-	</parameter>
 	<parameter name="ssl_insecure" unique="0" required="0">
 		<getopt mixed="--ssl-insecure" />
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="use_cookies" unique="0" required="0">
+		<getopt mixed="--use-cookies" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Reuse cookies for authentication</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -98,10 +98,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
-		<content type="string" default="1"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -113,10 +113,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
+		<content type="string" default="1"  />
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml
index 749b21d..c9c889e 100644
--- a/tests/data/metadata/fence_rsa.xml
+++ b/tests/data/metadata/fence_rsa.xml
@@ -3,31 +3,16 @@
 <longdesc>fence_rsa is an I/O Fencing agent which can be used with the IBM RSA II management interface. It logs into an RSA II device via telnet and reboots the associated machine. Lengthy telnet connections to the RSA II device should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.ibm.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -38,31 +23,46 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string" default="-F /dev/null"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -83,10 +83,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -98,10 +98,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml
index 56421fc..007c877 100644
--- a/tests/data/metadata/fence_rsb.xml
+++ b/tests/data/metadata/fence_rsb.xml
@@ -3,31 +3,16 @@
 <longdesc>fence_rsb is an I/O Fencing agent which can be used with the Fujitsu-Siemens RSB management interface. It logs into device via telnet/ssh  and reboots a specified outlet. Lengthy telnet/ssh connections should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.fujitsu.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="3172"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;to quit:&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -38,30 +23,45 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="3172"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -83,10 +83,10 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -98,10 +98,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml
index 06826b6..236d907 100644
--- a/tests/data/metadata/fence_sanbox2.xml
+++ b/tests/data/metadata/fence_sanbox2.xml
@@ -3,21 +3,21 @@
 <longdesc>fence_sanbox2 is an I/O Fencing agent which can be used with QLogic SANBox2 FC switches.  It logs into a SANBox2 switch via telnet and disables a specified port. Disabling  the port which a machine is connected to effectively fences that machine. Lengthy telnet connections to the switch should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.qlogic.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos; #&gt; &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
 		<content type="boolean"  />
@@ -28,30 +28,30 @@
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="off"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -78,10 +78,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -93,10 +93,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml
index ba80e8c..590f4aa 100644
--- a/tests/data/metadata/fence_scsi.xml
+++ b/tests/data/metadata/fence_scsi.xml
@@ -4,30 +4,30 @@
 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 device(s). A manual reboot is required.</longdesc>
 <vendor-url></vendor-url>
 <parameters>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="off"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
+	</parameter>
 	<parameter name="aptpl" unique="0" required="0">
 		<getopt mixed="-a, --aptpl" />
 		<content type="boolean"  />
 		<shortdesc lang="en">Use the APTPL flag for registrations. This option is only used for the 'on' action.</shortdesc>
 	</parameter>
-	<parameter name="nodename" unique="0" required="0">
-		<getopt mixed="-n, --nodename=[nodename]" />
+	<parameter name="devices" unique="0" required="0">
+		<getopt mixed="-d, --devices=[devices]" />
 		<content type="string"  />
-		<shortdesc lang="en">Name of the node to be fenced. The node name is used to generate the key value used for the current operation. This option will be ignored when used with the -k option.</shortdesc>
-	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="off"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+		<shortdesc lang="en">List of devices to use for current operation. Devices can be comma-separated list of raw device (eg. /dev/sdc) or device-mapper multipath devices (eg. /dev/dm-3). Each device must support SCSI-3 persistent reservations.</shortdesc>
 	</parameter>
 	<parameter name="key" unique="0" required="0">
 		<getopt mixed="-k, --key=[key]" />
 		<content type="string"  />
 		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
 	</parameter>
-	<parameter name="devices" unique="0" required="0">
-		<getopt mixed="-d, --devices=[devices]" />
+	<parameter name="nodename" unique="0" required="0">
+		<getopt mixed="-n, --nodename=[nodename]" />
 		<content type="string"  />
-		<shortdesc lang="en">List of devices to use for current operation. Devices can be comma-separated list of raw device (eg. /dev/sdc) or device-mapper multipath devices (eg. /dev/dm-3). Each device must support SCSI-3 persistent reservations.</shortdesc>
+		<shortdesc lang="en">Name of the node to be fenced. The node name is used to generate the key value used for the current operation. This option will be ignored when used with the -k option.</shortdesc>
 	</parameter>
 	<parameter name="logfile" unique="0" required="0">
 		<getopt mixed="-a, --logfile" />
@@ -54,15 +54,15 @@ The fence_scsi agent works by having each node in the cluster register a unique
 		<content type="boolean"  />
 		<shortdesc lang="en">Display help and exit</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 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="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -74,30 +74,30 @@ The fence_scsi agent works by having each node in the cluster register a unique
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="sg_persist_path" unique="0" required="0">
 		<getopt mixed="--sg_persist-path=[path]" />
 		<content type="string" default="/usr/bin/sg_persist"  />
 		<shortdesc lang="en">Path to sg_persist binary</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
-	</parameter>
 	<parameter name="sg_turs_path" unique="0" required="0">
 		<getopt mixed="--sg_turs-path=[path]" />
 		<content type="string" default="/usr/bin/sg_turs"  />
 		<shortdesc lang="en">Path to sg_turs binary</shortdesc>
 	</parameter>
-	<parameter name="corosync-cmap_path" unique="0" required="0">
-		<getopt mixed="--corosync-cmap-path=[path]" />
-		<content type="string" default="/usr/sbin/corosync-cmapctl"  />
-		<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	</parameter>
+	<parameter name="vgs_path" unique="0" required="0">
+		<getopt mixed="--vgs-path=[path]" />
+		<content type="string" default="/usr/sbin/vgs"  />
+		<shortdesc lang="en">Path to vgs binary</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />
diff --git a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml
index 5febd77..831f6ed 100644
--- a/tests/data/metadata/fence_virsh.xml
+++ b/tests/data/metadata/fence_virsh.xml
@@ -5,36 +5,16 @@
 By default, virsh needs root account to do properly work. So you must allow ssh login in your sshd_config.</longdesc>
 <vendor-url>http://libvirt.org</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="22"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean" default="1"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;\\[EXPECT\\]#\\ &apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -45,31 +25,51 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="22"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
+		<content type="string"  />
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
+	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean" default="1"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
 	<parameter name="ssh_options" unique="0" required="0">
 		<getopt mixed="--ssh-options=[options]" />
 		<content type="string" default="-t &apos;/bin/bash -c &quot;PS1=\[EXPECT\]#\  /bin/bash --noprofile --norc&quot;&apos;"  />
 		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
-	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -95,10 +95,10 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,10 +110,10 @@ By default, virsh needs root account to do properly work. So you must allow ssh
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml
index d0a465f..861a75d 100644
--- a/tests/data/metadata/fence_vmware_soap.xml
+++ b/tests/data/metadata/fence_vmware_soap.xml
@@ -5,25 +5,15 @@
 Name of virtual machine (-n / port) has to be used in inventory path format (e.g. /datacenter/vm/Discovered virtual machine/myMachine). In the cases when name of yours VM is unique you can use it instead. Alternatively you can always use UUID to access virtual machine.</longdesc>
 <vendor-url>http://www.vmware.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="80"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="notls" unique="0" required="0">
-		<getopt mixed="-t, --notls" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
-	<parameter name="ssl_secure" unique="0" required="0">
-		<getopt mixed="--ssl-secure" />
+	<parameter name="inet4_only" unique="0" required="0">
+		<getopt mixed="-4, --inet4-only" />
 		<content type="boolean"  />
-		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
 	<parameter name="inet6_only" unique="0" required="0">
 		<getopt mixed="-6, --inet6-only" />
@@ -35,20 +25,35 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 		<content type="string"  />
 		<shortdesc lang="en">IP Address or Hostname</shortdesc>
 	</parameter>
-	<parameter name="inet4_only" unique="0" required="0">
-		<getopt mixed="-4, --inet4-only" />
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="80"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="1">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
+	</parameter>
+	<parameter name="notls" unique="0" required="0">
+		<getopt mixed="-t, --notls" />
 		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+		<shortdesc lang="en">Disable TLS negotiation</shortdesc>
+	</parameter>
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
 	<parameter name="ssl" unique="0" required="0">
 		<getopt mixed="-z, --ssl" />
@@ -60,15 +65,10 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 		<content type="boolean"  />
 		<shortdesc lang="en">SSL connection without verifying fence device's certificate</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
-	</parameter>
-	<parameter name="login" unique="0" required="1">
-		<getopt mixed="-l, --username=[name]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+	<parameter name="ssl_secure" unique="0" required="0">
+		<getopt mixed="--ssl-secure" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSL connection with verifying fence device's certificate</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -95,10 +95,10 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -110,10 +110,10 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml
index c7cb9d1..251c7de 100644
--- a/tests/data/metadata/fence_wti.xml
+++ b/tests/data/metadata/fence_wti.xml
@@ -3,36 +3,16 @@
 <longdesc>fence_wti is an I/O Fencing agent which can be used with the WTI Network Power Switch (NPS). It logs into an NPS via telnet or ssh and boots a specified plug. Lengthy telnet connections to the NPS should be avoided while a GFS cluster is running because the connection will block any necessary fencing actions.</longdesc>
 <vendor-url>http://www.wti.com</vendor-url>
 <parameters>
-	<parameter name="ipport" unique="0" required="0">
-		<getopt mixed="-u, --ipport=[port]" />
-		<content type="string" default="23"  />
-		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
-	</parameter>
-	<parameter name="ipaddr" unique="0" required="1">
-		<getopt mixed="-a, --ip=[ip]" />
-		<content type="string"  />
-		<shortdesc lang="en">IP Address or Hostname</shortdesc>
-	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
-		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
-	</parameter>
-	<parameter name="secure" unique="0" required="0">
-		<getopt mixed="-x, --ssh" />
-		<content type="boolean"  />
-		<shortdesc lang="en">SSH connection</shortdesc>
+	<parameter name="action" unique="0" required="1">
+		<getopt mixed="-o, --action=[action]" />
+		<content type="string" default="reboot"  />
+		<shortdesc lang="en">Fencing Action</shortdesc>
 	</parameter>
 	<parameter name="cmd_prompt" unique="0" required="0">
 		<getopt mixed="-c, --command-prompt=[prompt]" />
 		<content type="string" default="[&apos;RSM&gt;&apos;, &apos;MPC&gt;&apos;, &apos;IPS&gt;&apos;, &apos;TPS&gt;&apos;, &apos;NBB&gt;&apos;, &apos;NPS&gt;&apos;, &apos;VMR&gt;&apos;]"  />
 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
 	</parameter>
-	<parameter name="inet6_only" unique="0" required="0">
-		<getopt mixed="-6, --inet6-only" />
-		<content type="boolean"  />
-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
-	</parameter>
 	<parameter name="identity_file" unique="0" required="0">
 		<getopt mixed="-k, --identity-file=[filename]" />
 		<content type="string"  />
@@ -43,30 +23,50 @@
 		<content type="boolean"  />
 		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
 	</parameter>
-	<parameter name="passwd_script" unique="0" required="0">
-		<getopt mixed="-S, --password-script=[script]" />
+	<parameter name="inet6_only" unique="0" required="0">
+		<getopt mixed="-6, --inet6-only" />
+		<content type="boolean"  />
+		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+	</parameter>
+	<parameter name="ipaddr" unique="0" required="1">
+		<getopt mixed="-a, --ip=[ip]" />
 		<content type="string"  />
-		<shortdesc lang="en">Script to retrieve password</shortdesc>
+		<shortdesc lang="en">IP Address or Hostname</shortdesc>
+	</parameter>
+	<parameter name="ipport" unique="0" required="0">
+		<getopt mixed="-u, --ipport=[port]" />
+		<content type="string" default="23"  />
+		<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+	</parameter>
+	<parameter name="login" unique="0" required="0">
+		<getopt mixed="-l, --username=[name]" />
+		<content type="string"  />
+		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
 	<parameter name="passwd" unique="0" required="0">
 		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
 		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
-	<parameter name="ssh_options" unique="0" required="0">
-		<getopt mixed="--ssh-options=[options]" />
+	<parameter name="passwd_script" unique="0" required="0">
+		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
-		<shortdesc lang="en">SSH options to use</shortdesc>
+		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
-	<parameter name="action" unique="0" required="1">
-		<getopt mixed="-o, --action=[action]" />
-		<content type="string" default="reboot"  />
-		<shortdesc lang="en">Fencing Action</shortdesc>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
 	</parameter>
-	<parameter name="login" unique="0" required="0">
-		<getopt mixed="-l, --username=[name]" />
+	<parameter name="secure" unique="0" required="0">
+		<getopt mixed="-x, --ssh" />
+		<content type="boolean"  />
+		<shortdesc lang="en">SSH connection</shortdesc>
+	</parameter>
+	<parameter name="ssh_options" unique="0" required="0">
+		<getopt mixed="--ssh-options=[options]" />
 		<content type="string"  />
-		<shortdesc lang="en">Login Name</shortdesc>
+		<shortdesc lang="en">SSH options to use</shortdesc>
 	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
@@ -93,10 +93,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="power_wait" unique="0" required="0">
-		<getopt mixed="--power-wait=[seconds]" />
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -108,10 +108,10 @@
 		<content type="string" default="20"  />
 		<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
+	<parameter name="power_wait" unique="0" required="0">
+		<getopt mixed="--power-wait=[seconds]" />
 		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
 	<parameter name="shell_timeout" unique="0" required="0">
 		<getopt mixed="--shell-timeout=[seconds]" />
diff --git a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml
index 470d215..3454f10 100644
--- a/tests/data/metadata/fence_xenapi.xml
+++ b/tests/data/metadata/fence_xenapi.xml
@@ -3,16 +3,6 @@
 <longdesc>fence_cxs is an I/O Fencing agent used on Citrix XenServer hosts. It uses the XenAPI, supplied by Citrix, to establish an XML-RPC sesssion to a XenServer host. Once the session is established, further XML-RPC commands are issued in order to switch on, switch off, restart and query the status of virtual machines running on the host.</longdesc>
 <vendor-url>http://www.xenproject.org</vendor-url>
 <parameters>
-	<parameter name="passwd" unique="0" required="0">
-		<getopt mixed="-p, --password=[password]" />
-		<content type="string"  />
-		<shortdesc lang="en">Login password or passphrase</shortdesc>
-	</parameter>
-	<parameter name="session_url" unique="0" required="1">
-		<getopt mixed="-s, --session-url" />
-		<content type="string"  />
-		<shortdesc lang="en">The URL of the XenServer host.</shortdesc>
-	</parameter>
 	<parameter name="action" unique="0" required="1">
 		<getopt mixed="-o, --action=[action]" />
 		<content type="string" default="reboot"  />
@@ -23,16 +13,26 @@
 		<content type="string"  />
 		<shortdesc lang="en">Login Name</shortdesc>
 	</parameter>
-	<parameter name="port" unique="0" required="1">
-		<getopt mixed="-n, --plug=[id]" />
+	<parameter name="passwd" unique="0" required="0">
+		<getopt mixed="-p, --password=[password]" />
 		<content type="string"  />
-		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+		<shortdesc lang="en">Login password or passphrase</shortdesc>
 	</parameter>
 	<parameter name="passwd_script" unique="0" required="0">
 		<getopt mixed="-S, --password-script=[script]" />
 		<content type="string"  />
 		<shortdesc lang="en">Script to retrieve password</shortdesc>
 	</parameter>
+	<parameter name="port" unique="0" required="1">
+		<getopt mixed="-n, --plug=[id]" />
+		<content type="string"  />
+		<shortdesc lang="en">Physical plug number, name of virtual machine or UUID</shortdesc>
+	</parameter>
+	<parameter name="session_url" unique="0" required="1">
+		<getopt mixed="-s, --session-url" />
+		<content type="string"  />
+		<shortdesc lang="en">The URL of the XenServer host.</shortdesc>
+	</parameter>
 	<parameter name="verbose" unique="0" required="0">
 		<getopt mixed="-v, --verbose" />
 		<content type="boolean"  />
@@ -58,10 +58,10 @@
 		<content type="string" default=","  />
 		<shortdesc lang="en">Separator for CSV created by operation list</shortdesc>
 	</parameter>
-	<parameter name="shell_timeout" unique="0" required="0">
-		<getopt mixed="--shell-timeout=[seconds]" />
-		<content type="string" default="3"  />
-		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+	<parameter name="delay" unique="0" required="0">
+		<getopt mixed="--delay=[seconds]" />
+		<content type="string" default="0"  />
+		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
 	</parameter>
 	<parameter name="login_timeout" unique="0" required="0">
 		<getopt mixed="--login-timeout=[seconds]" />
@@ -78,10 +78,10 @@
 		<content type="string" default="0"  />
 		<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
 	</parameter>
-	<parameter name="delay" unique="0" required="0">
-		<getopt mixed="--delay=[seconds]" />
-		<content type="string" default="0"  />
-		<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+	<parameter name="shell_timeout" unique="0" required="0">
+		<getopt mixed="--shell-timeout=[seconds]" />
+		<content type="string" default="3"  />
+		<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
 	</parameter>
 	<parameter name="retry_on" unique="0" required="0">
 		<getopt mixed="--retry-on=[attempts]" />


More information about the cluster-commits mailing list