vcl-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arku...@apache.org
Subject svn commit: r1055559 - /incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm
Date Wed, 05 Jan 2011 17:58:43 GMT
Author: arkurth
Date: Wed Jan  5 17:58:43 2011
New Revision: 1055559

URL: http://svn.apache.org/viewvc?rev=1055559&view=rev
Log:
VCL-424
Updated vSphere.pm:

Moved check to determine if the virtualDiskManager object is available in is_restricted to
earlier in the subroutine to save a little time.

Added check in initialize to parse the output of the connection attempt to determine if the
attempt failed due to an incorrect username or password.  A warning is displayed if this is
the case, a normal debug message otherwise.  Some connection attempts are normal if the vSphere
SDK isn't available and SSH is used instead.


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=1055559&r1=1055558&r2=1055559&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  5 17:58:43 2011
@@ -1074,6 +1074,13 @@ sub is_restricted {
 		return 1;
 	}
 	
+	# Attempt to get a virtual disk manager object
+	# This is required to copy virtual disks and perform other operations
+	if (!$service_content->{virtualDiskManager}) {
+		notify($ERRORS{'OK'}, 0, "access to the VM host is restricted, virtual disk manager is
not available through the vSphere SDK");
+		return 1;
+	}
+	
 	# Get a fileManager object
 	my $file_manager = Vim::get_view(mo_ref => $service_content->{fileManager}) || return;
 	if (!$file_manager) {
@@ -1102,13 +1109,6 @@ sub is_restricted {
 	
 	notify($ERRORS{'OK'}, 0, "access to the VM host via the vSphere SDK is NOT restricted due
to the license");
 	
-	# Attempt to get a virtual disk manager object
-	# This is required to copy virtual disks and perform other operations
-	if (!$service_content->{virtualDiskManager}) {
-		notify($ERRORS{'OK'}, 0, "access to the VM host is restricted, virtual disk manager is
not available through the vSphere SDK");
-		return 1;
-	}
-	
 	return 0;
 }
 
@@ -1849,18 +1849,28 @@ sub initialize {
 		my $result;
 		eval { $result = Util::connect(); };
 		$result = 'undefined' if !defined($result);
+		my $error_message = $@;
+		undef $@;
 		
-		if (!$result || $@) {
-			notify($ERRORS{'DEBUG'}, 0, "unable to connect to VM host: $host_url, username: '$vmhost_username',
password: '$vmhost_password', error:\n$@");
-			undef $@;
+		# It's normal if some connection attempts fail - SSH will be used if the vSphere SDK isn't
available
+		# Don't display a warning unless the error indicates a configuration problem (wrong username
or password)
+		# Possible error messages:
+		#    Cannot complete login due to an incorrect user name or password.
+		#    Error connecting to server at 'https://<VM host>/sdk': Connection refused
+		if ($error_message && $error_message =~ /incorrect/) {
+			notify($ERRORS{'WARNING'}, 0, "unable to connect to VM host because username or password
is incorrectly configured in the VM profile ($vmhost_username/$vmhost_password), error: $error_message");
+			return;
+		}
+		elsif (!$result || $error_message) {
+			notify($ERRORS{'DEBUG'}, 0, "unable to connect to VM host using URL: $host_url, error:\n$error_message");
 		}
 		else {
-			notify($ERRORS{'DEBUG'}, 0, "connected to VM host: $host_url, username: '$vmhost_username'");
+			notify($ERRORS{'OK'}, 0, "connected to VM host: $host_url, username: '$vmhost_username'");
 			return 1;
 		}
 	}
 	
-	notify($ERRORS{'WARNING'}, 0, "failed to connect to VM host: $vmhost_hostname");
+	notify($ERRORS{'OK'}, 0, "unable connect to VM host: $vmhost_hostname");
 	return;
 }
 



Mime
View raw message