This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.20 by this push:
new 318a4f2b6ec server: set download volume format to qcow2 for KVM
volumes (#11198)
318a4f2b6ec is described below
commit 318a4f2b6ece664c6bee923fc2b10828190d7203
Author: Wei Zhou <[email protected]>
AuthorDate: Fri Sep 26 20:25:11 2025 +0200
server: set download volume format to qcow2 for KVM volumes (#11198)
---
.../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 2 +-
.../datastore/driver/CloudStackImageStoreDriverImpl.java | 11 ++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
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);
}