This commit is contained in:
2024-03-24 02:49:32 +03:00
parent 784bca869d
commit e83ecac005
9 changed files with 119 additions and 43 deletions

8
.idea/workspace.xml generated
View File

@@ -7,14 +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/PingTestingServer.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTestingServer.java" 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$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.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/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/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/All/PingTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PingTestingServer.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/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" /> <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" />
<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> </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

@@ -62,7 +62,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html //http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override @Override
public void GetVersionInfo() { public void GetVersionInfo() {
version = 1083; version = 1084;
String pattern = "MMM dd yyyy HH:mm:ss"; String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH); DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime()); date_text = df.format(getClassBuildTime());

View File

@@ -15,6 +15,7 @@ public class TestingBar extends VisualiserMenuBar {
public JButton autorefreshButton; public JButton autorefreshButton;
JSpinner sCheckTime; JSpinner sCheckTime;
JSpinner sKernels; JSpinner sKernels;
JLabel serverAdminLabel;
public TestingBar() { public TestingBar() {
//- //-
KernelsLabel = addLabel("", "/icons/Kernels.png"); KernelsLabel = addLabel("", "/icons/Kernels.png");
@@ -24,7 +25,7 @@ public class TestingBar extends VisualiserMenuBar {
sKernels.setPreferredSize(new Dimension(60, 26)); sKernels.setPreferredSize(new Dimension(60, 26));
sKernels.setMaximumSize(new Dimension(60, 26)); sKernels.setMaximumSize(new Dimension(60, 26));
sKernels.setModel(new SpinnerNumberModel(Global.properties.TestingKernels, 1, sKernels.setModel(new SpinnerNumberModel(Global.properties.TestingKernels, 1,
Utils.getTestingMaxKernels(), Utils.getTestingMaxKernels(),
1)); 1));
sKernels.setValue(Global.properties.TestingKernels); sKernels.setValue(Global.properties.TestingKernels);
UI.MakeSpinnerRapid(sKernels, e -> { UI.MakeSpinnerRapid(sKernels, e -> {
@@ -46,7 +47,6 @@ public class TestingBar extends VisualiserMenuBar {
setIcon(Utils.getIcon(Global.properties.EmailOnTestingProgress ? "/icons/Pick.png" : "/icons/NotPick.png")); setIcon(Utils.getIcon(Global.properties.EmailOnTestingProgress ? "/icons/Pick.png" : "/icons/NotPick.png"));
} }
}); });
//-- //--
add(autorefreshButton = new MenuBarButton() { add(autorefreshButton = new MenuBarButton() {
{ {
@@ -84,24 +84,13 @@ public class TestingBar extends VisualiserMenuBar {
} }
}); });
addSeparator(); addSeparator();
addLabel(" управление сервером "); serverAdminLabel = addLabel(" управление сервером ");
addPasses(PassCode_2021.ShutdownTestingServer); addPasses(PassCode_2021.StartTestingServer, 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"));
} }
/* public void showServerAdminLabel(boolean flag) {
public void ShowMachine(){ serverAdminLabel.setVisible(flag);
MachineButton.setText(Current.getMachine().getURL());
} }
public void ShowUser(){
UserButton.setText(Current.getUser().login);
}
public void ShowNoMachine(){
MachineButton.setText("?");
}
public void ShowNoUser(){
UserButton.setText("?");
}
*/
} }

View File

@@ -2,20 +2,36 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021; import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass; import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.net.ConnectException;
public class PingTestingServer extends TestingSystemPass { public class PingTestingServer extends TestingSystemPass {
boolean flag; boolean flag;
boolean silent;
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
flag=false; flag = false;
silent = args.length > 0 ? (boolean) args[0] : false;
return super.canStart(args); return super.canStart(args);
} }
@Override @Override
protected void ServerAction() throws Exception { protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.Ping)); Command(new ServerExchangeUnit_2021(ServerCode.Ping));
flag=true; flag = true;
} }
@Override @Override
protected boolean validate() { protected boolean validate() {
return flag; 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

@@ -7,15 +7,16 @@ public class ShutdownTestingServer extends TestingServerSSHPass {
return "/icons/Stop25.png"; return "/icons/Stop25.png";
} }
@Override @Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
return passes.get(PassCode_2021.PingTestingServer).Do(); if (passes.get(PassCode_2021.PingTestingServer).Do(true)){
return true;
}else {
Log.Writeln_("Сервер уже неактивен!");
return false;
}
} }
@Override @Override
protected void ServerAction() throws Exception { protected void ServerAction() throws Exception {
Shutdown(); ShutdownServer();
} }
} }

View File

@@ -0,0 +1,30 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current;
import GlobalData.RemoteFile.RemoteFile;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.SSH.TestingServerSSHPass;
import java.util.Date;
public class StartTestingServer extends TestingServerSSHPass {
@Override
public String getIconPath() {
return "/icons/GreenStart.png";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (passes.get(PassCode_2021.PingTestingServer).Do(true)) {
Log.Writeln_("Сервер уже активен!");
return false;
}
return true;
}
@Override
protected void ServerAction() throws Exception {
StartServer();
}
@Override
protected boolean validate() {
return passes.get(PassCode_2021.PingTestingServer).Do();
}
}

