Author: arkurth
Date: Wed Jan 12 21:06:38 2011
New Revision: 1058318

URL: http://svn.apache.org/viewvc?rev=1058318&view=rev
Log:
VCL-394
Updated vSphere_SDK.pm to catch the fatal error that occurs if the vSphere SDK 
isn't installed on the management node.  In initialize(), the die handler is 
locally overridden and a useful message is displayed if the vSphere SDK isn't 
installed.

Modified:
    
incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm

Modified: 
incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm?rev=1058318&r1=1058317&r2=1058318&view=diff
==============================================================================
--- 
incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm
 (original)
+++ 
incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm
 Wed Jan 12 21:06:38 2011
@@ -61,10 +61,6 @@ use List::Util qw( max );
 
 use VCL::utils;
 
-use VMware::VIRuntime;
-use VMware::VILib;
-use VMware::VIExt;
-
 ##############################################################################
 
 =head1 API OBJECT METHODS
@@ -1805,6 +1801,16 @@ sub initialize {
                return;
        }
        
+       # Override the die handler because process will die if VMware Perl 
libraries aren't installed
+       local $SIG{__DIE__} = sub{};
+       
+       eval "use VMware::VIRuntime; use VMware::VILib; use VMware::VIExt";
+       if ($EVAL_ERROR) {
+               notify($ERRORS{'OK'}, 0, "vSphere SDK for Perl does not appear 
to be installed on this managment node, unable to load VMware vSphere SDK Perl 
modules");
+               return 0;
+       }
+       notify($ERRORS{'DEBUG'}, 0, "loaded VMware vSphere SDK modules");
+       
        my $vmhost_hostname = $self->data->get_vmhost_hostname();
        my $vmhost_username = $self->data->get_vmhost_profile_username();
        my $vmhost_password = $self->data->get_vmhost_profile_password();


Reply via email to