Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -5795,7 +5795,8 @@ public Pair<UserVmVO, Map<VirtualMachineProfile.Param, Object>> startVirtualMach
}

// Set parameters
Map<VirtualMachineProfile.Param, Object> params = null;
Map<VirtualMachineProfile.Param, Object> params = new HashMap<>();
params.putAll(additionalParams);
if (vm.isUpdateParameters()) {
_vmDao.loadDetails(vm);

Expand All @@ -5809,18 +5810,19 @@ public Pair<UserVmVO, Map<VirtualMachineProfile.Param, Object>> 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());
Expand Down Expand Up @@ -5888,20 +5890,18 @@ protected String getCurrentVmPasswordOrDefineNewPassword(String newPassword, Use
return password;
}

private Map<VirtualMachineProfile.Param, Object> createParameterInParameterMap(Map<VirtualMachineProfile.Param, Object> params, Map<VirtualMachineProfile.Param, Object> 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<VirtualMachineProfile.Param, Object> createParameterInParameterMap(
Map<VirtualMachineProfile.Param, Object> 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;
}
Expand Down
Loading