From 1d25582ed603f4c4558a5a78fb02a2378cc4989c Mon Sep 17 00:00:00 2001 From: nvazquez Date: Fri, 20 Jan 2017 13:20:37 -0300 Subject: [PATCH] CLOUDSTACK-9752: [Vmware] Optimization of volume attachness to vm (cherry picked from commit 49dadc5505d85323b0864f50a2a8e36dd05805e5) Signed-off-by: Rohit Yadav --- .../storage/resource/VmwareStorageProcessor.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java index 9c0b317b759..30ad3ca60ae 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java +++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java @@ -1571,11 +1571,15 @@ public class VmwareStorageProcessor implements StorageProcessor { } synchronized (this) { - // s_logger.info("Delete file if exists in datastore to clear the way for creating the volume. file: " + volumeDatastorePath); - VmwareStorageLayoutHelper.deleteVolumeVmdkFiles(dsMo, volumeUuid.toString(), dcMo); - - vmMo.createDisk(volumeDatastorePath, (int)(volume.getSize() / (1024L * 1024L)), morDatastore, vmMo.getScsiDeviceControllerKey()); - vmMo.detachDisk(volumeDatastorePath, false); + try { + vmMo.createDisk(volumeDatastorePath, (int)(volume.getSize() / (1024L * 1024L)), morDatastore, vmMo.getScsiDeviceControllerKey()); + vmMo.detachDisk(volumeDatastorePath, false); + } + catch (Exception e) { + s_logger.error("Deleting file " + volumeDatastorePath + " due to error: " + e.getMessage()); + VmwareStorageLayoutHelper.deleteVolumeVmdkFiles(dsMo, volumeUuid.toString(), dcMo); + throw new CloudRuntimeException("Unable to create volume due to: " + e.getMessage()); + } } VolumeObjectTO newVol = new VolumeObjectTO();