From 7a41e2752625a67e5d9a85b017792aabc8218ee0 Mon Sep 17 00:00:00 2001 From: Chief <20902920+kioie@users.noreply.github.com> Date: Tue, 7 Jul 2020 10:18:02 +0300 Subject: [PATCH] server: Limit API from trying to start a VM that is already running (#3979) Fixes #2736 --- server/src/main/java/com/cloud/vm/UserVmManagerImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 4ef4d1e42e7..ce9a41a8470 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -4632,6 +4632,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir throw new InvalidParameterValueException("unable to find a virtual machine with id " + vmId); } + if (vm.getState()== State.Running) { + throw new InvalidParameterValueException("The virtual machine "+ vm.getUuid()+ " ("+ vm.getDisplayName()+ ") is already running"); + } + _accountMgr.checkAccess(callerAccount, null, true, vm); Account owner = _accountDao.findById(vm.getAccountId());