This is an automated email from the ASF dual-hosted git repository.

nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new b13930f  server: fix reset sshkey is broken in master/4.16 (#5390)
b13930f is described below

commit b13930f946727b298114a387b1dfb42d99a70929
Author: Wei Zhou <weiz...@apache.org>
AuthorDate: Wed Sep 8 02:59:06 2021 +0200

    server: fix reset sshkey is broken in master/4.16 (#5390)
    
    * server: fix reset sshkey is broken in master/4.16
    
    * Revert "server: fix reset sshkey is broken in master/4.16"
    
    This reverts commit db278cf412f5ba4de2787e9511de75fc861097df.
    
    * update #5390
    
    * server: fix another regression of #4819 and #5274
    
    * update #5390
---
 .../cloud/network/element/ConfigDriveNetworkElement.java    |  4 ----
 server/src/main/java/com/cloud/vm/UserVmManagerImpl.java    | 11 ++++-------
 .../src/test/java/com/cloud/vm/UserVmManagerImplTest.java   | 13 -------------
 3 files changed, 4 insertions(+), 24 deletions(-)

diff --git 
a/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java 
b/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
index 60e4dec..4f12325 100644
--- 
a/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
+++ 
b/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
@@ -254,10 +254,6 @@ public class ConfigDriveNetworkElement extends AdapterBase 
implements NetworkEle
 
         final boolean canHandle = canHandle(network.getTrafficType());
 
-        if (canHandle) {
-            storePasswordInVmDetails(vm);
-        }
-
         return canHandle;
     }
 
diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java 
b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index cac5bc9..2afc050 100644
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@ -856,7 +856,6 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             throw new InvalidParameterValueException("unable to find a virtual 
machine by id" + cmd.getId());
         }
 
-        _vmDao.loadDetails(userVm);
         VMTemplateVO template = 
_templateDao.findByIdIncludingRemoved(userVm.getTemplateId());
 
         // Do parameters input validation
@@ -886,16 +885,14 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             throw new CloudRuntimeException("Failed to reset SSH Key for the 
virtual machine ");
         }
 
-        removeEncryptedPasswordFromUserVmVoDetails(userVm);
+        removeEncryptedPasswordFromUserVmVoDetails(vmId);
 
+        _vmDao.loadDetails(userVm);
         return userVm;
     }
 
-    protected void removeEncryptedPasswordFromUserVmVoDetails(UserVmVO 
userVmVo) {
-        Map<String, String> details = userVmVo.getDetails();
-        details.remove(VmDetailConstants.ENCRYPTED_PASSWORD);
-        userVmVo.setDetails(details);
-        _vmDao.saveDetails(userVmVo);
+    protected void removeEncryptedPasswordFromUserVmVoDetails(long vmId) {
+        userVmDetailsDao.removeDetail(vmId, 
VmDetailConstants.ENCRYPTED_PASSWORD);
     }
 
     private boolean resetVMSSHKeyInternal(Long vmId, String sshPublicKey) 
throws ResourceUnavailableException, InsufficientCapacityException {
diff --git a/server/src/test/java/com/cloud/vm/UserVmManagerImplTest.java 
b/server/src/test/java/com/cloud/vm/UserVmManagerImplTest.java
index ae647f3..da59f07 100644
--- a/server/src/test/java/com/cloud/vm/UserVmManagerImplTest.java
+++ b/server/src/test/java/com/cloud/vm/UserVmManagerImplTest.java
@@ -558,17 +558,4 @@ public class UserVmManagerImplTest {
         Mockito.when(newRootDiskOffering.getName()).thenReturn("OfferingName");
         return newRootDiskOffering;
     }
-
-    @Test
-    public void validateRemoveEncryptedPasswordFromUserVmVoDetails(){
-        Map<String, String> detailsMock = Mockito.mock(HashMap.class);
-
-        Mockito.doReturn(detailsMock).when(userVmVoMock).getDetails();
-        Mockito.doNothing().when(userVmDao).saveDetails(userVmVoMock);
-        
userVmManagerImpl.removeEncryptedPasswordFromUserVmVoDetails(userVmVoMock);
-
-        Mockito.verify(detailsMock, 
Mockito.times(1)).remove(VmDetailConstants.ENCRYPTED_PASSWORD);
-        Mockito.verify(userVmVoMock, Mockito.times(1)).setDetails(detailsMock);
-        Mockito.verify(userVmDao, Mockito.times(1)).saveDetails(userVmVoMock);
-    }
 }

Reply via email to