You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2011/02/28 20:02:51 UTC

svn commit: r1075486 - /incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm

Author: arkurth
Date: Mon Feb 28 19:02:51 2011
New Revision: 1075486

URL: http://svn.apache.org/viewvc?rev=1075486&view=rev
Log:
VCL-435
Fixed a bug in VMware.pm::reclaim_vmhost_disk_space.  It would generate "Use of uninitialized value in concatenation" warnings under some circumstances because.

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

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm?rev=1075486&r1=1075485&r2=1075486&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm Mon Feb 28 19:02:51 2011
@@ -2511,6 +2511,9 @@ sub reclaim_vmhost_disk_space {
 	
 	my $enough_space_reclaimed = 0;
 	
+	notify($ERRORS{'DEBUG'}, 0, "deletable vmx files:\n" . format_data($deletable_vmx_files));
+	notify($ERRORS{'DEBUG'}, 0, "deletable vmdk directories:\n" . format_data($deletable_vmdk_directories));
+	
 	DELETE_STAGE: for my $delete_stage (@delete_stage_order) {
 		my ($vmx_vmdk, $key, $value) = @$delete_stage;
 		notify($ERRORS{'DEBUG'}, 0, "processing delete stage - $vmx_vmdk: $key = $value");
@@ -2535,9 +2538,13 @@ sub reclaim_vmhost_disk_space {
 					notify($ERRORS{'DEBUG'}, 0, "reclaimed space used by VM: $deletable_vmx_file_path");
 					
 					for my $vmdk_directory_path (sort keys %{$deletable_vmx_files->{$deletable_vmx_file_path}{vmdk_directory_paths}}) {
-						notify($ERRORS{'DEBUG'}, 0, "deleting $deletable_vmx_file_name from vmdk info: $vmdk_directory_path\n" . format_data($deletable_vmdk_directories->{$vmdk_directory_path}{vmx_file_paths}));
+						notify($ERRORS{'DEBUG'}, 0, "deleting $deletable_vmx_file_name from vmdk info: $vmdk_directory_path\n" . format_data($deletable_vmdk_directories->{$vmdk_directory_path}));
 						delete $deletable_vmdk_directories->{$vmdk_directory_path}{vmx_file_paths}{$deletable_vmx_file_path};
-						notify($ERRORS{'DEBUG'}, 0, "after:\n" . format_data($deletable_vmdk_directories->{$vmdk_directory_path}{vmx_file_paths}));
+						
+						my $vmx_file_path_count = scalar(keys %{$deletable_vmdk_directories->{$vmdk_directory_path}{vmx_file_paths}});
+						$deletable_vmdk_directories->{$vmdk_directory_path}{vmx_file_path_count} = $vmx_file_path_count;
+						
+						notify($ERRORS{'DEBUG'}, 0, "after:\n" . format_data($deletable_vmdk_directories->{$vmdk_directory_path}));
 					}
 					delete $deletable_vmx_files->{$deletable_vmx_file_path};
 					
@@ -2552,17 +2559,19 @@ sub reclaim_vmhost_disk_space {
 				my $deletable_vmdk_directory_name = $deletable_vmdk_directories->{$deletable_vmdk_directory_path}{directory_name};
 				my $deletable_vmdk_directory_value = $deletable_vmdk_directories->{$deletable_vmdk_directory_path}{$key};
 				
-				if (!defined($deletable_vmdk_directory_value)) {
+				if (!defined($deletable_vmdk_directory_name)) {
+					notify($ERRORS{'WARNING'}, 0, "vmdk directory name is not set the hash for deletable vmdk directory path: '$deletable_vmdk_directory_path'\n" . format_data($deletable_vmdk_directories->{$deletable_vmdk_directory_path}));
+					next;
+				}
+				elsif (!defined($deletable_vmdk_directory_value)) {
 					notify($ERRORS{'DEBUG'}, 0, "no value: $key is not set for vmdk file $deletable_vmdk_directory_name");
 					next;
 				}
 				elsif ($deletable_vmdk_directory_value ne $value) {
-					notify($ERRORS{'DEBUG'}, 0, "no match: vmdk file $deletable_vmdk_directory_name does not match delete stage criteria: $key = $value, vmdk value: $deletable_vmdk_directory_value");
+					notify($ERRORS{'DEBUG'}, 0, "no match: vmdk directory: $deletable_vmdk_directory_name\ndelete stage criteria: $key = $value\nvmdk value: $key = $deletable_vmdk_directory_value");
 					next;
 				}
-				
-				notify($ERRORS{'DEBUG'}, 0, "match: vmdk file $deletable_vmdk_directory_name matches delete stage criteria: $key = $value, vmdk value: $deletable_vmdk_directory_value");
-				
+				notify($ERRORS{'DEBUG'}, 0, "match: vmdk directory: $deletable_vmdk_directory_name\ndelete stage criteria: $key = $value\nvmdk value: $key = $deletable_vmdk_directory_value");
 				for my $vmx_file_path (sort keys %{$deletable_vmdk_directories->{$deletable_vmdk_directory_path}{vmx_file_paths}}) {
 					if ($self->delete_vm($vmx_file_path)) {
 						notify($ERRORS{'DEBUG'}, 0, "reclaimed space used by VM: $vmx_file_path");