Gitweb: http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=8bb87b170... Commit: 8bb87b1704ddb923228d3306380250a0908a8877 Parent: dd0e31de6cd4dd6926effaee8824eccc79bbf2a1 Author: Marek 'marx' Grac mgrac@redhat.com AuthorDate: Thu Oct 18 11:35:15 2012 +0200 Committer: Marek 'marx' Grac mgrac@redhat.com CommitterDate: Thu Oct 25 10:35:51 2012 +0200
fence_na: Add support for XML metadata output
Adding a skelet for XML metadata output so fence_na can be used with corosync.
Resolves: rhbz#864028 --- fence/agents/node_assassin/fence_na.lib.in | 57 ++++++++++++++++++++++++++++ fence/agents/node_assassin/fence_na.pl | 6 +++ 2 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/fence/agents/node_assassin/fence_na.lib.in b/fence/agents/node_assassin/fence_na.lib.in index 67d5367..dec734a 100644 --- a/fence/agents/node_assassin/fence_na.lib.in +++ b/fence/agents/node_assassin/fence_na.lib.in @@ -918,4 +918,61 @@ sub _make_hash_reference _add_hash_reference($href, $_href); }
+sub show_metadata +{ + print <<METADATA; +<?xml version="1.0" ?> +<resource-agent name="fence_na.py" shortdesc="Fence agent for Node Assassin over telnet" > +<longdesc>fence_na is an I/O Fencing agent which can be used with the Node Assassin network power switch. It logs into device via telnet 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.altavee.ca/w/Node_Assassin_v1.1.4</vendor-url> +<parameters> + <parameter name="action" unique="0" required="1"> + <getopt mixed="-o <action>" /> + <content type="string" default="reboot" /> + <shortdesc lang="en">Fencing Action</shortdesc> + </parameter> + <parameter name="ipaddr" unique="0" required="1"> + <getopt mixed="-a <ip>" /> + <content type="string" /> + <shortdesc lang="en">IP Address or Hostname</shortdesc> + </parameter> + <parameter name="login" unique="0" required="1"> + <getopt mixed="-l <name>" /> + <content type="string" /> + <shortdesc lang="en">Login Name</shortdesc> + </parameter> + <parameter name="passwd" unique="0" required="0"> + <getopt mixed="-p <password>" /> + <content type="string" /> + <shortdesc lang="en">Login password or passphrase</shortdesc> + </parameter> + <parameter name="port" unique="0" required="1"> + <getopt mixed="-n;" /> + <content type="string" /> + <shortdesc lang="en">Physical plug number</shortdesc> + </parameter> + <parameter name="version" unique="0" required="0"> + <getopt mixed="-V" /> + <content type="boolean" /> + <shortdesc lang="en">Display version information and exit</shortdesc> + </parameter> + <parameter name="help" unique="0" required="0"> + <getopt mixed="-h" /> + <content type="boolean" /> + <shortdesc lang="en">Display help and exit</shortdesc> + </parameter> +</parameters> +<actions> + <action name="on" /> + <action name="off" /> + <action name="reboot" /> + <action name="status" /> + <action name="list" /> + <action name="monitor" /> + <action name="metadata" /> +</actions> +</resource-agent> +METADATA +} + 1; diff --git a/fence/agents/node_assassin/fence_na.pl b/fence/agents/node_assassin/fence_na.pl index bc7fb00..bdcaf69 100644 --- a/fence/agents/node_assassin/fence_na.pl +++ b/fence/agents/node_assassin/fence_na.pl @@ -106,6 +106,12 @@ foreach my $i (1..$conf->{'system'}{na_num}) }
die "Exiting on errors.\n" if $bad; + +if ($conf->{na}{action} eq "metadata") { + show_metadata(); + do_exit($conf, $log, 0); +} + my @ny=("no", "yes"); record($conf, $log, "Node Assassin: . [$conf->{na}{ipaddr}].\n"); record($conf, $log, "TCP Port: ...... [$conf->{na}{tcp_port}].\n");
cluster-commits@lists.stg.fedorahosted.org