промежуточный. добавление кнопки публикации тестового сервера. она выполняет остановку сервера, замену его на текущий файл jar, и запускает заново
This commit is contained in:
87
src/Visual_DVM_2021/Passes/SSH/RepositoryServerSSHPass.java
Normal file
87
src/Visual_DVM_2021/Passes/SSH/RepositoryServerSSHPass.java
Normal file
@@ -0,0 +1,87 @@
|
||||
package Visual_DVM_2021.Passes.SSH;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Machine.Machine;
|
||||
import GlobalData.Machine.MachineType;
|
||||
import GlobalData.RemoteFile.RemoteFile;
|
||||
import GlobalData.User.User;
|
||||
|
||||
import java.util.Date;
|
||||
public abstract class RepositoryServerSSHPass extends ConnectionPass {
|
||||
protected abstract String getServerFileName();
|
||||
protected abstract String getServerHomeName();
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
//--
|
||||
protected RemoteFile userHome;
|
||||
protected RemoteFile serverHome;
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public void Connect() throws Exception {
|
||||
userHome = null;
|
||||
serverHome = null;
|
||||
//--
|
||||
machine = new Machine("alex", Global.properties.ServerAddress, Global.properties.ServerUserSHHPort, MachineType.Server);
|
||||
user = new User(Global.properties.ServerUserName, "mprit_2011");
|
||||
super.Connect();
|
||||
//--
|
||||
userHome = new RemoteFile(user.connection.sftpChannel.getHome(), true);
|
||||
serverHome = new RemoteFile(userHome, getServerHomeName());
|
||||
//-
|
||||
System.out.println("userHome=" + Utils.Brackets(userHome.full_name));
|
||||
System.out.println("testingHome=" + Utils.Brackets(serverHome.full_name));
|
||||
}
|
||||
//--
|
||||
protected void StartServer() throws Exception {
|
||||
user.connection.performScript(serverHome, "nohup java -jar " + getServerFileName()+
|
||||
" &");
|
||||
RemoteFile StartLog = new RemoteFile(serverHome, Constants.STARTED +
|
||||
"_by_" +
|
||||
Current.getAccount().email +
|
||||
"_" +
|
||||
new Date().toString()
|
||||
);
|
||||
user.connection.writeToFile("+", StartLog);
|
||||
//--
|
||||
RemoteFile[] files = new RemoteFile[]{
|
||||
new RemoteFile(serverHome, Constants.script),
|
||||
new RemoteFile(serverHome, Constants.out_file),
|
||||
new RemoteFile(serverHome, Constants.err_file)
|
||||
};
|
||||
//-
|
||||
for (RemoteFile file : files) {
|
||||
user.connection.tryRM(file);
|
||||
}
|
||||
}
|
||||
protected void ShutdownServer() throws Exception {
|
||||
//--
|
||||
RemoteFile INTERRUPT = new RemoteFile(serverHome, Constants.INTERRUPT);
|
||||
RemoteFile ABORTED = new RemoteFile(serverHome, Constants.ABORTED);
|
||||
//--
|
||||
ShowMessage1("Создание файла INTERRUPT..");
|
||||
user.connection.writeToFile("+", INTERRUPT);
|
||||
ShowMessage1("Ожидание остановки сервера тестирования");
|
||||
do {
|
||||
Utils.sleep(1000);
|
||||
ShowMessage2("Проверка признака остановки..");
|
||||
} while (!user.connection.Exists(ABORTED));
|
||||
//--
|
||||
ShowMessage2("");
|
||||
ShowMessage1("Журнализация");
|
||||
RemoteFile AbortLog = new RemoteFile(serverHome, Constants.ABORTED +
|
||||
"_by_" +
|
||||
Current.getAccount().email +
|
||||
"_" +
|
||||
new Date().toString()
|
||||
);
|
||||
user.connection.sftpChannel.rename(ABORTED.full_name, AbortLog.full_name);
|
||||
System.out.println("Done");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user