no message

This commit is contained in:
2024-04-21 23:23:57 +03:00
parent d7b559fd21
commit 5f7b600c6d
8 changed files with 143 additions and 501 deletions

View File

@@ -0,0 +1,85 @@
package TestingSystem.Common.MachineProcess;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.iDBObject;
import Common.Global;
import Common.GlobalProperties;
import Common.Utils.Utils;
import com.sun.org.glassfish.gmbal.Description;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.Vector;
public class MachineProcess extends iDBObject {
@Description("DEFAULT ''")
public String machineAddress = "";
@Description("DEFAULT -1")
public int machinePort = Constants.Nan;
@Description("DEFAULT ''")
public String userName = "";
@Description("DEFAULT ''")
public String userPassword = "";
@Description("DEFAULT ''")
public String userWorkspace = "";
@Description("DEFAULT ''")
public String testingSystemRoot = "";
@Description("DEFAULT 'Inactive'")
public MachineProcessState state = MachineProcessState.Inactive; //0 неактивен
//--
public MachineProcess() {
}
public MachineProcess(MachineProcess p) {
SynchronizeFields(p);
}
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
MachineProcess p = (MachineProcess) src;
machineAddress = p.machineAddress;
machinePort = p.machinePort;
userName = p.userName;
userPassword = p.userPassword;
userWorkspace = p.userWorkspace;
testingSystemRoot = p.testingSystemRoot;
}
public File getWorkspace() {
return new File(Global.MachinesDirectory, String.valueOf(id));
}
public File getAbortedFile() {
return new File(getWorkspace(), Constants.ABORTED);
}
//---
public void Start() {
try {
File workspace = getWorkspace();
Utils.CheckAndCleanDirectory(workspace);
//копирование визуализатора
File src = new File(Global.Home, "TestingSystem.jar");
File supervisor = new File(workspace, "VisualSapfor.jar");
FileUtils.copyFile(Global.visualiser.getFile(), supervisor);
//создание настроек
GlobalProperties properties = new GlobalProperties();
properties.Mode = Current.Mode.MachineQueue;
Utils.jsonToFile(properties, new File(workspace, "properties"));
Vector<String> args = new Vector<>();
args.add(Utils.DQuotes(machineAddress));
args.add(Utils.DQuotes(machinePort));
args.add(Utils.DQuotes(userName));
args.add(Utils.DQuotes(userPassword));
args.add(Utils.DQuotes(testingSystemRoot));
//--
//подготовка пакетного режима. Запустит его уже очередь.
Utils.createScript(workspace, workspace,
"start",
"java -jar VisualSapfor.jar " + String.join(" ", args));
} catch (Exception ex) {
ex.printStackTrace();
}
}
//---
public boolean isAborted() {
File aborted = getAbortedFile();
return aborted.exists();
}
}

View File

@@ -0,0 +1,31 @@
package TestingSystem.Common.MachineProcess;
import Common.Database.iDBTable;
import java.util.Vector;
public class MachineProcessDBTable extends iDBTable<MachineProcess> {
public MachineProcessDBTable() {
super(MachineProcess.class);
}
@Override
public String getSingleDescription() {
return "процесс машины";
}
@Override
public String getPluralDescription() {
return "процессы машины";
}
public void checkProcesses() throws Exception {
Vector<MachineProcess> toUpdate = new Vector<>();
for (MachineProcess machineProcess : Data.values()) {
if (machineProcess.isAborted()) {
toUpdate.add(machineProcess);
}
}
getDb().BeginTransaction();
for (MachineProcess machineProcess: toUpdate){
machineProcess.state = MachineProcessState.Aborted;
getDb().Update(machineProcess);
}
getDb().Commit();
}
}

View File

@@ -0,0 +1,6 @@
package TestingSystem.Common.MachineProcess;
public enum MachineProcessState {
Inactive,
Active,
Aborted
}

View File

@@ -575,5 +575,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
}
//-----
}

View File

@@ -8,6 +8,7 @@ import Repository.Component.Sapfor.Sapfor;
import Repository.RepositoryRefuseException;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Group.GroupsDBTable;
import TestingSystem.Common.MachineProcess.MachineProcessDBTable;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestDBTable;
import TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
@@ -47,6 +48,8 @@ public class TestsDatabase extends SQLiteDatabase {
//---
public DVMRunTasksSet dvmRunTasks = new DVMRunTasksSet(); //задачи текущего пакета тестирования DVM
//--
public MachineProcessDBTable machinesProcesses;
//--
public TestsDatabase() {
super(Paths.get(System.getProperty("user.dir"), "Data", Constants.tests_db_name + ".sqlite").toFile());
}
@@ -62,6 +65,7 @@ public class TestsDatabase extends SQLiteDatabase {
addTable(sapforConfigurations = new SapforConfigurationDBTable());
addTable(sapforConfigurationCommands = new SapforConfigurationCommandsDBTable());
addTable(serverSapfors = new ServerSapforsDBTable());
addTable(machinesProcesses = new MachineProcessDBTable());
}
@Override
public PassCode_2021 getSynchronizePassCode() {