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 2015/05/06 23:33:45 UTC

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

Author: arkurth
Date: Wed May  6 21:33:45 2015
New Revision: 1678099

URL: http://svn.apache.org/r1678099
Log:
VCL-844
Fixed issue with migrate_vm. prepare_vmdk was attempting to delete a dedicated VM directory.

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

Modified: vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm?rev=1678099&r1=1678098&r2=1678099&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm Wed May  6 21:33:45 2015
@@ -9320,12 +9320,14 @@ sub migrate_vm {
 			$destination_vmdk_directory_path = $destination->get_vmdk_directory_path();
 			$destination_vmdk_directory_url_path = $destination->_get_url_path($destination_vmdk_directory_path);
 			$destination->{vm_dedicated} = 1;
-			$same_vmdk_directory = 0;
 		}
 		else {
 			notify($ERRORS{'DEBUG'}, 0, "vmdk directory is NOT dedicated: $source_vmdk_directory_url_path_dedicated");
 		}
 	}
+	else {
+		notify($ERRORS{'DEBUG'}, 0, "source and destination VMs use different vmdk directories:\nsource: $source_vmdk_directory_url_path\ndestination: $destination_vmdk_directory_url_path");
+	}
 	
 	my $source_vmdk_file_url_path = $source->_get_url_path($source_vmdk_file_path);
 	my $destination_vmdk_file_url_path = $destination->_get_url_path($destination_vmdk_file_path);
@@ -9333,10 +9335,15 @@ sub migrate_vm {
 
 	# Copy the parent vmdk to the correct location on the destination
 	# This may fail if vmdk doesn't exist on destination datastore or repository
-	notify($ERRORS{'DEBUG'}, 0, "copying destination master vmdk if necessary: $destination_vmdk_file_path");
-	if (!$destination->prepare_vmdk()) {
-		notify($ERRORS{'WARNING'}, 0, "failed to copy destination master vmdk: $destination_vmdk_file_path");
-		return;
+	if (!$same_vmdk_directory) {
+		notify($ERRORS{'DEBUG'}, 0, "copying destination master vmdk if necessary: $destination_vmdk_file_path");
+		if (!$destination->prepare_vmdk()) {
+			notify($ERRORS{'WARNING'}, 0, "failed to copy destination master vmdk: $destination_vmdk_file_path");
+			return;
+		}
+	}
+	else {
+		notify($ERRORS{'DEBUG'}, 0, "copying destination master vmdk not necessary, source and destination VMs will use the same vmdk path");
 	}
 	
 	# Create the destination directory