View File

@@ -324,7 +324,8 @@ public enum PassCode_2021 {
CreateDVMPackageFromCurrentProject, CreateDVMPackageFromCurrentProject,
//-- //--
PingTestingServer, PingTestingServer,
ShutdownTestingServer ShutdownTestingServer,
StartTestingServer,
; ;
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
@@ -332,8 +333,10 @@ public enum PassCode_2021 {
return "?"; return "?";
case PingTestingServer: case PingTestingServer:
return "Проверить активность тестового сервера"; return "Проверить активность тестового сервера";
case StartTestingServer:
return "Запустить тестовый сервер";
case ShutdownTestingServer: case ShutdownTestingServer:
return "Остановить серверный компонент тестирования"; return "Остановить тестовый сервер";
case CreateDVMPackageFromCurrentProject: case CreateDVMPackageFromCurrentProject:
return "Тестировать текущий проект"; return "Тестировать текущий проект";
case CompareSapforPackages: case CompareSapforPackages:

View File

@@ -10,6 +10,11 @@ import GlobalData.User.User;
import java.util.Date; import java.util.Date;
public class TestingServerSSHPass extends ConnectionPass { public class TestingServerSSHPass extends ConnectionPass {
@Override
public String getButtonText() {
return "";
}
//--
protected RemoteFile userHome; protected RemoteFile userHome;
protected RemoteFile testingHome; protected RemoteFile testingHome;
@Override @Override
@@ -18,23 +23,43 @@ public class TestingServerSSHPass extends ConnectionPass {
} }
@Override @Override
public void Connect() throws Exception { public void Connect() throws Exception {
userHome =null; userHome = null;
testingHome =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); userHome = new RemoteFile(user.connection.sftpChannel.getHome(), true);
testingHome = new RemoteFile(userHome, Constants.testingSystemHomeName); testingHome = new RemoteFile(userHome, Constants.testingSystemHomeName);
//- //-
System.out.println("userHome="+ Utils.Brackets(userHome.full_name)); System.out.println("userHome=" + Utils.Brackets(userHome.full_name));
System.out.println("testingHome="+Utils.Brackets(testingHome.full_name)); System.out.println("testingHome=" + Utils.Brackets(testingHome.full_name));
} }
//-- //--
protected void Shutdown() throws Exception{ protected void StartServer() throws Exception {
user.connection.performScript(testingHome, "nohup java -jar TestingSystem.jar &");
RemoteFile StartLog = new RemoteFile(testingHome, Constants.STARTED +
"_by_" +
Current.getAccount().email +
"_" +
new Date().toString()
);
user.connection.writeToFile("+", StartLog);
//-- //--
RemoteFile INTERRUPT = new RemoteFile(testingHome, Constants.INTERRUPT); RemoteFile[] files = new RemoteFile[]{
new RemoteFile(testingHome, Constants.script),
new RemoteFile(testingHome, Constants.out_file),
new RemoteFile(testingHome, Constants.err_file)
};
//-
for (RemoteFile file : files) {
user.connection.tryRM(file);
}
}
protected void ShutdownServer() throws Exception {
//--
RemoteFile INTERRUPT = new RemoteFile(testingHome, Constants.INTERRUPT);
RemoteFile ABORTED = new RemoteFile(testingHome, Constants.ABORTED); RemoteFile ABORTED = new RemoteFile(testingHome, Constants.ABORTED);
//-- //--
ShowMessage1("Создание файла INTERRUPT.."); ShowMessage1("Создание файла INTERRUPT..");
@@ -47,10 +72,10 @@ public class TestingServerSSHPass extends ConnectionPass {
//-- //--
ShowMessage2(""); ShowMessage2("");
ShowMessage1("Журнализация"); ShowMessage1("Журнализация");
RemoteFile AbortLog = new RemoteFile(testingHome, Constants.ABORTED+ RemoteFile AbortLog = new RemoteFile(testingHome, Constants.ABORTED +
"_by_"+ "_by_" +
Current.getAccount().email+ Current.getAccount().email +
"_"+ "_" +
new Date().toString() new Date().toString()
); );
user.connection.sftpChannel.rename(ABORTED.full_name, AbortLog.full_name); user.connection.sftpChannel.rename(ABORTED.full_name, AbortLog.full_name);

View File

@@ -374,6 +374,10 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(false);
UI.testingBar.showServerAdminLabel(false);
} }
private void setDeveloperRights() { private void setDeveloperRights() {
UnlockMyOnly(); UnlockMyOnly();
@@ -384,6 +388,10 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false); Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
//
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(false);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(false);
UI.testingBar.showServerAdminLabel(false);
} }
@Override @Override
public void setAdminRights() { public void setAdminRights() {
@@ -395,6 +403,10 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(true); Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).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.DeleteServerSapfor).setControlsVisible(true);
//--
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).setControlsVisible(true);
Pass_2021.passes.get(PassCode_2021.StartTestingServer).setControlsVisible(true);
UI.testingBar.showServerAdminLabel(true);
} }
@Override @Override
public void ShowAccount() { public void ShowAccount() {