функционал для управления сервером компонент и багов.

удаление временных файлов при запросе версии
This commit is contained in:
2024-03-29 01:39:14 +03:00
parent a5ffce7c08
commit 9687dc9f29
9 changed files with 208 additions and 9 deletions

View File

@@ -0,0 +1,38 @@
package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.net.ConnectException;
public class PingComponentsServer extends ComponentsRepositoryPass {
boolean flag;
boolean silent;
@Override
protected boolean canStart(Object... args) throws Exception {
flag = false;
silent = args.length > 0 ? (boolean) args[0] : false;
return super.canStart(args);
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.Ping));
flag = true;
}
@Override
protected boolean validate() {
return flag;
}
@Override
protected void CheckException(Exception ex) {
if (silent) {
Throwable cause = getCauseRec(ex);
if ((cause instanceof ConnectException) && cause.getMessage().contains("Connection refused: connect")) {
//так как это пинг, игнорируем.
System.out.println("Server inactive");
return;
}
}
super.CheckException(ex);
}
}

View File

@@ -0,0 +1,53 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.RemoteFile.RemoteFile;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.SSH.RepositoryServerSSHPass;
import java.io.File;
public class PublishComponentsServer extends RepositoryServerSSHPass {
@Override
protected String getServerFileName() {
return "VisualSapfor.jar";
}
@Override
protected String getServerHomeName() {
return "_sapfor_x64";
}
@Override
public String getIconPath() {
return "/icons/Publish.png";
}
//1. остановить сервер.
//2. заменить файл сервера на компонент визуализатора. переименовать его.
//3. запустить сервер.
@Override
protected void ServerAction() throws Exception {
if (passes.get(PassCode_2021.PingComponentsServer).Do(true))
ShutdownServer();
if (passes.get(PassCode_2021.PingComponentsServer).Do(true)) {
throw new PassException("Не удалось остановить сервер.");
}
File src = Global.visualiser.getFile();
//-
RemoteFile dst = new RemoteFile(serverHome, getServerFileName());
user.connection.tryRM(dst);
user.connection.putSingleFile(src, dst);
//-
StartServer();
System.out.println("userHome=" + Utils.Brackets(userHome.full_name));
System.out.println("testingHome=" + Utils.Brackets(serverHome.full_name));
}
@Override
protected boolean validate() {
if (!passes.get(PassCode_2021.PingComponentsServer).Do(true)) {
Log.Writeln_("Не удалось запустить сервер.");
}
return true;
}
}

View File

@@ -15,9 +15,10 @@ public class RemoteSingleCommand extends CurrentConnectionPass<String> {
@Override
protected void ServerAction() throws Exception {
RemoteFile file = new RemoteFile(user.connection.sftpChannel.getHome(), Utils.getDateName("out"));
user.connection.ShellCommand(command+" 1>"+Utils.DQuotes(file.full_name));
if (user.connection.Exists(file)){
user.connection.ShellCommand(command + " 1>" + Utils.DQuotes(file.full_name));
if (user.connection.Exists(file)) {
target = user.connection.readFromFile(file);
user.connection.sftpChannel.rm(file.full_name);
}
}
}

View File

@@ -0,0 +1,29 @@
package Visual_DVM_2021.Passes.All;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.SSH.RepositoryServerSSHPass;
public class ShutdownComponentsServer extends RepositoryServerSSHPass {
@Override
protected String getServerFileName() {
return "VisualSapfor.jar";
}
@Override
protected String getServerHomeName() { return "_sapfor_x64";
}
@Override
public String getIconPath() {
return "/icons/Stop25.png";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (passes.get(PassCode_2021.PingTestingServer).Do(true)){
return true;
}else {
Log.Writeln_("Сервер уже неактивен!");
return false;
}
}
@Override
protected void ServerAction() throws Exception {
ShutdownServer();
}
}

View File

@@ -0,0 +1,32 @@
package Visual_DVM_2021.Passes.All;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.SSH.RepositoryServerSSHPass;
public class StartComponentsServer extends RepositoryServerSSHPass {
@Override
public String getIconPath() {
return "/icons/GreenStart.png";
}
@Override
protected String getServerHomeName() {return "_sapfor_x64"; }
@Override
protected String getServerFileName() {
return "VisualSapfor.jar";
}
//--
@Override
protected boolean canStart(Object... args) throws Exception {
if (passes.get(PassCode_2021.PingComponentsServer).Do(true)) {
Log.Writeln_("Сервер уже активен!");
return false;
}
return true;
}
@Override
protected void ServerAction() throws Exception {
StartServer();
}
@Override
protected boolean validate() {
return passes.get(PassCode_2021.PingComponentsServer).Do();
}
}

View File

@@ -326,13 +326,29 @@ public enum PassCode_2021 {
PingTestingServer,
ShutdownTestingServer,
StartTestingServer,
SPF_InsertImplicitNone,
PublishTestingServer,
//---
PingComponentsServer,
ShutdownComponentsServer,
StartComponentsServer,
PublishComponentsServer,
//---
SPF_InsertImplicitNone,
;
public String getDescription() {
switch (this) {
case Undefined:
return "?";
//--
case PublishComponentsServer:
return "Опубликовать сервер компонент и отчётов об ошибках";
case PingComponentsServer:
return "Проверить активносто сервера компонент и отчётов об ошибках";
case StartComponentsServer:
return "Запустить сервер компонент и отчётов об ошибках";
case ShutdownComponentsServer:
return "Остановить сервер компонент и отчётов об ошибках";
//--
case PublishTestingServer:
return "Опубликовать тестовый сервер.";
case SPF_InsertImplicitNone: