Alon Bar-Lev has uploaded a new change for review.

Change subject: bootstrap: remove VdsInstallerSSH::getServerKeyFingerprint()
......................................................................

bootstrap: remove VdsInstallerSSH::getServerKeyFingerprint()

The VdsInstallerSSH class is an internal class of VdsInstaller.

VdsInstaller is going to be retired together with dependencies.

It was never meant to be used by other components.

Its usage was compromise of some [past] discussion.

This class is removed by the host bootstrap rewrite effort.

Hence the getServerKeyFingerprint() usage should be removed.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=875528
Change-Id: I48e02991635a5eb2c954da392cdd5f68219120b3
Signed-off-by: Alon Bar-Lev <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQuery.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQuery.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQueryTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQueryTest.java
M 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSH.java
M 
backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSHTest.java
6 files changed, 69 insertions(+), 98 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/9160/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQuery.java
index 9e025ef..baf2ae4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQuery.java
@@ -1,36 +1,52 @@
 package org.ovirt.engine.core.bll;
 
+import java.security.PublicKey;
+
 import org.apache.commons.lang.exception.ExceptionUtils;
+
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.queries.ServerParameters;
-import org.ovirt.engine.core.utils.hostinstall.VdsInstallerSSH;
+import org.ovirt.engine.core.utils.ssh.SSHClient;
+import org.ovirt.engine.core.engineencryptutils.OpenSSHUtils;
 
 /**
  * Query to fetch fingerprint of the given server name
  */
 public class GetServerSSHKeyFingerprintQuery<P extends ServerParameters> 
