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
