fence-agents: master - fence agents: Some agents do not support action=metadata on STDIN

Marek GrĂ¡c marx at fedoraproject.org
Mon Jul 23 09:03:01 UTC 2012


Gitweb:        http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=efcf34f5156385c397509f9fe40ae08ca74a96a0
Commit:        efcf34f5156385c397509f9fe40ae08ca74a96a0
Parent:        723b70ae3f2930e26a7646a4eac881ae1f8e8f10
Author:        Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate:    Thu Jul 12 18:30:48 2012 +0200
Committer:     Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Thu Jul 12 18:30:48 2012 +0200

fence agents: Some agents do not support action=metadata on STDIN

Resolves rhbz#837174
---
 fence/agents/baytech/fence_baytech.pl |    9 +++++----
 fence/agents/brocade/fence_brocade.pl |    5 +++++
 fence/agents/bullpap/fence_bullpap.pl |    7 ++++++-
 fence/agents/cpint/fence_cpint.pl     |   10 ++++++++++
 fence/agents/drac/fence_drac.pl       |    5 +++++
 fence/agents/egenera/fence_egenera.pl |    9 +++++----
 fence/agents/mcdata/fence_mcdata.pl   |    7 ++++++-
 fence/agents/rackswitch/do_rack.c     |    9 +++++++++
 fence/agents/xcat/fence_xcat.pl       |    5 +++++
 fence/agents/zvm/fence_zvm.pl         |   10 ++++++++++
 10 files changed, 66 insertions(+), 10 deletions(-)

diff --git a/fence/agents/baytech/fence_baytech.pl b/fence/agents/baytech/fence_baytech.pl
index c978ec5..e218b78 100644
--- a/fence/agents/baytech/fence_baytech.pl
+++ b/fence/agents/baytech/fence_baytech.pl
@@ -166,14 +166,15 @@ sub get_options
 
       fail_usage "Unkown parameter." if (@ARGV > 0);
 
-      if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
-         print_metadata();
-         exit 0;
-      }
    } else {
       get_options_stdin();
    } 
 
+   if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+      print_metadata();
+      exit 0;
+   }
+
    fail "failed: must specify hostname" unless defined $opt_a;
    $host=$opt_a;
    $port=23 unless ($opt_a =~ /:/);
diff --git a/fence/agents/brocade/fence_brocade.pl b/fence/agents/brocade/fence_brocade.pl
index e3d1612..e3f7290 100644
--- a/fence/agents/brocade/fence_brocade.pl
+++ b/fence/agents/brocade/fence_brocade.pl
@@ -162,6 +162,11 @@ if (@ARGV > 0) {
 } else {
    get_options_stdin();
 
+   if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+     print_metadata();
+     exit 0;
+   }
+
    fail "failed: no IP address" unless defined $opt_a;
    fail "failed: no plug number" unless defined $opt_n;
    fail "failed: no login name" unless defined $opt_l;
diff --git a/fence/agents/bullpap/fence_bullpap.pl b/fence/agents/bullpap/fence_bullpap.pl
index 3309c18..e31ab6d 100644
--- a/fence/agents/bullpap/fence_bullpap.pl
+++ b/fence/agents/bullpap/fence_bullpap.pl
@@ -179,7 +179,7 @@ sub get_options_stdin
 		{
 			$login = $val;
 		} 
-		elsif ($name eq "option" )
+		elsif (($name eq "option" ) || ($name eq "action"))
 		{
 			$action = $val;
 		}
@@ -312,6 +312,11 @@ else
 {
 	get_options_stdin();
 
+	if ((defined $action) && ($action =~ /metadata/i)) {
+		print_metadata();
+		exit 0;
+	}
+
 	fail "failed: no IP address" unless defined $host;
 	fail "failed: no domain" unless defined $domain;
 	fail "failed: no login name" unless defined $login;
diff --git a/fence/agents/cpint/fence_cpint.pl b/fence/agents/cpint/fence_cpint.pl
index d3c016a..eb2ad3a 100644
--- a/fence/agents/cpint/fence_cpint.pl
+++ b/fence/agents/cpint/fence_cpint.pl
@@ -142,6 +142,11 @@ sub get_options_stdin
             $opt_u = $val;
         }
 
+        elsif ($name eq "action" )
+        {
+            $opt_o = $val;
+        }
+
 	else
         {
            print stderr "parse error: unknown option \"$opt\"\n";
@@ -166,6 +171,11 @@ if (@ARGV > 0){
 } else {
     get_options_stdin();
 
+    if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+        print_metadata();
+        exit 0;
+    }
+
     fail "no userid" unless defined $opt_u;
 }
 
