This is an automated email from the ASF dual-hosted git repository.

DaanHoogland pushed a commit to branch UnmanagedAndSnapshotFixes
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/UnmanagedAndSnapshotFixes by 
this push:
     new 78716fb15c0 merge conflict fixes
78716fb15c0 is described below

commit 78716fb15c09e41fc179f87b41beabcb7a332d7d
Author: Daan Hoogland <[email protected]>
AuthorDate: Mon Apr 20 10:22:50 2026 +0200

    merge conflict fixes
---
 .../main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java |  7 +++++++
 .../java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java | 10 ++--------
 .../org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java  |  2 +-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git 
a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java 
b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
index bfec3247a7b..baa74128ce3 100644
--- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@ -764,6 +764,13 @@ public class VMSnapshotManagerImpl extends 
MutualExclusiveIdsManagerBase impleme
                             "In order to revert to a Snapshot without memory 
you need to first stop the Instance.");
         }
 
+        if (userVm.getState() == VirtualMachine.State.Running && 
vmSnapshotVo.getType() == VMSnapshot.Type.Disk) {
+            throw new InvalidParameterValueException(
+                    "Reverting to the Instance Snapshot is not allowed for 
running Instances as this would result in an Instance state change. " +
+                            "For running Instances only Snapshots with memory 
can be reverted. " +
+                            "In order to revert to a Snapshot without memory 
you need to first stop the Instance.");
+        }
+
         if (userVm.getState() == VirtualMachine.State.Stopped && 
vmSnapshotVo.getType() == VMSnapshot.Type.DiskAndMemory) {
             throw new InvalidParameterValueException(
                     "Reverting to the Instance Snapshot is not allowed for 
stopped Instances when the Snapshot contains memory as this would result in an 
Instance state change. " +
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 56998325ba7..846eab599fd 100644
--- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
@@ -1325,10 +1325,7 @@ public class UnmanagedVMsManagerImpl implements 
UnmanagedVMsManager {
         List<String> managedVms = new ArrayList<>(additionalNameFilters);
         managedVms.addAll(getHostsManagedVms(hosts));
 
-        List<String> resourceLimitHostTags = 
resourceLimitService.getResourceLimitHostTags(serviceOffering, template);
-        try (CheckedReservation vmReservation = new CheckedReservation(owner, 
Resource.ResourceType.user_vm, resourceLimitHostTags, 1L, reservationDao, 
resourceLimitService);
-             CheckedReservation cpuReservation = new CheckedReservation(owner, 
Resource.ResourceType.cpu, resourceLimitHostTags, 
Long.valueOf(serviceOffering.getCpu()), reservationDao, resourceLimitService);
-             CheckedReservation memReservation = new CheckedReservation(owner, 
Resource.ResourceType.memory, resourceLimitHostTags, 
Long.valueOf(serviceOffering.getRamSize()), reservationDao, 
resourceLimitService)) {
+        try {
 
             ActionEventUtils.onStartedActionEvent(userId, owner.getId(), 
EventTypes.EVENT_VM_IMPORT,
                     cmd.getEventDescription(), null, null, true, 0);
@@ -2673,10 +2670,7 @@ public class UnmanagedVMsManagerImpl implements 
UnmanagedVMsManager {
 
         UserVm userVm = null;
 
-        List<String> resourceLimitHostTags = 
resourceLimitService.getResourceLimitHostTags(serviceOffering, template);
-        try (CheckedReservation vmReservation = new CheckedReservation(owner, 
Resource.ResourceType.user_vm, resourceLimitHostTags, 1L, reservationDao, 
resourceLimitService);
-             CheckedReservation cpuReservation = new CheckedReservation(owner, 
Resource.ResourceType.cpu, resourceLimitHostTags, 
Long.valueOf(serviceOffering.getCpu()), reservationDao, resourceLimitService);
-             CheckedReservation memReservation = new CheckedReservation(owner, 
Resource.ResourceType.memory, resourceLimitHostTags, 
Long.valueOf(serviceOffering.getRamSize()), reservationDao, 
resourceLimitService)) {
+        try {
 
             if (ImportSource.EXTERNAL == importSource) {
                 String username = cmd.getUsername();
diff --git 
a/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
 
b/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
index 9655b797ae9..dad5ffe6f12 100644
--- 
a/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
+++ 
b/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
@@ -57,6 +57,7 @@ import 
org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.reservation.dao.ReservationDao;
 import org.apache.cloudstack.resourcelimit.Reserver;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
@@ -260,7 +261,6 @@ public class UnmanagedVMsManagerImplTest {
     ImportVMTaskVO importVMTaskVO;
     @Mock
     private VMInstanceDetailsDao vmInstanceDetailsDao;
-
     @Mock
     private ConfigKey<Boolean> configKeyMockParamsAllowed;
     @Mock

Reply via email to