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