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