diff --git a/engine/schema/src/main/java/com/cloud/vm/UserVmVO.java b/engine/schema/src/main/java/com/cloud/vm/UserVmVO.java index e62162e25960..465d00f0b82f 100644 --- a/engine/schema/src/main/java/com/cloud/vm/UserVmVO.java +++ b/engine/schema/src/main/java/com/cloud/vm/UserVmVO.java @@ -28,6 +28,7 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.uservm.UserVm; +import org.apache.commons.lang3.StringUtils; @Entity @Table(name = "user_vm") @@ -141,4 +142,8 @@ public void setUserVmType(String userVmType) { public String getName() { return instanceName; } + + public String getDisplayNameOrHostName() { + return StringUtils.isNotBlank(displayName) ? displayName : getHostName(); + } } diff --git a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java index 7a867620900f..03fdb542d2f0 100644 --- a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java @@ -127,7 +127,7 @@ public UserVmResponse newUserVmResponse(ResponseView view, String objectName, Us userVmResponse.setName(userVm.getName()); if (userVm.getDisplayName() != null) { - userVmResponse.setDisplayName(userVm.getDisplayName()); + userVmResponse.setDisplayName(userVm.getDisplayName()); } else { userVmResponse.setDisplayName(userVm.getName()); } diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 78745403601f..3034b56cd708 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -3130,6 +3130,11 @@ public UserVm rebootVirtualMachine(RebootVMCmd cmd) throws InsufficientCapacityE throw new InvalidParameterValueException("Unable to find a virtual machine with id " + vmId); } + if (vmInstance.getState() != State.Running) { + throw new InvalidParameterValueException(String.format("The VM %s (%s) is not running, unable to reboot it", + vmInstance.getUuid(), vmInstance.getDisplayNameOrHostName())); + } + _accountMgr.checkAccess(caller, null, true, vmInstance); checkIfHostOfVMIsInPrepareForMaintenanceState(vmInstance.getHostId(), vmId, "Reboot"); @@ -5119,8 +5124,9 @@ public Pair> startVirtualMach 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"); + if (vm.getState() == State.Running) { + throw new InvalidParameterValueException(String.format("The virtual machine %s (%s) is already running", + vm.getUuid(), vm.getDisplayNameOrHostName())); } _accountMgr.checkAccess(callerAccount, null, true, vm);