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

удаление временных файлов при запросе версии
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

12
.idea/workspace.xml generated
View File

@@ -7,14 +7,14 @@
</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/PublishTestingServer.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PingComponentsServer.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishComponentsServer.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShutdownComponentsServer.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/TestingSystem/Common/TestingBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShutdownTestingServer.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/All/StartTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/RemoteSingleCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/RemoteSingleCommand.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/RepositoryServerSSHPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.form" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />

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

@@ -18,6 +18,7 @@ public class RemoteSingleCommand extends CurrentConnectionPass<String> {
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:

View File

@@ -92,6 +92,14 @@
<text value=" "/>
</properties>
</component>
<component id="a77b0" class="javax.swing.JLabel" binding="adminLabel">
<constraints/>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<foreground color="-16777216"/>
<text value="управление сервером "/>
</properties>
</component>
</children>
</toolbar>
<grid id="3838e" binding="accountPanel" layout-manager="BorderLayout" hgap="0" vgap="0">

View File

@@ -121,6 +121,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
private JTextField BugReportsCommentFilter;
public JSplitPane SC67;
private JPanel workspacesPanel;
private JLabel adminLabel;
private Viewer BugReportSettings;
public void LockMyOnly() {
if (!BugReportsMyOnlyFilter.isSelected()) {
@@ -271,6 +272,11 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
BugReportInterface.filterOpenedOnly = BugReportsOpenedOnly.isSelected();
ShowBugReports();
});
//-
accountTools.addSeparator();
accountTools.add(Pass_2021.passes.get(PassCode_2021.StartComponentsServer).createButton());
accountTools.add(Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).createButton());
accountTools.add(Pass_2021.passes.get(PassCode_2021.PublishComponentsServer).createButton());
}
//-------------------------------------------
DescriptionTabs descriptionTabs = new DescriptionTabs();
@@ -375,10 +381,15 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartComponentsServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.PublishComponentsServer).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(false);
UI.testingBar.showServerAdminLabel(false);
adminLabel.setVisible(false);
}
private void setDeveloperRights() {
UnlockMyOnly();
@@ -390,10 +401,15 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartComponentsServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.PublishComponentsServer).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(false);
UI.testingBar.showServerAdminLabel(false);
adminLabel.setVisible(false);
}
@Override
public void setAdminRights() {
@@ -405,11 +421,17 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(true);
//
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.StartComponentsServer).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.PublishComponentsServer).setControlsVisible(true);
//--
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(true);
//--
UI.testingBar.showServerAdminLabel(true);
adminLabel.setVisible(true);
}
@Override
public void ShowAccount() {