реализация остановки сервера тестирования по кнопке

This commit is contained in:
2024-03-23 23:28:02 +03:00
parent 9f1777431c
commit 40feda7c5e
10 changed files with 105 additions and 55 deletions

19
.idea/workspace.xml generated
View File

@@ -7,19 +7,16 @@
</component>
<component name="ChangeListManager">
<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/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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Database/DataSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/DataSet.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.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/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.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/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/DVM/DVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.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" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -2,7 +2,7 @@
"Mode": "Normal",
"ServerAddress": "alex-freenas.ddns.net",
"ServerUserName": "testuser",
"ServerUserSHHPort": 23,
"ServerUserSHHPort": 2000,
"ComponentsServerPort": 7995,
"TestingServerPort": 7998,
"SocketTimeout": 5000,
@@ -10,6 +10,10 @@
"SMTPHost": "smtp.mail.ru",
"SMTPPort": 465,
"MailSocketPort": 465,
"collapseCredentials": false,
"collapseFileGraphs": true,
"collapseFileMessages": true,
"collapseProjectTrees": true,
"BackupWorkspace": "_sapfor_x64_backups",
"BackupHour": 5,
"BackupMinute": 0,
@@ -34,8 +38,5 @@
"AutoCheckTesting": true,
"CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": false,
"collapseCredentials": false,
"collapseFileGraphs": true,
"collapseFileMessages": true,
"collapseProjectTrees": false
"eraseTestingWorkspaces": true
}

View File

@@ -8,6 +8,8 @@ import java.util.regex.Pattern;
public class Constants {
public static final int Nan = -1;
public static final int planner_version = 2;
//--
public static final String testingSystemHomeName = "_testing_system";
//SVN
public static final String REPOSITORY_AUTHENTICATION = "--username dvmhuser --password dvmh2013 --non-interactive";
public static final String DVM_REPOSITORY = "http://svn.dvm-system.org/svn/dvmhrepo/dvm";

View File

@@ -50,6 +50,16 @@ public class GlobalProperties extends Properties {
@Expose
public int MailSocketPort = 465;
//---
//СВОРАЧИВАНИЕ ОБЛАСТЕЙ----------------------
@Expose
public boolean collapseCredentials = false;
@Expose
public boolean collapseFileGraphs = false;
@Expose
public boolean collapseFileMessages = false;
@Expose
public boolean collapseProjectTrees = false;
//-------------------------------------------
@Expose
public String BackupWorkspace = "_sapfor_x64_backups";
@Expose
@@ -103,13 +113,7 @@ public class GlobalProperties extends Properties {
@Expose
public boolean EmailOnTestingProgress = false; //включено ли оповещение по email о результатах тестирования.
@Expose
public boolean collapseCredentials = false;
@Expose
public boolean collapseFileGraphs = false;
@Expose
public boolean collapseFileMessages = false;
@Expose
public boolean collapseProjectTrees = false;
public boolean eraseTestingWorkspaces = true; //удалять ли рабочее пространство пакетов тестирования после его завершения.
//-
@Override
public File getFile() {

View File

@@ -12,37 +12,11 @@ import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
import java.awt.*;
public class TestingBar extends VisualiserMenuBar {
// public MenuBarButton MachineButton;
// public MenuBarButton UserButton;
public JLabel KernelsLabel;
public JButton autorefreshButton;
JSpinner sCheckTime;
JSpinner sKernels;
public TestingBar() {
/*
add(MachineButton = new MenuBarButton() {
{
setIcon("/icons/Machine.png");
setFont(VisualiserFonts.TreePlain);
setToolTipText("Машина тестирования");
addActionListener(e -> {
UI.getMainWindow().FocusCredentials();
});
}
});
//--
add(UserButton = new MenuBarButton() {
{
setIcon("/icons/User.png");
setFont(VisualiserFonts.TreePlain);
setToolTipText("Учетная запись машины тестирования");
addActionListener(e -> {
UI.getMainWindow().FocusCredentials();
});
}
});
*/
//-
KernelsLabel = addLabel("", "/icons/Kernels.png");
KernelsLabel.setHorizontalTextPosition(JLabel.LEFT);
@@ -57,8 +31,6 @@ public class TestingBar extends VisualiserMenuBar {
UI.MakeSpinnerRapid(sKernels, e -> {
Global.properties.updateField("TestingKernels", sKernels.getValue());
});
addLabel(" ");
//--
add(new MenuBarButton() {
@@ -112,6 +84,8 @@ public class TestingBar extends VisualiserMenuBar {
setFont(Current.getTheme().Fonts.get(VisualiserFonts.TreeItalic));
}
});
addSeparator();
addPasses(PassCode_2021.StopTestingServer);
}
public void ShowAutoCheckTesting() {
autorefreshButton.setIcon(Utils.getIcon(Global.properties.AutoCheckTesting ? "/icons/Pick.png" : "/icons/NotPick.png"));

View File

@@ -242,12 +242,10 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
UnzipFolderPass unzipFolderPass = new UnzipFolderPass();
unzipFolderPass.Do(results_archive.getAbsolutePath(), packageLocalWorkspace.getAbsolutePath(), false);
}
//todo привязать это к настройкам, чтобы можно было включать/выключать удаление.
//получили результат. теперь уничтожаем папку пакета на целевой машине.
if (user.connection.Exists(packageRemoteWorkspace)) {
//---
if (Global.properties.eraseTestingWorkspaces && user.connection.Exists(packageRemoteWorkspace))
user.connection.RMDIR(packageRemoteWorkspace.full_name);
}
}
@Override
protected void AnalyseResults() throws Exception {
testingPackage.readJson();

View File

@@ -0,0 +1,52 @@
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

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

View File

@@ -0,0 +1,18 @@
package Visual_DVM_2021.Passes.SSH;
import Common.Current;
import Common.Global;
import GlobalData.Machine.Machine;
import GlobalData.Machine.MachineType;
import GlobalData.User.User;
public class TestingServerSSHPass extends ConnectionPass {
@Override
protected boolean needsAnimation() {
return true;
}
@Override
public void Connect() throws Exception {
machine = new Machine("alex", Global.properties.ServerAddress,Global.properties.ServerUserSHHPort,MachineType.Server);
user = new User(Global.properties.ServerUserName, "mprit_2011");
super.Connect();
}
}

BIN
src/icons/Stop25.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB