[Cluster-devel] [PATCH 1/2] Node Assassin: add support for metadata
Jan Pokorný
jpokorny at redhat.com
Thu Feb 28 21:37:07 UTC 2013
To be honest, untested.
Signed-off-by: Jan Pokorný <jpokorny at redhat.com>
---
fence/agents/node_assassin/fence_na.lib.in | 50 ++++++++++++++++++++++++++++++
fence/agents/node_assassin/fence_na.pl | 9 +++++-
2 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/fence/agents/node_assassin/fence_na.lib.in b/fence/agents/node_assassin/fence_na.lib.in
index 67d5367..84d3bf2 100644
--- a/fence/agents/node_assassin/fence_na.lib.in
+++ b/fence/agents/node_assassin/fence_na.lib.in
@@ -918,4 +918,54 @@ sub _make_hash_reference
_add_hash_reference($href, $_href);
}
+
+sub print_metadata
+{
+print '<?xml version="1.0" ?>
+<resource-agent name="fence_na" shortdesc="I/O Fencing agent for Node Assassin." >
+<longdesc>
+fence_na is an I/O Fencing agent for Node Assassin, open hardware, open source cluster fence device.
+</longdesc>
+<vendor-url>http://nodeassassin.org</vendor-url>
+<parameters>
+ <parameter name="action" unique="1" required="1">
+ <content type="string" />
+ <shortdesc lang="en">Operation to perform. Valid operations: on, off, reboot, status, list, metadata, release, boot or shutdown</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="1" required="1">
+ <content type="string" />
+ <shortdesc lang="en">Node Assassin IP or name to talk to</shortdesc>
+ </parameter>
+ <parameter name="login" unique="1" required="1">
+ <content type="string" />
+ <shortdesc lang="en">Login name used to log into the Node Assassin(s)</shortdesc>
+ </parameter>
+ <parameter name="passwd" unique="1" required="0">
+ <content type="string" />
+ <shortdesc lang="en">Password needed to access the Node Assassin(s)</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="1" required="0">
+ <content type="string" />
+ <shortdesc lang="en">Script to retrieve password (not implemented)</shortdesc>
+ </parameter>
+ <parameter name="quiet" unique="0" required="0">
+ <content type="boolean" />
+ <shortdesc lang="en">Suppress output</shortdesc>
+ </parameter>
+</parameters>
+<actions>
+ <action name="on" />
+ <action name="off" />
+ <action name="reboot" />
+ <action name="status" />
+ <action name="metadata" />
+ <action name="list" />
+ <action name="release" />
+ <action name="boot" />
+ <action name="shutdown" />
+</actions>
+</resource-agent>
+';
+}
+
1;
diff --git a/fence/agents/node_assassin/fence_na.pl b/fence/agents/node_assassin/fence_na.pl
index bc7fb00..249bc55 100644
--- a/fence/agents/node_assassin/fence_na.pl
+++ b/fence/agents/node_assassin/fence_na.pl
@@ -140,9 +140,16 @@ if (($conf->{na}{login} ne $conf->{'system'}{username}) or ($conf->{na}{passwd}
# What do? #
###############################################################################
+record($conf, $log, "Action: ........ [$conf->{na}{action}].\n") if $conf->{'system'}{debug};
+
+if ($conf->{na}{action} eq "metadata")
+{
+ print_metadata();
+ do_exit($conf, $log, 0);
+}
+
# When asked to 'monitor' or 'list'. being multi-port, this will return a CSV
# of nodes and their aliases where found in the config file.
-record($conf, $log, "Action: ........ [$conf->{na}{action}].\n") if $conf->{'system'}{debug};
if (($conf->{na}{action} eq "monitor") or ($conf->{na}{action} eq "list"))
{
record($conf, $log, "Calling the 'show_list' function.\n") if $conf->{'system'}{debug};
--
1.7.11.7
More information about the Cluster-devel
mailing list