This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fence-agents: master - fence: vmware helper better handling poweron/off errors


Gitweb:        http://git.fedorahosted.org/git/fence-agents.git?p=fence-agents.git;a=commitdiff;h=42269f7d03dac4f9e09dc81dfa42d04249b7d58f
Commit:        42269f7d03dac4f9e09dc81dfa42d04249b7d58f
Parent:        1ab3e3473e5538d6c410332b62b796c7544f1e03
Author:        Jan Friesse <jfriesse@redhat.com>
AuthorDate:    Mon Jan 19 12:26:50 2009 +0100
Committer:     Jan Friesse <jfriesse@redhat.com>
CommitterDate: Mon Jan 19 12:26:50 2009 +0100

fence: vmware helper better handling power on/off errors

Because of nature of VMware cluster, there may be situation,
when VMware cluster itself start fenced virtual machine before
our agent. Without this patch, this leads to error. Now, only
warning is produced, but return code of helper is still 0.
---
 fence/agents/vmware/fence_vmware_helper.pl |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/fence/agents/vmware/fence_vmware_helper.pl b/fence/agents/vmware/fence_vmware_helper.pl
index e60805e..5715d55 100644
--- a/fence/agents/vmware/fence_vmware_helper.pl
+++ b/fence/agents/vmware/fence_vmware_helper.pl
@@ -139,8 +139,18 @@ foreach $vm(@$vm_views) {
     };
 
     if ($@) {
-      show_error "Cannot power on vm ".Opts::get_option('vmname')."!\nVMware error:".$@;
-      my_exit 6;
+      # If error is SoapFault with InvalidPowerState, user maybe use some auto power on tool.
+      # This is not error, warning is enought.
+      if (ref($@) eq 'SoapFault') {
+        if (ref($@->detail) eq 'InvalidPowerState') {
+          show_error "Warning: Cannot power on vm (somebody done it before???) ".Opts::get_option('vmname').
+                     "!\nVMware error:".$@."\n";
+        }
+      } else {
+        # Some other more serious problem
+        show_error "Cannot power on vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
+        my_exit 6;
+      }
     }
   } elsif ($operation eq 'off') {
     eval {
@@ -148,8 +158,18 @@ foreach $vm(@$vm_views) {
     };
 
     if ($@) {
-      show_error "Cannot power off vm ".Opts::get_option('vmname')."!\nVMware error:".$@;
-      my_exit 6;
+      # If error is SoapFault with InvalidPowerState, user maybe use some auto power off tool.
+      # This is not error, warning is enought.
+      if (ref($@) eq 'SoapFault') {
+        if (ref($@->detail) eq 'InvalidPowerState') {
+          show_error "Warning: Cannot power off vm (somebody done it before???) ".Opts::get_option('vmname').
+                     "!\nVMware error:".$@."\n";
+        }
+      } else {
+        # Some other more serious problem
+        show_error "Cannot power off vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
+        my_exit 6;
+      }
     }
   } else {
     show_error "Operation should be on, off or list!\n";


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]