diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index bf9acb3bed5..6eb98d89558 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2804,10 +2804,11 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager //Set parameters Map params = null; + VMTemplateVO template = null; if (vm.isUpdateParameters()) { _vmDao.loadDetails(vm); // Check that the password was passed in and is valid - VMTemplateVO template = _templateDao.findByIdIncludingRemoved(vm.getTemplateId()); + template = _templateDao.findByIdIncludingRemoved(vm.getTemplateId()); String password = "saved_password"; if (template.getEnablePassword()) { @@ -2838,12 +2839,18 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager } vm = _itMgr.start(vm, params, callerUser, callerAccount, plan); + + Pair> vmParamPair = new Pair(vm, params); if (vm != null && vm.isUpdateParameters()) { - vm.setUpdateParameters(false); - _vmDao.update(vm.getId(), vm); + // this value is not being sent to the backend; need only for api display purposes + if (template.getEnablePassword()) { + vm.setPassword((String)vmParamPair.second().get(VirtualMachineProfile.Param.VmPassword)); + vm.setUpdateParameters(false); + _vmDao.update(vm.getId(), vm); + } } - return new Pair(vm, params); + return vmParamPair; } @Override