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

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

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() {