extends QueriesCommandBase<P> {
-    public VdsInstallerSSH wrapper;
 
     public GetServerSSHKeyFingerprintQuery(P parameters) {
         super(parameters);
     }
 
     public String getServerFingerprint(String serverName) {
-        wrapper = getVdsInstallerSSHInstance();
         String fingerPrint = null;
+        SSHClient client = null;
         try {
-            fingerPrint = 
wrapper.getServerKeyFingerprint(getParameters().getServer());
+            long timeout = Config.<Integer>GetValue(
+                ConfigValues.SSHInactivityTimoutSeconds
+            ) * 1000;
+            client = new SSHClient();
+            client.setHardTimeout(timeout);
+            client.setSoftTimeout(timeout);
+            client.setHost(serverName, 22);
+            client.connect();
+            PublicKey serverKey = client.getServerKey();
+            if (serverKey == null) {
+                throw new Exception("No server key");
+            }
+            fingerPrint = OpenSSHUtils.getKeyFingerprintString(serverKey);
         } catch (Throwable e) {
             log.errorFormat("Could not fetch fingerprint of host {0} with 
message: {1}",
-                    getParameters().getServer(),
-                    ExceptionUtils.getMessage(e));
+                serverName,
+                ExceptionUtils.getMessage(e)
+            );
         } finally {
-            wrapper.shutdown();
+            if (client != null) {
+                client.disconnect();
+            }
         }
         return fingerPrint;
-    }
-
-    public VdsInstallerSSH getVdsInstallerSSHInstance() {
-        return new VdsInstallerSSH();
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQuery.java
index 378ccb6..a794116 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQuery.java
@@ -3,11 +3,14 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.security.PublicKey;
 
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.QueriesCommandBase;
 import org.ovirt.engine.core.bll.utils.ClusterUtils;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerInfo;
 import org.ovirt.engine.core.common.businessentities.gluster.PeerStatus;
@@ -16,7 +19,8 @@
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
-import org.ovirt.engine.core.utils.hostinstall.VdsInstallerSSH;
+import org.ovirt.engine.core.utils.ssh.SSHClient;
+import org.ovirt.engine.core.engineencryptutils.OpenSSHUtils;
 
 /**
  * Query to get Added Gluster Servers with/without server ssh key fingerprint
@@ -46,7 +50,14 @@
 
         for (GlusterServerInfo server : glusterServers) {
             if (server.getStatus() == PeerStatus.CONNECTED && 
(!serverExists(serversList, server))) {
-                serversAndFingerprint.put(server.getHostnameOrIp(), 
getServerFingerprint(server.getHostnameOrIp()));
+                String fingerprint = null;
+                if (getParameters().isServerKeyFingerprintRequired()) {
+                    fingerprint = 
getServerFingerprint(server.getHostnameOrIp());
+                }
+                serversAndFingerprint.put(
+                    server.getHostnameOrIp(),
+                    fingerprint == null ? "" : fingerprint
+                );
             }
         }
         return serversAndFingerprint;
@@ -63,25 +74,34 @@
         return false;
     }
 
-    private String getServerFingerprint(String hostnameOrIp) {
-        String serverKeyFingerprint = "";
-        if (getParameters().isServerKeyFingerprintRequired()) {
-            VdsInstallerSSH sshWrapper = getVdsInstallerSSHInstance();
-            try {
-                serverKeyFingerprint = 
sshWrapper.getServerKeyFingerprint(hostnameOrIp);
-            } catch (Throwable e) {
-                log.errorFormat("Could not fetch fingerprint of host {0} with 
message: {1}",
-                        hostnameOrIp,
-                        ExceptionUtils.getMessage(e));
-            } finally {
-                sshWrapper.shutdown();
+    public String getServerFingerprint(String serverName) {
+        String fingerPrint = null;
+        SSHClient client = null;
+        try {
+            long timeout = Config.<Integer>GetValue(
+                ConfigValues.SSHInactivityTimoutSeconds
+            ) * 1000;
+            client = new SSHClient();
+            client.setHardTimeout(timeout);
+            client.setSoftTimeout(timeout);
+            client.setHost(serverName, 22);
+            client.connect();
+            PublicKey serverKey = client.getServerKey();
+            if (serverKey == null) {
+                throw new Exception("No server key");
+            }
+            fingerPrint = OpenSSHUtils.getKeyFingerprintString(serverKey);
+        } catch (Throwable e) {
+            log.errorFormat("Could not fetch fingerprint of host {0} with 
message: {1}",
+                serverName,
+                ExceptionUtils.getMessage(e)
+            );
+        } finally {
+            if (client != null) {
+                client.disconnect();
             }
         }
-        return serverKeyFingerprint;
-    }
-
-    public VdsInstallerSSH getVdsInstallerSSHInstance() {
-        return new VdsInstallerSSH();
+        return fingerPrint;
     }
 
     public ClusterUtils getClusterUtils() {
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQueryTest.java
index 9106786..963a9c9 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetServerSSHKeyFingerprintQueryTest.java
@@ -3,36 +3,21 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.doReturn;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.ovirt.engine.core.common.queries.ServerParameters;
-import org.ovirt.engine.core.utils.hostinstall.VdsInstallerSSH;
 
 public class GetServerSSHKeyFingerprintQueryTest extends 
AbstractQueryTest<ServerParameters, 
GetServerSSHKeyFingerprintQuery<ServerParameters>> {
 
     String serverName = "localhost";
     String fingerPrint = "b5:ad:16:19:06:9f:b3:41:69:eb:1c:42:1d:12:b5:31";
-    VdsInstallerSSH vdsInstallerMock;
-
-    @Before
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        setupMock();
-    }
-
-    private void setupMock() throws Exception {
-        vdsInstallerMock = mock(VdsInstallerSSH.class);
-        
when(getQuery().getVdsInstallerSSHInstance()).thenReturn(vdsInstallerMock);
-        
when(vdsInstallerMock.getServerKeyFingerprint(serverName)).thenReturn(fingerPrint);
-    }
 
     @Test
     public void testExecuteQueryCommnad() {
         when(getQueryParameters().getServer()).thenReturn(serverName);
+        
doReturn(fingerPrint).when(getQuery()).getServerFingerprint(serverName);
         getQuery().executeQueryCommand();
         String serverFingerprint = (String) 
getQuery().getQueryReturnValue().getReturnValue();
 
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQueryTest.java
index c2b6b79..a499787 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetAddedGlusterServersQueryTest.java
@@ -28,7 +28,6 @@
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.VdsDAO;
-import org.ovirt.engine.core.utils.hostinstall.VdsInstallerSSH;
 
 public class GetAddedGlusterServersQueryTest extends 
AbstractQueryTest<AddedGlusterServersParameters, 
GetAddedGlusterServersQuery<AddedGlusterServersParameters>> {
 
@@ -41,7 +40,6 @@
     private Guid server_id3 = new Guid("7a797a38-cb32-4399-b6fb-21c79c03a1d6");
     private String serverKeyFingerprint = 
"b5:ad:16:19:06:9f:b3:41:69:eb:1c:42:1d:12:b5:31";
     VDSBrokerFrontend vdsBrokerFrontend;
-    VdsInstallerSSH vdsInstallerSSHMock;
     VdsDAO vdsDaoMock;
 
     ClusterUtils clusterUtils;
@@ -96,7 +94,6 @@
         vdsBrokerFrontend = mock(VDSBrokerFrontend.class);
         clusterUtils = mock(ClusterUtils.class);
         vdsDaoMock = mock(VdsDAO.class);
-        vdsInstallerSSHMock = mock(VdsInstallerSSH.class);
 
         doReturn(vdsBrokerFrontend).when(getQuery()).getBackendInstance();
         doReturn(clusterUtils).when(getQuery()).getClusterUtils();
@@ -111,8 +108,7 @@
         doReturn(vdsDaoMock).when(clusterUtils).getVdsDao();
         doReturn(serversList).when(vdsDaoMock).getAllForVdsGroup(CLUSTER_ID);
 
-        
doReturn(vdsInstallerSSHMock).when(getQuery()).getVdsInstallerSSHInstance();
-        
doReturn(serverKeyFingerprint).when(vdsInstallerSSHMock).getServerKeyFingerprint("test_server3");
+        
doReturn(serverKeyFingerprint).when(getQuery()).getServerFingerprint("test_server3");
     }
 
     private VDSReturnValue getVDSReturnValue() {
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSH.java
 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSH.java
index bd015eb..0bd08f8 100644
--- 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSH.java
+++ 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSH.java
@@ -604,31 +604,4 @@
 
         return fingerprint;
     }
-
-    public String getServerKeyFingerprint(
-        String server,
-        long timeout
-    ) throws Exception {
-        String fingerprint = null;
-
-        _openSession(server, timeout, timeout);
-
-        PublicKey serverKey = this.client.getServerKey();
-        if (serverKey != null) {
-            fingerprint = OpenSSHUtils.getKeyFingerprintString(serverKey);
-        }
-
-        return fingerprint;
-    }
-
-    public String getServerKeyFingerprint(
-        String server
-    ) throws Exception {
-        return getServerKeyFingerprint(
-            server,
-            Config.<Integer>GetValue(
-                ConfigValues.SSHInactivityTimoutSeconds
-            ) * 1000
-        );
-    }
 }
diff --git 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSHTest.java
 
b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSHTest.java
index a976cc0..d1249bd 100644
--- 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSHTest.java
+++ 
b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/hostinstall/VdsInstallerSSHTest.java
@@ -5,7 +5,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeNotNull;
 import static org.junit.Assume.assumeTrue;
 
 import java.io.ByteArrayInputStream;
@@ -24,7 +23,6 @@
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.config.IConfigUtilsInterface;
-import org.ovirt.engine.core.engineencryptutils.OpenSSHUtils;
 import org.ovirt.engine.core.utils.ssh.SSHD;
 
 /*
@@ -517,23 +515,6 @@
 
             vssh.shutdown();
             vssh = null;
-        }
-    }
-
-    @Test
-    public void testFingerprint() throws Exception {
-        assumeNotNull(sshd);
-        VdsInstallerSSH vdsi = new VdsInstallerSSH();
-        vdsi.setPort(port);
-        try {
-            assertEquals(
-                OpenSSHUtils.getKeyFingerprintString(sshd.getKey()),
-                vdsi.getServerKeyFingerprint(host, 5000)
-            );
-        }
-        finally {
-            vdsi.shutdown();
-            vdsi = null;
         }
     }
 }


--
To view, visit http://gerrit.ovirt.org/9160
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48e02991635a5eb2c954da392cdd5f68219120b3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to