diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index eb9f333ec7a..909f5f76a78 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -299,7 +299,6 @@ import com.vmware.vim25.VirtualVmxnet2; import com.vmware.vim25.VirtualVmxnet3; import com.vmware.vim25.VmConfigInfo; import com.vmware.vim25.VmConfigSpec; -import com.vmware.vim25.VmfsDatastoreInfo; import com.vmware.vim25.VmwareDistributedVirtualSwitchPvlanSpec; import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec; import org.apache.cloudstack.storage.command.CopyCommand; @@ -7000,14 +6999,8 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa instanceDisk.setDatastorePath(dsInfo.getNas().getRemotePath()); instanceDisk.setDatastoreType(dsInfo.getNas().getType()); } - } else if (info instanceof VmfsDatastoreInfo) { - VmfsDatastoreInfo dsInfo = (VmfsDatastoreInfo) info; - instanceDisk.setDatastoreName(dsInfo.getVmfs().getName()); - instanceDisk.setDatastoreType(dsInfo.getVmfs().getType()); } else { - String msg = String.format("Unmanaged instance disk: %s is on unsupported datastore %s", instanceDisk.getDiskId(), info.getClass().getSimpleName()); - s_logger.error(msg); - throw new Exception(msg); + instanceDisk.setDatastoreName(info.getName()); } } s_logger.info(vmMo.getName() + " " + disk.getDeviceInfo().getLabel() + " " + disk.getDeviceInfo().getSummary() + " " + disk.getDiskObjectId() + " " + disk.getCapacityInKB() + " " + instanceDisk.getController()); diff --git a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java index 0d614349235..ecf1145dfb0 100644 --- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java @@ -103,7 +103,6 @@ import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.GuestOS; import com.cloud.storage.GuestOSHypervisor; -import com.cloud.storage.Storage; import com.cloud.storage.StoragePool; import com.cloud.storage.VMTemplateStoragePoolVO; import com.cloud.storage.VMTemplateVO; @@ -491,23 +490,20 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager { final String dsPath = disk.getDatastorePath(); final String dsType = disk.getDatastoreType(); final String dsName = disk.getDatastoreName(); - if (dsType.equals(Storage.StoragePoolType.VMFS.toString())) { - List pools = primaryDataStoreDao.listPoolsByCluster(cluster.getId()); - pools.addAll(primaryDataStoreDao.listByDataCenterId(zone.getId())); + if (dsType != null) { + List pools = primaryDataStoreDao.listPoolByHostPath(dsHost, dsPath); for (StoragePool pool : pools) { - if (pool.getPoolType() != Storage.StoragePoolType.VMFS) { - continue; - } - if (pool.getPath().endsWith(dsName)) { + if (pool.getDataCenterId() == zone.getId() && + (pool.getClusterId() == null || pool.getClusterId().equals(cluster.getId()))) { storagePool = pool; break; } } } else { - List pools = primaryDataStoreDao.listPoolByHostPath(dsHost, dsPath); + List pools = primaryDataStoreDao.listPoolsByCluster(cluster.getId()); + pools.addAll(primaryDataStoreDao.listByDataCenterId(zone.getId())); for (StoragePool pool : pools) { - if (pool.getDataCenterId() == zone.getId() && - (pool.getClusterId() == null || pool.getClusterId().equals(cluster.getId()))) { + if (pool.getPath().endsWith(dsName)) { storagePool = pool; break; }