Статус теперь пытается реконнект сделать
Hedgehog_server_CI/ServerMonitorBot/pipeline/head This commit looks good Details
Hedgehog_server_CI/ServerMonitorBot/pipeline/pr-master This commit looks good Details

pull/39/head
L_DelOff 2023-12-17 17:20:12 +03:00
parent 21f4a71c63
commit 39c2d6e6fc
1 changed files with 24 additions and 9 deletions

View File

@ -11,9 +11,7 @@ import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import ru.ldeloff.servermonitorbot.config.SshConfig;
import ru.ldeloff.servermonitorbot.model.SshServer;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Slf4j
@Repository
@ -29,7 +27,7 @@ public class SshRepositoryImpl implements SshRepository {
this.sshServers = sshConfig.getServers();
}
private List<Session> sessions = new ArrayList<>();
private Set<Session> sessions = new HashSet<>();
@Override
public void connectToAllServer() {
@ -38,7 +36,6 @@ public class SshRepositoryImpl implements SshRepository {
Session session = connectToServer(sshServer);
sshServer.setSession(session);
log.info("Успешно подключён к " + sshServer.getHost());
sessions.add(session);
} catch (JSchException e) {
log.warn("Не удалось соединиться с " + sshServer.getHost() + ": " + e.getMessage());
}
@ -54,6 +51,7 @@ public class SshRepositoryImpl implements SshRepository {
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(TIMEOUT);
session.connect();
sessions.add(session);
return session;
}
@ -67,7 +65,7 @@ public class SshRepositoryImpl implements SshRepository {
@Override
public String getStatusSessions() {
StringBuilder text = new StringBuilder("Статус соединения: \n");
StringBuilder text = new StringBuilder("Статус соединения (может выполняться долго): \n");
sshServers.forEach(server -> {
text.append(server.getName())
.append(": ")
@ -84,10 +82,27 @@ public class SshRepositoryImpl implements SshRepository {
private String checkStatusServer(SshServer server) {
if (Objects.isNull(server.getSession())) {
try {
connectToServer(server);
return "OK";
} catch (JSchException e) {
log.warn("Не удалось соединиться с " + server.getHost() + ": " + e.getMessage());
return "нет соединения";
}
}
if (server.getSession().isConnected()) {
return "OK";
} else {
return server.getSession().isConnected() ? "OK" : "отключён";
try {
connectToServer(server);
return "OK";
} catch (JSchException e) {
log.warn("Не удалось соединиться с " + server.getHost() + ": " + e.getMessage());
return "потеряно соединение";
}
}
}
}