доработка остановки сервера, добавлен проход запроса активности сервера, перед созданием файла interrupt

This commit is contained in:
2024-03-24 01:54:52 +03:00
parent 40feda7c5e
commit 784bca869d
10 changed files with 106 additions and 65 deletions

12
.idea/workspace.xml generated
View File

@@ -7,16 +7,14 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StopTestingServer.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PingTestingServer.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/TestingServerSSHPass.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/Stop25.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Constants.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/GlobalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/GlobalProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingBar.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StopTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShutdownTestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/TestingServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/TestingServerSSHPass.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -35,7 +35,7 @@
"PerformanceAnalyzerPath": "", "PerformanceAnalyzerPath": "",
"ComponentsBackUpsCount": 10, "ComponentsBackUpsCount": 10,
"TestingKernels": 16, "TestingKernels": 16,
"AutoCheckTesting": true, "AutoCheckTesting": false,
"CheckTestingIntervalSeconds": 10, "CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": false, "EmailOnTestingProgress": false,
"eraseTestingWorkspaces": true "eraseTestingWorkspaces": true

View File

@@ -277,6 +277,10 @@ public abstract class RepositoryServer<D extends Database> {
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА"); Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
System.exit(0); System.exit(0);
break; break;
case Ping:
Print("Проверка активности сервера");
Ping();
break;
default: default:
Session(); Session();
break; break;
@@ -362,4 +366,7 @@ public abstract class RepositoryServer<D extends Database> {
} }
public void afterDeleteAction(DBObject object) throws Exception { public void afterDeleteAction(DBObject object) throws Exception {
} }
public void Ping(){
response = new ServerExchangeUnit_2021(ServerCode.OK);
}
} }

View File

@@ -81,5 +81,7 @@ public enum ServerCode {
ReplaceTestsCodes, ReplaceTestsCodes,
GetDVMPackagesJson, GetDVMPackagesJson,
GetSapforPackagesJson, GetSapforPackagesJson,
GetFirstsActiveDVMPackages; GetFirstsActiveDVMPackages,
Ping
;
} }

View File

