From bbd7183df0f0e65f07ffeb7a049395fef195ffd8 Mon Sep 17 00:00:00 2001 From: Sateesh Chodapuneedi Date: Tue, 16 Jul 2013 21:30:03 +0530 Subject: [PATCH] CLOUDSTACK-3529 Unable to test file existence due to exception java.lang.RuntimeException See if file being deleted is directory or file. Signed-off-by: Sateesh Chodapuneedi --- .../cloud/hypervisor/vmware/mo/DatastoreMO.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java index a1f2506ca1f..638104e603e 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java @@ -21,8 +21,6 @@ import java.util.List; import org.apache.log4j.Logger; -import com.cloud.hypervisor.vmware.util.VmwareContext; -import com.cloud.utils.Pair; import com.vmware.vim25.DatastoreSummary; import com.vmware.vim25.FileInfo; import com.vmware.vim25.HostDatastoreBrowserSearchResults; @@ -34,6 +32,9 @@ import com.vmware.vim25.PropertySpec; import com.vmware.vim25.SelectionSpec; import com.vmware.vim25.TraversalSpec; +import com.cloud.hypervisor.vmware.util.VmwareContext; +import com.cloud.utils.Pair; + public class DatastoreMO extends BaseMO { private static final Logger s_logger = Logger.getLogger(DatastoreMO.class); @@ -48,7 +49,8 @@ public class DatastoreMO extends BaseMO { super(context, morType, morValue); } - public String getName() throws Exception { + @Override + public String getName() throws Exception { if(_name == null) _name = (String)_context.getVimClient().getDynamicProperty(_mor, "name"); @@ -131,10 +133,15 @@ public class DatastoreMO extends BaseMO { String fullPath = path; if(!DatastoreFile.isFullDatastorePath(fullPath)) fullPath = String.format("[%s] %s", datastoreName, path); + DatastoreFile file = new DatastoreFile(fullPath); + // Test if file specified is null or empty. We don't need to attempt to delete and return success. + if (file.getFileName() == null || file.getFileName().isEmpty()) { + return true; + } try { if(testExistence && !fileExists(fullPath)) { - String searchResult = searchFileInSubFolders(fullPath.split(" ")[1], true); + String searchResult = searchFileInSubFolders(file.getFileName(), true); if (searchResult == null) { return true; } else {