From 8992e1883647aea65a22f69d7f514d0a7fab389b Mon Sep 17 00:00:00 2001 From: Harikrishna Patnala Date: Wed, 11 Jun 2014 16:33:00 +0530 Subject: [PATCH] CLOUDSTACK-6869: SSH Public key content is overridden by template's meta data when you create a instance (cherry picked from commit 522208dec2f81997c8b14d820c4f3f1be958ee44) Signed-off-by: Rohit Yadav Conflicts: server/src/com/cloud/template/TemplateManagerImpl.java server/src/com/cloud/vm/UserVmManagerImpl.java --- .../src/com/cloud/template/TemplateManagerImpl.java | 3 ++- server/src/com/cloud/vm/UserVmManagerImpl.java | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 7727061ad39..3dd91f45434 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -1700,7 +1700,8 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, } } } - if(cmd.getDetails() != null) { + if (cmd.getDetails() != null) { + details.remove("Encrypted.Password"); // new password will be generated during vm deployment from password enabled template details.putAll(cmd.getDetails()); } if( !details.isEmpty()) { diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index a40af6e58e3..e6390a071c8 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2989,6 +2989,12 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir hostName, diskOfferingId); vm.setUuid(uuidName); vm.setDynamicallyScalable(template.isDynamicallyScalable()); + + Map details = template.getDetails(); + if (details != null && !details.isEmpty()) { + vm.details.putAll(details); + } + if (sshPublicKey != null) { vm.setDetail("SSH.PublicKey", sshPublicKey); } @@ -3038,11 +3044,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } } - Map details = template.getDetails(); - if ( details != null && !details.isEmpty() ) { - vm.details.putAll(details); - } - _vmDao.persist(vm); if (customParameters != null && customParameters.size() > 0) { for (String key : customParameters.keySet()) {