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"); } }