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();