From a2d2fa0edfe023a9847f05d985e0f753d2931e80 Mon Sep 17 00:00:00 2001 From: Darrin Husselmann Date: Tue, 25 Aug 2020 16:56:00 +0200 Subject: [PATCH 1/2] Fixed delayed power state update after vm shutdown --- .../src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index f05cbbcb26de..6144f58298c3 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1657,6 +1657,10 @@ protected boolean sendStop(final VirtualMachineGuru guru, final VirtualMachinePr return false; } + final UserVmVO userVm = _userVmDao.findById(vm.getId()); + userVm.setPowerState(PowerState.PowerOff); + _userVmDao.update(userVm.getId(), userVm); + guru.finalizeStop(profile, answer); } else { s_logger.error("Invalid answer received in response to a StopCommand for " + vm.getInstanceName()); From 6725b5688b7df023ce12d868863b7fff9f56f022 Mon Sep 17 00:00:00 2001 From: Darrin Husselmann Date: Wed, 26 Aug 2020 12:36:41 +0200 Subject: [PATCH 2/2] Moved db update to after guru finalize stop method call --- .../src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 6144f58298c3..1e7156d37ce5 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1657,11 +1657,10 @@ protected boolean sendStop(final VirtualMachineGuru guru, final VirtualMachinePr return false; } + guru.finalizeStop(profile, answer); final UserVmVO userVm = _userVmDao.findById(vm.getId()); userVm.setPowerState(PowerState.PowerOff); _userVmDao.update(userVm.getId(), userVm); - - guru.finalizeStop(profile, answer); } else { s_logger.error("Invalid answer received in response to a StopCommand for " + vm.getInstanceName()); return false;