diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 4ea8d1e80fb..91d5cf81d6f 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -587,7 +587,7 @@ public class KVMStorageProcessor implements StorageProcessor { try { final String volumeName = UUID.randomUUID().toString(); - final String destVolumeName = volumeName + "." + destFormat.getFileExtension(); + final String destVolumeName = volumeName + "." + ImageFormat.QCOW2.getFileExtension(); final KVMPhysicalDisk volume = storagePoolMgr.getPhysicalDisk(primaryStore.getPoolType(), primaryStore.getUuid(), srcVolumePath); volume.setFormat(PhysicalDiskFormat.valueOf(srcFormat.toString())); diff --git a/plugins/storage/image/default/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java b/plugins/storage/image/default/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java index d9a12d382ba..179d68efea7 100644 --- a/plugins/storage/image/default/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java +++ b/plugins/storage/image/default/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java @@ -23,7 +23,9 @@ import java.util.UUID; import javax.inject.Inject; import com.cloud.agent.api.storage.DeleteEntityDownloadURLCommand; +import com.cloud.agent.api.to.DataObjectType; import com.cloud.host.dao.HostDao; +import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.Upload; import com.cloud.utils.StringUtils; @@ -72,7 +74,14 @@ public class CloudStackImageStoreDriverImpl extends NfsImageStoreDriverImpl { } if (format != null) { - objectNameInUrl = objectNameInUrl + "." + format.getFileExtension(); + if (dataObject.getTO() != null + && DataObjectType.VOLUME.equals(dataObject.getTO().getObjectType()) + && HypervisorType.KVM.equals(dataObject.getTO().getHypervisorType())) { + // Fix: The format of KVM volumes on image store is qcow2 + objectNameInUrl = objectNameInUrl + "." + ImageFormat.QCOW2.getFileExtension(); + } else { + objectNameInUrl = objectNameInUrl + "." + format.getFileExtension(); + } } else if (installPath.lastIndexOf(".") != -1) { objectNameInUrl = objectNameInUrl + "." + installPath.substring(installPath.lastIndexOf(".") + 1); }