Skip to content

Commit

Permalink
storage: allow VM snapshots without memory for KVM when global settin…
Browse files Browse the repository at this point in the history
…g allows (apache#8062)

This removes the conditional logic where comment notest to remove it
after PR apache#5297 is merged that is applicable for ACS 4.18+. Only when the
global setting is enabled and memory isn't selected, VM snapshot could
be allowed for VMs on KVM that have qemu-guest-agent running.

Signed-off-by: Rohit Yadav <[email protected]>
  • Loading branch information
rohityadavcloud authored Oct 11, 2023
1 parent 7b4cf1b commit 8350ce5
Showing 1 changed file with 0 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
import com.cloud.storage.GuestOSVO;
import com.cloud.storage.Snapshot;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.Storage;
import com.cloud.storage.VolumeApiService;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.SnapshotDao;
Expand Down Expand Up @@ -360,10 +359,6 @@ public StrategyPriority canHandle(VMSnapshot vmSnapshot) {

@Override
public StrategyPriority canHandle(Long vmId, Long rootPoolId, boolean snapshotMemory) {
//This check could be removed when PR #5297 is merged
if (vmHasNFSOrLocalVolumes(vmId)) {
return StrategyPriority.CANT_HANDLE;
}
if (SnapshotManager.VmStorageSnapshotKvm.value() && !snapshotMemory) {
UserVmVO vm = userVmDao.findById(vmId);
if (vm.getState() == VirtualMachine.State.Running) {
Expand Down Expand Up @@ -465,17 +460,4 @@ protected CreateSnapshotPayload setPayload(VolumeInfo vol, SnapshotVO snapshotCr
payload.setQuiescevm(false);
return payload;
}

private boolean vmHasNFSOrLocalVolumes(long vmId) {
List<VolumeObjectTO> volumeTOs = vmSnapshotHelper.getVolumeTOList(vmId);

for (VolumeObjectTO volumeTO : volumeTOs) {
Long poolId = volumeTO.getPoolId();
Storage.StoragePoolType poolType = vmSnapshotHelper.getStoragePoolType(poolId);
if (poolType == Storage.StoragePoolType.NetworkFilesystem || poolType == Storage.StoragePoolType.Filesystem) {
return true;
}
}
return false;
}
}

0 comments on commit 8350ce5

Please sign in to comment.