vcl-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arku...@apache.org
Subject svn commit: r1055529 - /incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
Date Wed, 05 Jan 2011 17:05:27 GMT
Author: arkurth
Date: Wed Jan  5 17:05:27 2011
New Revision: 1055529

URL: http://svn.apache.org/viewvc?rev=1055529&view=rev
Log:
VCL-127
Added VM host name to subject for critical email messages and to the vcld process name.

VCL-428
Updated get_request_info to populate the current image info using the computer.imagerevisionid
value rather than the computer.currentimageid value.  It's possible that these 2 values may
refer to a different image.  The imagerevisionid value is more accurate.

Other
Added TB info to the string returned by utils.pm::get_file_size_info_string() if the value
is >= 1TB.

Updated utils.pm::escape_file_path() to use quotemeta rather than only escaping spaces.  This
allows it to escape other special characters in file paths which cause problems with other
subroutines.

Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1055529&r1=1055528&r2=1055529&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Wed Jan  5 17:05:27 2011
@@ -718,6 +718,9 @@ END
 			my $computer_name = $ENV{data}->get_computer_short_name(0);
 			$subject .= "|$computer_name" if (defined $computer_name);
 			
+			my $vmhost_hostname = $ENV{data}->get_vmhost_hostname(0);
+			$subject .= ">$vmhost_hostname" if (defined $vmhost_hostname);
+			
 			my $image_name = $ENV{data}->get_image_name(0);
 			$subject .= "|$image_name" if (defined $image_name);
 			
@@ -4349,67 +4352,46 @@ sub get_request_info {
 			}
 		} ## end if ($reservation_row{computer_vmhostid})
 