@@ -6,7 +6,6 @@ import Common.UI.Menus_2023.VisualiserMenuBar;
import Common.UI.Themes.VisualiserFonts; import Common.UI.Themes.VisualiserFonts;
import Common.UI.UI; import Common.UI.UI;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.TestingServer;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*; import javax.swing.*;
@@ -85,7 +84,8 @@ public class TestingBar extends VisualiserMenuBar {
} }
}); });
addSeparator(); addSeparator();
addPasses(PassCode_2021.StopTestingServer); addLabel(" управление сервером ");
addPasses(PassCode_2021.ShutdownTestingServer);
} }
public void ShowAutoCheckTesting() { public void ShowAutoCheckTesting() {
autorefreshButton.setIcon(Utils.getIcon(Global.properties.AutoCheckTesting ? "/icons/Pick.png" : "/icons/NotPick.png")); autorefreshButton.setIcon(Utils.getIcon(Global.properties.AutoCheckTesting ? "/icons/Pick.png" : "/icons/NotPick.png"));

View File

@@ -0,0 +1,21 @@
package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PingTestingServer extends TestingSystemPass {
boolean flag;
@Override
protected boolean canStart(Object... args) throws Exception {
flag=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;
}
}

View File

@@ -0,0 +1,21 @@
package Visual_DVM_2021.Passes.All;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.SSH.TestingServerSSHPass;
public class ShutdownTestingServer extends TestingServerSSHPass {
@Override
public String getIconPath() {
return "/icons/Stop25.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
return passes.get(PassCode_2021.PingTestingServer).Do();
}
@Override
protected void ServerAction() throws Exception {
Shutdown();
}
}

View File

@@ -1,52 +0,0 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current;
import Common.UI.UI;
import Common.Utils.Utils;
import GlobalData.RemoteFile.RemoteFile;
import Visual_DVM_2021.Passes.SSH.TestingServerSSHPass;
import com.jcraft.jsch.ChannelSftp;
import com.sun.corba.se.spi.orbutil.threadpool.Work;
import java.util.Date;
import java.util.Vector;
public class StopTestingServer extends TestingServerSSHPass {
@Override
public String getIconPath() {
return "/icons/Stop25.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected void ServerAction() throws Exception {
RemoteFile Home = new RemoteFile(user.connection.sftpChannel.getHome(), true);
RemoteFile Workspace = new RemoteFile(Home, Constants.testingSystemHomeName);
//--
RemoteFile INTERRUPT = new RemoteFile(Workspace, Constants.INTERRUPT);
RemoteFile ABORTED = new RemoteFile(Workspace, Constants.ABORTED);
//--
System.out.println("Home="+Utils.Brackets(Home.full_name));
System.out.println("Workspace="+Utils.Brackets(Workspace.full_name));
ShowMessage1("Создание файла INTERRUPT..");
user.connection.writeToFile("+", INTERRUPT);
ShowMessage1("Ожидание остановки сервера тестирования");
do {
Utils.sleep(1000);
ShowMessage2("Проверка признака остановки..");
} while (!user.connection.Exists(ABORTED));
//--
RemoteFile AbortLog = new RemoteFile(Workspace, Constants.ABORTED+
"_by_"+
Current.getAccount().email+
"_"+
new Date().toString()
);
user.connection.writeToFile("+", AbortLog);
user.connection.sftpChannel.rename(ABORTED.full_name, AbortLog.full_name);
System.out.println("Done");
}
}

View File

@@ -323,13 +323,16 @@ public enum PassCode_2021 {
CompareSapforPackages, CompareSapforPackages,
CreateDVMPackageFromCurrentProject, CreateDVMPackageFromCurrentProject,
//-- //--
StopTestingServer PingTestingServer,
ShutdownTestingServer
; ;
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case Undefined: case Undefined:
return "?"; return "?";
case StopTestingServer: case PingTestingServer:
return "Проверить активность тестового сервера";
case ShutdownTestingServer:
return "Остановить серверный компонент тестирования"; return "Остановить серверный компонент тестирования";
case CreateDVMPackageFromCurrentProject: case CreateDVMPackageFromCurrentProject:
return "Тестировать текущий проект"; return "Тестировать текущий проект";

View File

@@ -1,18 +1,59 @@
package Visual_DVM_2021.Passes.SSH; package Visual_DVM_2021.Passes.SSH;
import Common.Constants;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.Utils.Utils;
import GlobalData.Machine.Machine; import GlobalData.Machine.Machine;
import GlobalData.Machine.MachineType; import GlobalData.Machine.MachineType;
import GlobalData.RemoteFile.RemoteFile;
import GlobalData.User.User; import GlobalData.User.User;
import java.util.Date;
public class TestingServerSSHPass extends ConnectionPass { public class TestingServerSSHPass extends ConnectionPass {
protected RemoteFile userHome;
protected RemoteFile testingHome;
@Override @Override
protected boolean needsAnimation() { protected boolean needsAnimation() {
return true; return true;
} }
@Override @Override
public void Connect() throws Exception { public void Connect() throws Exception {
userHome =null;
testingHome =null;
//--
machine = new Machine("alex", Global.properties.ServerAddress,Global.properties.ServerUserSHHPort,MachineType.Server); machine = new Machine("alex", Global.properties.ServerAddress,Global.properties.ServerUserSHHPort,MachineType.Server);
user = new User(Global.properties.ServerUserName, "mprit_2011"); user = new User(Global.properties.ServerUserName, "mprit_2011");
super.Connect(); super.Connect();
//--
userHome = new RemoteFile(user.connection.sftpChannel.getHome(), true);
testingHome = new RemoteFile(userHome, Constants.testingSystemHomeName);
//-
System.out.println("userHome="+ Utils.Brackets(userHome.full_name));
System.out.println("testingHome="+Utils.Brackets(testingHome.full_name));
}
//--
protected void Shutdown() throws Exception{
//--
RemoteFile INTERRUPT = new RemoteFile(testingHome, Constants.INTERRUPT);
RemoteFile ABORTED = new RemoteFile(testingHome, Constants.ABORTED);
//--
ShowMessage1("Создание файла INTERRUPT..");
user.connection.writeToFile("+", INTERRUPT);
ShowMessage1("Ожидание остановки сервера тестирования");
do {
Utils.sleep(1000);
ShowMessage2("Проверка признака остановки..");
} while (!user.connection.Exists(ABORTED));
//--
ShowMessage2("");
ShowMessage1("Журнализация");
RemoteFile AbortLog = new RemoteFile(testingHome, Constants.ABORTED+
"_by_"+
Current.getAccount().email+
"_"+
new Date().toString()
);
user.connection.sftpChannel.rename(ABORTED.full_name, AbortLog.full_name);
System.out.println("Done");
} }
} }