From ffa892891f758f3c55ce8316d9ee6a75aa30b6ed Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 9 Mar 2026 12:48:36 +0100 Subject: [PATCH 1/2] make sure virtual machine params exist --- server/src/main/java/com/cloud/vm/UserVmManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index f36c851e5bb3..9f6e21b3a57a 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -5795,7 +5795,7 @@ public Pair> startVirtualMach } // Set parameters - Map params = null; + Map params = new HashMap<>(); if (vm.isUpdateParameters()) { _vmDao.loadDetails(vm); From 242b743c34128009233e54d43f1e82dc3720717d Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 9 Mar 2026 13:32:03 +0100 Subject: [PATCH 2/2] cleanup --- .../java/com/cloud/vm/UserVmManagerImpl.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 9f6e21b3a57a..ea2d00e85fa0 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -5796,6 +5796,7 @@ public Pair> startVirtualMach // Set parameters Map params = new HashMap<>(); + params.putAll(additionalParams); if (vm.isUpdateParameters()) { _vmDao.loadDetails(vm); @@ -5809,18 +5810,19 @@ public Pair> startVirtualMach // use it to encrypt & save the vm password encryptAndStorePassword(vm, password); - params = createParameterInParameterMap(params, additionalParams, VirtualMachineProfile.Param.VmPassword, password); + // overwrite VmPassword + params = createParameterInParameterMap(params, VirtualMachineProfile.Param.VmPassword, password); } if(additionalParams.containsKey(VirtualMachineProfile.Param.BootIntoSetup)) { if (! HypervisorType.VMware.equals(vm.getHypervisorType())) { throw new InvalidParameterValueException(ApiConstants.BOOT_INTO_SETUP + " makes no sense for " + vm.getHypervisorType()); } + + //overwrite BootIntoSetup Object paramValue = additionalParams.get(VirtualMachineProfile.Param.BootIntoSetup); - if (logger.isTraceEnabled()) { - logger.trace("It was specified whether to enter setup mode: " + paramValue.toString()); - } - params = createParameterInParameterMap(params, additionalParams, VirtualMachineProfile.Param.BootIntoSetup, paramValue); + logger.trace("It was specified whether to enter setup mode: {}", paramValue.toString()); + params = createParameterInParameterMap(params, VirtualMachineProfile.Param.BootIntoSetup, paramValue); } VirtualMachineEntity vmEntity = _orchSrvc.getVirtualMachine(vm.getUuid()); @@ -5888,20 +5890,18 @@ protected String getCurrentVmPasswordOrDefineNewPassword(String newPassword, Use return password; } - private Map createParameterInParameterMap(Map params, Map parameterMap, VirtualMachineProfile.Param parameter, + /** + * Create or overwrite a parameter in the list + * @param params the list of parameters + * @param parameter the parameter to creat/overwrite + * @param parameterValue the value to give to the parameter + * @return the resulting updated list of parameters + */ + private Map createParameterInParameterMap( + Map params, + VirtualMachineProfile.Param parameter, Object parameterValue) { - if (logger.isTraceEnabled()) { - logger.trace(String.format("createParameterInParameterMap(%s, %s)", parameter, parameterValue)); - } - if (params == null) { - if (logger.isTraceEnabled()) { - logger.trace("creating new Parameter map"); - } - params = new HashMap<>(); - if (parameterMap != null) { - params.putAll(parameterMap); - } - } + logger.trace("createParameterInParameterMap({}, {})", parameter, parameterValue); params.put(parameter, parameterValue); return params; }