From 9681a28c7fdf4be8679048c5951476294a6438e8 Mon Sep 17 00:00:00 2001 From: Rakesh Date: Thu, 20 Aug 2020 10:43:49 +0200 Subject: [PATCH] api: Display hypervisor type for VM snapshot (#4275) The "hypervisor" field in listvmsnapshot response will be used in primate to enable/disable creating snapshot from vm snapshot functionality. Creating snpashot from vm snapshot will be enabled only if hypervisor is KVM --- .../cloudstack/api/response/VMSnapshotResponse.java | 13 +++++++++++++ .../main/java/com/cloud/api/ApiResponseHelper.java | 1 + 2 files changed, 14 insertions(+) diff --git a/api/src/main/java/org/apache/cloudstack/api/response/VMSnapshotResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/VMSnapshotResponse.java index 1248c631778..f5d7dbd76b9 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/VMSnapshotResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/VMSnapshotResponse.java @@ -21,6 +21,7 @@ import java.util.Date; import java.util.LinkedHashSet; import java.util.Set; +import com.cloud.hypervisor.Hypervisor; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.BaseResponseWithTagInformation; import org.apache.cloudstack.api.EntityReference; @@ -100,6 +101,10 @@ public class VMSnapshotResponse extends BaseResponseWithTagInformation implement @Param(description = "the domain associated with the disk volume") private String domainName; + @SerializedName(ApiConstants.HYPERVISOR) + @Param(description = "the type of hypervisor on which snapshot is stored") + private Hypervisor.HypervisorType hypervisor; + public VMSnapshotResponse() { tags = new LinkedHashSet(); } @@ -236,4 +241,12 @@ public class VMSnapshotResponse extends BaseResponseWithTagInformation implement public void setTags(Set tags) { this.tags = tags; } + + public Hypervisor.HypervisorType getHypervisor() { + return hypervisor; + } + + public void setHypervisor(Hypervisor.HypervisorType hypervisor) { + this.hypervisor = hypervisor; + } } diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 9a00c674225..19ecaac4659 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -620,6 +620,7 @@ public class ApiResponseHelper implements ResponseGenerator { UserVm vm = ApiDBUtils.findUserVmById(vmSnapshot.getVmId()); if (vm != null) { vmSnapshotResponse.setVirtualMachineid(vm.getUuid()); + vmSnapshotResponse.setHypervisor(vm.getHypervisorType()); DataCenterVO datacenter = ApiDBUtils.findZoneById(vm.getDataCenterId()); if (datacenter != null) { vmSnapshotResponse.setZoneId(datacenter.getUuid());