-		# Get the computer's current image information
-		if ($reservation_row{computer_currentimageid}) {
-			my %computer_currentimage_info;
-			if (%computer_currentimage_info = get_image_info($reservation_row{computer_currentimageid}))
{
-				$request_info{reservation}{$reservation_id}{computer}{currentimage} = \%computer_currentimage_info;
-			}
-			else {
-				notify($ERRORS{'WARNING'}, 0, "unable to get current image info for computer");
-			}
-		}
-		else {
-			# currentimageid wasn't set for the computer
-			notify($ERRORS{'WARNING'}, 0, "currentimageid is not set for computer id=" . $reservation_row{computer_id});
-		}
-
 		# Get the computer's next image information
 		if ($reservation_row{computer_nextimageid}) {
-			my %computer_nextimage_info;
-			if (%computer_nextimage_info = get_image_info($reservation_row{computer_nextimageid}))
{
+			if (my %computer_nextimage_info = get_image_info($reservation_row{computer_nextimageid}))
{
 				$request_info{reservation}{$reservation_id}{computer}{nextimage} = \%computer_nextimage_info;
 
 				# For next imageid get the production imagerevision info
-				my %next_imagerevision_info;
-				if (%next_imagerevision_info = get_production_imagerevision_info($reservation_row{computer_nextimageid}))
{
+				if (my %next_imagerevision_info = get_production_imagerevision_info($reservation_row{computer_nextimageid}))
{
 					$request_info{reservation}{$reservation_id}{computer}{nextimagerevision} = \%next_imagerevision_info;
 				}
 				else {
 					notify($ERRORS{'WARNING'}, 0, "unable to get next image revision info for computer,
image revision ID is not set, tried to get production image for image ID " . $reservation_row{computer_nextimageid});
 				}
-			} ## end if (%computer_nextimage_info = get_image_info...
+			}
 			else {
 				notify($ERRORS{'WARNING'}, 0, "unable to get nextimage image info for computer");
 			}
-		} ## end if ($reservation_row{computer_nextimageid...
+		}
 		else {
-			# currentimageid wasn't set for the computer
-			notify($ERRORS{'WARNING'}, 0, "nextimageid is not set for computer id=" . $reservation_row{computer_id});
+			notify($ERRORS{'DEBUG'}, 0, "nextimageid is not set for computer");
 		}
 
-		# Get the computer's current imagemeta information
-		my %computer_currentimagerevision_info;
-		if ($reservation_row{computer_imagerevisionid} > 0) {
-			# imagerevisionid is set for computer, get the info for that specific revision
-			if (%computer_currentimagerevision_info = get_imagerevision_info($reservation_row{computer_imagerevisionid}))
{
-				$request_info{reservation}{$reservation_id}{computer}{currentimagerevision} = \%computer_currentimagerevision_info;
+		# Get the computer's current imagerevision information
+		if ($reservation_row{computer_imagerevisionid}) {
+			if (my %computer_currentimagerevision_info = get_imagerevision_info($reservation_row{computer_imagerevisionid}))
{
+				if (my %computer_currentimage_info = get_image_info($computer_currentimagerevision_info{imageid}))
{
+					$request_info{reservation}{$reservation_id}{computer}{currentimagerevision} = \%computer_currentimagerevision_info;
+					$request_info{reservation}{$reservation_id}{computer}{currentimage} = \%computer_currentimage_info;
+				}
+				else {
+					notify($ERRORS{'WARNING'}, 0, "unable to get current image info for computer, image
ID: $computer_currentimagerevision_info{imageid}");
+				}
 			}
 			else {
-				notify($ERRORS{'WARNING'}, 0, "unable to get current image revision info for computer,
image revision ID is set to " . $reservation_row{computer_imagerevisionid});
+				notify($ERRORS{'WARNING'}, 0, "unable to get current image revision info for computer,
image revision ID: $reservation_row{computer_imagerevisionid}");
 			}
 		}
 		else {
-			# imagerevisionid is not set for computer, get the info for the production revision of
currentimageid
-			if (%computer_currentimagerevision_info = get_production_imagerevision_info($reservation_row{computer_currentimageid}))
{
-				$request_info{reservation}{$reservation_id}{computer}{currentimagerevision} = \%computer_currentimagerevision_info;
-			}
-			else {
-				notify($ERRORS{'WARNING'}, 0, "unable to get current image revision info for computer,
image revision ID is not set, tried to get production image for image ID " . $reservation_row{computer_currentimageid});
-			}
+			notify($ERRORS{'DEBUG'}, 0, "imagerevisionid is not set for computer");
 		}
-
-
+		
 		# Loop through all the columns returned for the reservation
 		foreach my $key (keys %reservation_row) {
 			my $value = $reservation_row{$key};
@@ -5261,7 +5243,7 @@ sub get_vmhost_info {
 
 sub run_ssh_command {
 	my ($node, $identity_paths, $command, $user, $port, $output_level) = @_;
-	
+
 	my $max_attempts = 3;
 	
 	if (ref($_[0]) eq 'HASH') {
@@ -5274,6 +5256,7 @@ sub run_ssh_command {
 		$port = $arguments->{port} || '22';
 		$output_level = $arguments->{output_level};
 		$max_attempts = $arguments->{max_attempts} || 3;
+		
 	}
 	
 	# Determine the output level if it was specified
@@ -7079,6 +7062,7 @@ sub rename_vcld_process {
 			my $reservation_id        = $data_structure->get_reservation_id();
 			my $request_state_name    = $data_structure->get_request_state_name();
 			my $computer_short_name   = $data_structure->get_computer_short_name();
+			my $vmhost_hostname       = $data_structure->get_vmhost_hostname(0);
 			my $image_name            = $data_structure->get_image_name();
 			my $user_login_id         = $data_structure->get_user_login_id();
 			my $request_forimaging    = $data_structure->get_request_forimaging();
@@ -7089,6 +7073,7 @@ sub rename_vcld_process {
 			$new_process_name .= " $request_id:$reservation_id";
 			$new_process_name .= " $request_state_name" if ($request_state_name);
 			$new_process_name .= " $computer_short_name" if ($computer_short_name);
+			$new_process_name .= ">$vmhost_hostname" if ($vmhost_hostname);
 			$new_process_name .= " $image_name" if ($image_name);
 			$new_process_name .= " $user_login_id" if ($user_login_id);
 			$new_process_name .= " (imaging)" if $request_forimaging;
@@ -9788,11 +9773,13 @@ sub get_file_size_info_string {
 	
 	my $size_mb = format_number(($size_bytes / 1024 / 1024), 1);
 	my $size_gb = format_number(($size_bytes / 1024 / 1024 / 1024), 2);
+	my $size_tb = format_number(($size_bytes / 1024 / 1024 / 1024 / 1024), 2);
 	
 	my $size_info;
 	$size_info .= format_number($size_bytes) . " bytes$separator";
 	$size_info .= "$size_mb MB$separator";
 	$size_info .=  "$size_gb GB";
+	$size_info .=  "$separator$size_tb TB" if ($size_tb >= 1);
 	return $size_info;
 }
 
@@ -9894,9 +9881,11 @@ sub escape_file_path {
 	
 	$path = normalize_file_path($path);
 	
-	# Add a backslash before each space
-	# Also check for spaces that already have a leading backslash
-	$path =~ s/\\*(\s)/\\$1/g;
+	# Call quotemeta to escape all special character
+	$path = quotemeta $path;
+	
+	# Unescape wildcard * characters or else subroutines will fail which accept a wildcard file
path
+	$path =~ s/\\+\*/\*/g;
 	
 	return $path;
 }



Mime
View raw message