diff --git a/fence/agents/drac/fence_drac.pl b/fence/agents/drac/fence_drac.pl
index 825391f..b26fbcb 100644
--- a/fence/agents/drac/fence_drac.pl
+++ b/fence/agents/drac/fence_drac.pl
@@ -717,6 +717,11 @@ if (@ARGV > 0) {
 } else {
 	get_options_stdin();
 
+	if ((defined $action) && ($action =~ /metadata/i)) {
+		print_metadata();
+		exit 0;
+	}
+
 	fail "failed: no IP address" unless defined $address;
 	fail "failed: no login name" unless defined $login;
 
diff --git a/fence/agents/egenera/fence_egenera.pl b/fence/agents/egenera/fence_egenera.pl
index 30eaca1..308338b 100644
--- a/fence/agents/egenera/fence_egenera.pl
+++ b/fence/agents/egenera/fence_egenera.pl
@@ -139,10 +139,6 @@ if (@ARGV > 0)
 
 	fail_usage "Unkown parameter." if (@ARGV > 0);
 
-	if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
-		print_metadata();
-		exit 0;
-	}
 
 	$cserv  = $opt_c if defined $opt_c;
 	$lpan   = $opt_l if defined $opt_l;
@@ -156,6 +152,11 @@ else
 	get_options_stdin();
 } 
 
+if (((defined $opt_o) && ($opt_o =~ /metadata/i)) || ((defined $action) && ($action =~ /metadata/i))) {
+	print_metadata();
+	exit 0;
+}
+
 $action = "reboot" unless defined $action;
 $user = "root" unless defined $user;
 
diff --git a/fence/agents/mcdata/fence_mcdata.pl b/fence/agents/mcdata/fence_mcdata.pl
index a469a1c..5bc9dcf 100644
--- a/fence/agents/mcdata/fence_mcdata.pl
+++ b/fence/agents/mcdata/fence_mcdata.pl
@@ -176,7 +176,7 @@ sub get_options_stdin
 	{
             $opt_l = $val;
         } 
-        elsif ($name eq "option" )
+        elsif (($name eq "option" ) || ($name eq "action"))
         {
             $opt_o = $val;
         }
@@ -235,6 +235,11 @@ if (@ARGV > 0) {
 } else {
    get_options_stdin();
 
+   if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+     print_metadata();
+     exit 0;
+   }
+
    fail "failed: no IP address" unless defined $opt_a;
    fail "failed: no plug number" unless defined $opt_n;
    fail "failed: no login name" unless defined $opt_l;
diff --git a/fence/agents/rackswitch/do_rack.c b/fence/agents/rackswitch/do_rack.c
index 67d24a2..d8050bf 100644
--- a/fence/agents/rackswitch/do_rack.c
+++ b/fence/agents/rackswitch/do_rack.c
@@ -301,6 +301,15 @@ static void get_options(int argc, char **argv)
       strcpy(name, pname);
       if (!strcmp(arg, "ipaddr"))
         strcpy(ipaddr, value);
+
+      if (!strcmp(arg, "action")) 
+        if (strncasecmp(value, "metadata", 254) == 0) {
+          print_metadata();
+          exit(DID_SUCCESS);              
+        } else {
+          fprintf(stderr, "Only 'metadata' option is aviable for this fence agent\n");
+          exit(DID_FAILURE);
+        } 
       
       if (!strcmp(arg, "portnumber"))
         strcpy(portnumber, value);
diff --git a/fence/agents/xcat/fence_xcat.pl b/fence/agents/xcat/fence_xcat.pl
index f984ec1..3cd16aa 100644
--- a/fence/agents/xcat/fence_xcat.pl
+++ b/fence/agents/xcat/fence_xcat.pl
@@ -184,6 +184,11 @@ if (@ARGV > 0) {
 } else {
    get_options_stdin();
 
+   if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+     print_metadata();
+     exit 0;
+   }
+   
    fail "failed: no plug number" unless defined $opt_n;
    $opt_o=lc($opt_o);
    fail "failed: unrecognised action: $opt_o"
diff --git a/fence/agents/zvm/fence_zvm.pl b/fence/agents/zvm/fence_zvm.pl
index e6386e4..04a29e2 100644
--- a/fence/agents/zvm/fence_zvm.pl
+++ b/fence/agents/zvm/fence_zvm.pl
@@ -299,6 +299,11 @@ sub get_options_stdin
         {
             $opt_r = $val;
         }
+        
+        elsif ($name eq "action")
+        {
+            $opt_o = $val;
+        }
 
         # FIXME -- depreicated residue of old fencing system
       	elsif ($name eq "name" ) { }
@@ -352,6 +357,11 @@ if (@ARGV > 0){
 } else {
     get_options_stdin();
 
+    if ((defined $opt_o) && ($opt_o =~ /metadata/i)) {
+        print_metadata();
+        exit 0;
+    }
+
     fail "no IP address" unless defined $opt_a;
     fail "no userid" unless defined $opt_u;
 


More information about the cluster-commits mailing list