package TestingSystem.Common.MachineProcess; import Common.Constants; import Common.Current; import Common.Database.DBObject; import Common.Global; import Common.GlobalProperties; import Common.Utils.Utils; import TestingSystem.DVM.DVMPackage.DVMPackage; import org.apache.commons.io.FileUtils; import java.io.File; import java.util.Vector; public class MachineProcess extends DBObject { public String id = ""; public String machineAddress = ""; public int machinePort = Constants.Nan; public String userName = ""; public String userPassword = ""; public String userWorkspace = ""; public String testingSystemRoot = ""; public String serverName = ""; public MachineProcess() { } public MachineProcess(MachineProcess p) { SynchronizeFields(p); } public MachineProcess(DVMPackage p) { machineAddress = p.machine_address; machinePort = p.machine_port; userName = p.user_name; userPassword = p.user_password; userWorkspace = p.user_workspace; testingSystemRoot = Global.Home; serverName = Global.testingServer.name; id = Utils.getDateName(machineAddress+"_"+machinePort+"_"+userName); } @Override public Object getPK() { return id; } @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; serverName = p.serverName; } public String getUniqueKey() { Vector res = new Vector<>(); res.add(machineAddress); res.add(String.valueOf(machinePort)); res.add(userName); res.add(userWorkspace); return String.join("_", res); } public File getWorkspace() { return new File(Global.MachinesDirectory, id); } public File getStartedFile() { return new File(getWorkspace(), Constants.STARTED); } public File getAbortedFile() { return new File(getWorkspace(), Constants.ABORTED); } //--- public boolean isAborted() { File aborted = getAbortedFile(); return aborted.exists(); } public boolean isStarted() { File started = getStartedFile(); return started.exists(); } //-- 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(src, supervisor); //создание настроек GlobalProperties properties = new GlobalProperties(Global.properties); properties.Mode = Current.Mode.MachineQueue; Utils.jsonToFile(properties, new File(workspace, "properties")); Vector 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(userWorkspace)); args.add(Utils.DQuotes(testingSystemRoot)); args.add(Utils.DQuotes(Global.testingServer.name)); //-- Utils.startScript(workspace, workspace, "start", "java -jar VisualSapfor.jar " + String.join(" ", args)+" 1>out.txt 2>err.txt"); //--- } catch (Exception ex) { ex.printStackTrace(); } } }