package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.bll.context.EngineContext;
import org.ovirt.engine.core.bll.utils.EngineSSHClient;
import org.ovirt.engine.core.common.queries.ServerParameters;
/**
* Query to fetch fingerprint of the given server name
*/
public class GetServerSSHKeyFingerprintQuery<P extends ServerParameters> extends QueriesCommandBase<P> {
public GetServerSSHKeyFingerprintQuery(P parameters) {
super(parameters);
}
public GetServerSSHKeyFingerprintQuery(P parameters, EngineContext engineContext) {
super(parameters, engineContext);
}
public String getServerFingerprint(String serverName, Integer port) {
String fingerPrint = null;
try (final EngineSSHClient client = getEngineSSHClient()) {
client.setHost(serverName, port);
client.setUser("dummy");
client.connect();
fingerPrint = client.getHostFingerprint();
} catch (Throwable e) {
log.error("Could not fetch fingerprint of host '{}:{}': {}",
serverName,
port,
e.getMessage()
);
log.debug("Exception", e);
}
return fingerPrint;
}
@Override
protected void executeQueryCommand() {
getQueryReturnValue().setReturnValue(
getServerFingerprint(getParameters().getServer(), getParameters().getPort()));
}
protected EngineSSHClient getEngineSSHClient() {
return new EngineSSHClient();
}
}