промежуточный. добавление кнопки публикации тестового сервера. она выполняет остановку сервера, замену его на текущий файл jar, и запускает заново
This commit is contained in:
12
.idea/workspace.xml
generated
12
.idea/workspace.xml
generated
@@ -7,11 +7,15 @@
|
|||||||
</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/PublishTestingServer.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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" 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/GlobalData/Tasks/Supervisor/Remote/RemoteCompilationSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GlobalData/Tasks/Supervisor/Remote/RemoteCompilationSupervisor.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/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.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/TestingSystem/DVM/UserConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/UserConnection.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/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.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" />
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ public class Constants {
|
|||||||
public static final int Nan = -1;
|
public static final int Nan = -1;
|
||||||
public static final int planner_version = 3;
|
public static final int planner_version = 3;
|
||||||
//--
|
//--
|
||||||
public static final String testingSystemHomeName = "_testing_system";
|
|
||||||
//SVN
|
//SVN
|
||||||
public static final String REPOSITORY_AUTHENTICATION = "--username dvmhuser --password dvmh2013 --non-interactive";
|
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";
|
public static final String DVM_REPOSITORY = "http://svn.dvm-system.org/svn/dvmhrepo/dvm";
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class TestingBar extends VisualiserMenuBar {
|
|||||||
});
|
});
|
||||||
addSeparator();
|
addSeparator();
|
||||||
serverAdminLabel = addLabel(" управление сервером ");
|
serverAdminLabel = addLabel(" управление сервером ");
|
||||||
addPasses(PassCode_2021.StartTestingServer, PassCode_2021.ShutdownTestingServer);
|
addPasses(PassCode_2021.StartTestingServer, PassCode_2021.ShutdownTestingServer, PassCode_2021.PublishTestingServer);
|
||||||
}
|
}
|
||||||
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"));
|
||||||
|
|||||||
53
src/Visual_DVM_2021/Passes/All/PublishTestingServer.java
Normal file
53
src/Visual_DVM_2021/Passes/All/PublishTestingServer.java
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package Visual_DVM_2021.Passes.All;
|
||||||
|
import Common.Global;
|
||||||
|
import Common.UI.UI;
|
||||||
|
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 PublishTestingServer extends RepositoryServerSSHPass {
|
||||||
|
@Override
|
||||||
|
protected String getServerFileName() {
|
||||||
|
return "TestingSystem.jar";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected String getServerHomeName() {
|
||||||
|
return "_testing_system";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getIconPath() {
|
||||||
|
return "/icons/Publish.png";
|
||||||
|
}
|
||||||
|
//1. остановить сервер.
|
||||||
|
//2. заменить файл сервера на компонент визуализатора. переименовать его.
|
||||||
|
//3. запустить сервер.
|
||||||
|
@Override
|
||||||
|
protected void ServerAction() throws Exception {
|
||||||
|
if (passes.get(PassCode_2021.PingTestingServer).Do(true))
|
||||||
|
ShutdownServer();
|
||||||
|
if (passes.get(PassCode_2021.PingTestingServer).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.PingTestingServer).Do(true)) {
|
||||||
|
Log.Writeln_("Не удалось запустить сервер.");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,15 @@
|
|||||||
package Visual_DVM_2021.Passes.All;
|
package Visual_DVM_2021.Passes.All;
|
||||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
import Visual_DVM_2021.Passes.SSH.TestingServerSSHPass;
|
import Visual_DVM_2021.Passes.SSH.RepositoryServerSSHPass;
|
||||||
public class ShutdownTestingServer extends TestingServerSSHPass {
|
public class ShutdownTestingServer extends RepositoryServerSSHPass {
|
||||||
|
@Override
|
||||||
|
protected String getServerFileName() {
|
||||||
|
return "TestingSystem.jar";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected String getServerHomeName() {
|
||||||
|
return "_testing_system";
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getIconPath() {
|
public String getIconPath() {
|
||||||
return "/icons/Stop25.png";
|
return "/icons/Stop25.png";
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
package Visual_DVM_2021.Passes.All;
|
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.PassCode_2021;
|
||||||
import Visual_DVM_2021.Passes.SSH.TestingServerSSHPass;
|
import Visual_DVM_2021.Passes.SSH.RepositoryServerSSHPass;
|
||||||
|
public class StartTestingServer extends RepositoryServerSSHPass {
|
||||||
import java.util.Date;
|
|
||||||
public class StartTestingServer extends TestingServerSSHPass {
|
|
||||||
@Override
|
@Override
|
||||||
public String getIconPath() {
|
public String getIconPath() {
|
||||||
return "/icons/GreenStart.png";
|
return "/icons/GreenStart.png";
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
protected String getServerHomeName() {
|
||||||
|
return "_testing_system";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
protected boolean canStart(Object... args) throws Exception {
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
if (passes.get(PassCode_2021.PingTestingServer).Do(true)) {
|
if (passes.get(PassCode_2021.PingTestingServer).Do(true)) {
|
||||||
Log.Writeln_("Сервер уже активен!");
|
Log.Writeln_("Сервер уже активен!");
|
||||||
@@ -27,4 +26,8 @@ public class StartTestingServer extends TestingServerSSHPass {
|
|||||||
protected boolean validate() {
|
protected boolean validate() {
|
||||||
return passes.get(PassCode_2021.PingTestingServer).Do();
|
return passes.get(PassCode_2021.PingTestingServer).Do();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
protected String getServerFileName() {
|
||||||
|
return "TestingSystem.jar";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,11 +327,14 @@ public enum PassCode_2021 {
|
|||||||
ShutdownTestingServer,
|
ShutdownTestingServer,
|
||||||
StartTestingServer,
|
StartTestingServer,
|
||||||
SPF_InsertImplicitNone,
|
SPF_InsertImplicitNone,
|
||||||
|
PublishTestingServer,
|
||||||
;
|
;
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case Undefined:
|
case Undefined:
|
||||||
return "?";
|
return "?";
|
||||||
|
case PublishTestingServer:
|
||||||
|
return "Опубликовать тестовый сервер.";
|
||||||
case SPF_InsertImplicitNone:
|
case SPF_InsertImplicitNone:
|
||||||
return "Вставка оператора Implicit NONE";
|
return "Вставка оператора Implicit NONE";
|
||||||
case PingTestingServer:
|
case PingTestingServer:
|
||||||
|
|||||||
@@ -9,14 +9,16 @@ import GlobalData.RemoteFile.RemoteFile;
|
|||||||
import GlobalData.User.User;
|
import GlobalData.User.User;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
public class TestingServerSSHPass extends ConnectionPass {
|
public abstract class RepositoryServerSSHPass extends ConnectionPass {
|
||||||
|
protected abstract String getServerFileName();
|
||||||
|
protected abstract String getServerHomeName();
|
||||||
@Override
|
@Override
|
||||||
public String getButtonText() {
|
public String getButtonText() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
protected RemoteFile userHome;
|
protected RemoteFile userHome;
|
||||||
protected RemoteFile testingHome;
|
protected RemoteFile serverHome;
|
||||||
@Override
|
@Override
|
||||||
protected boolean needsAnimation() {
|
protected boolean needsAnimation() {
|
||||||
return true;
|
return true;
|
||||||
@@ -24,22 +26,23 @@ public class TestingServerSSHPass extends ConnectionPass {
|
|||||||
@Override
|
@Override
|
||||||
public void Connect() throws Exception {
|
public void Connect() throws Exception {
|
||||||
userHome = null;
|
userHome = null;
|
||||||
testingHome = null;
|
serverHome = 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);
|
serverHome = new RemoteFile(userHome, getServerHomeName());
|
||||||
//-
|
//-
|
||||||
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(serverHome.full_name));
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
protected void StartServer() throws Exception {
|
protected void StartServer() throws Exception {
|
||||||
user.connection.performScript(testingHome, "nohup java -jar TestingSystem.jar &");
|
user.connection.performScript(serverHome, "nohup java -jar " + getServerFileName()+
|
||||||
RemoteFile StartLog = new RemoteFile(testingHome, Constants.STARTED +
|
" &");
|
||||||
|
RemoteFile StartLog = new RemoteFile(serverHome, Constants.STARTED +
|
||||||
"_by_" +
|
"_by_" +
|
||||||
Current.getAccount().email +
|
Current.getAccount().email +
|
||||||
"_" +
|
"_" +
|
||||||
@@ -48,9 +51,9 @@ public class TestingServerSSHPass extends ConnectionPass {
|
|||||||
user.connection.writeToFile("+", StartLog);
|
user.connection.writeToFile("+", StartLog);
|
||||||
//--
|
//--
|
||||||
RemoteFile[] files = new RemoteFile[]{
|
RemoteFile[] files = new RemoteFile[]{
|
||||||
new RemoteFile(testingHome, Constants.script),
|
new RemoteFile(serverHome, Constants.script),
|
||||||
new RemoteFile(testingHome, Constants.out_file),
|
new RemoteFile(serverHome, Constants.out_file),
|
||||||
new RemoteFile(testingHome, Constants.err_file)
|
new RemoteFile(serverHome, Constants.err_file)
|
||||||
};
|
};
|
||||||
//-
|
//-
|
||||||
for (RemoteFile file : files) {
|
for (RemoteFile file : files) {
|
||||||
@@ -59,8 +62,8 @@ public class TestingServerSSHPass extends ConnectionPass {
|
|||||||
}
|
}
|
||||||
protected void ShutdownServer() throws Exception {
|
protected void ShutdownServer() throws Exception {
|
||||||
//--
|
//--
|
||||||
RemoteFile INTERRUPT = new RemoteFile(testingHome, Constants.INTERRUPT);
|
RemoteFile INTERRUPT = new RemoteFile(serverHome, Constants.INTERRUPT);
|
||||||
RemoteFile ABORTED = new RemoteFile(testingHome, Constants.ABORTED);
|
RemoteFile ABORTED = new RemoteFile(serverHome, Constants.ABORTED);
|
||||||
//--
|
//--
|
||||||
ShowMessage1("Создание файла INTERRUPT..");
|
ShowMessage1("Создание файла INTERRUPT..");
|
||||||
user.connection.writeToFile("+", INTERRUPT);
|
user.connection.writeToFile("+", INTERRUPT);
|
||||||
@@ -72,7 +75,7 @@ public class TestingServerSSHPass extends ConnectionPass {
|
|||||||
//--
|
//--
|
||||||
ShowMessage2("");
|
ShowMessage2("");
|
||||||
ShowMessage1("Журнализация");
|
ShowMessage1("Журнализация");
|
||||||
RemoteFile AbortLog = new RemoteFile(testingHome, Constants.ABORTED +
|
RemoteFile AbortLog = new RemoteFile(serverHome, Constants.ABORTED +
|
||||||
"_by_" +
|
"_by_" +
|
||||||
Current.getAccount().email +
|
Current.getAccount().email +
|
||||||
"_" +
|
"_" +
|
||||||
@@ -377,6 +377,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
//
|
//
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).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.StartTestingServer).setControlsVisible(false);
|
||||||
|
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(false);
|
||||||
UI.testingBar.showServerAdminLabel(false);
|
UI.testingBar.showServerAdminLabel(false);
|
||||||
}
|
}
|
||||||
private void setDeveloperRights() {
|
private void setDeveloperRights() {
|
||||||
@@ -391,6 +392,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
//
|
//
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).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.StartTestingServer).setControlsVisible(false);
|
||||||
|
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(false);
|
||||||
UI.testingBar.showServerAdminLabel(false);
|
UI.testingBar.showServerAdminLabel(false);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@@ -406,6 +408,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
//--
|
//--
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownTestingServer).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.StartTestingServer).setControlsVisible(true);
|
||||||
|
Pass_2021.passes.get(PassCode_2021.PublishTestingServer).setControlsVisible(true);
|
||||||
UI.testingBar.showServerAdminLabel(true);
|
UI.testingBar.showServerAdminLabel(true);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user