промежуточный. рефакторинг отправки пакета сапфора на сервер. сделал подобно двм.
This commit is contained in:
@@ -1,27 +1,36 @@
|
||||
package TestingSystem;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Global;
|
||||
import Common.GlobalProperties;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Machine.Machine;
|
||||
import GlobalData.User.User;
|
||||
import Repository.EmailMessage;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import SapforTestingSystem.Json.SapforConfiguration_json;
|
||||
import SapforTestingSystem.Json.SapforTasksPackage_json;
|
||||
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
|
||||
import SapforTestingSystem.SapforConfiguration.SapforConfigurationInterface;
|
||||
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
|
||||
import TestingSystem.MachineMaxKernels.MachineMaxKernels;
|
||||
import TestingSystem.Tasks.TestCompilationTask;
|
||||
import TestingSystem.Tasks.TestTask;
|
||||
import TestingSystem.TasksPackage.TasksPackage;
|
||||
import TestingSystem.TasksPackage.TasksPackageState;
|
||||
import TestingSystem.Test.Test;
|
||||
import TestingSystem.TestsSupervisor_2022.TestsSupervisor_2022;
|
||||
import Visual_DVM_2021.Passes.PassException;
|
||||
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
|
||||
import Visual_DVM_2021.Passes.TestingSystemPass;
|
||||
import javafx.util.Pair;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
@@ -214,9 +223,76 @@ public class TestingPlanner {
|
||||
package_in.ChangeDate = new Date().getTime();
|
||||
ServerCommand(ServerCode.EditAccountObject, package_in);
|
||||
}
|
||||
private void TestsSynchronize() throws Exception {
|
||||
Vector<String> testsIds = new Vector<>(Arrays.asList(sapforTasksPackage.testsIds.split("\n")));
|
||||
Vector<String> configurationsIds = new Vector<>(Arrays.asList(sapforTasksPackage.configurationsIds.split("\n")));
|
||||
Vector<Object> tests_ = (Vector<Object>) ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(Test.class, testsIds));
|
||||
Vector<Object> configurations_ = (Vector<Object>) ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(SapforConfiguration.class, configurationsIds));
|
||||
LinkedHashMap<String, Test> tests = new LinkedHashMap<>();
|
||||
LinkedHashMap<String, SapforConfiguration> configurations = new LinkedHashMap<>();
|
||||
for (Object o : tests_) {
|
||||
Test test = (Test) o;
|
||||
System.out.println(test.description);
|
||||
tests.put(test.id, test);
|
||||
}
|
||||
for (Object o : configurations_) {
|
||||
SapforConfiguration sapforConfiguration = (SapforConfiguration) o;
|
||||
System.out.println(sapforConfiguration.id);
|
||||
configurations.put(sapforConfiguration.id, sapforConfiguration);
|
||||
}
|
||||
//--
|
||||
SapforTasksPackage_json package_json = new SapforTasksPackage_json();
|
||||
package_json.kernels = sapforTasksPackage.kernels;
|
||||
for (String test_id : testsIds)
|
||||
package_json.tests.add(tests.get(test_id).description);
|
||||
//создание рабочего пространства для пакетного режима
|
||||
File packageWorkspace = new File(Global.SapforPackagesDirectory, String.valueOf(sapforTasksPackage.id));
|
||||
Utils.CheckAndCleanDirectory(packageWorkspace);
|
||||
sapforTasksPackage.workspace = packageWorkspace.getAbsolutePath();
|
||||
//копирование тестов по конфигурациям.
|
||||
for (String configuration_id : configurationsIds) {
|
||||
SapforConfiguration configuration = configurations.get(configuration_id);
|
||||
//--
|
||||
SapforConfiguration_json configuration_json = new SapforConfiguration_json();
|
||||
configuration_json.id = String.valueOf(configuration_id);
|
||||
configuration_json.flags = SapforConfigurationInterface.getFlags(configuration);
|
||||
configuration_json.codes.addAll(SapforConfigurationInterface.getPassCodes(configuration));
|
||||
//--->>
|
||||
package_json.configurations.add(configuration_json);
|
||||
//-->>
|
||||
File configurationWorkspace = new File(packageWorkspace, configuration_id);
|
||||
FileUtils.forceMkdir(configurationWorkspace);
|
||||
for (String test_id : testsIds) {
|
||||
Test test = tests.get(test_id);
|
||||
File test_root = new File(configurationWorkspace, test.description);
|
||||
Utils.CheckAndCleanDirectory(test_root);
|
||||
FileUtils.copyDirectory(new File(Global.TestsDirectory, test.id), test_root);
|
||||
sapforTasksPackage.tasksCount++;
|
||||
}
|
||||
}
|
||||
//копирование SAPFOR
|
||||
File sapforFile = new File(sapforTasksPackage.workspace, Utils.getDateName("SAPFOR_F"));
|
||||
FileUtils.copyFile(new File(sapforTasksPackage.sapfor_drv), sapforFile);
|
||||
if (!sapforFile.setExecutable(true))
|
||||
throw new Exception("Не удалось сделать файл " + sapforFile.getName() + " исполняемым!");
|
||||
package_json.sapfor_drv = sapforFile.getName();
|
||||
//--->>
|
||||
//копирование визуализатора
|
||||
File visualiser = new File(sapforTasksPackage.workspace, "VisualSapfor.jar");
|
||||
FileUtils.copyFile(new File(Global.Home, "TestingSystem.jar"), visualiser);
|
||||
//создание настроек
|
||||
GlobalProperties properties = new GlobalProperties();
|
||||
properties.Mode = Current.Mode.Package;
|
||||
Utils.jsonToFile(properties, new File(sapforTasksPackage.workspace, "properties"));
|
||||
//создание инструкции
|
||||
File package_json_file = new File(sapforTasksPackage.workspace, "package_json");
|
||||
Utils.jsonToFile(package_json, package_json_file);
|
||||
//подготовка пакетного режима. Запустит его уже очередь.
|
||||
Utils.createScript(packageWorkspace, packageWorkspace, "start", "java -jar VisualSapfor.jar");
|
||||
//--
|
||||
}
|
||||
void SapforPackageStart() throws Exception {
|
||||
System.out.println("start sapfor package " + sapforTasksPackage.id);
|
||||
|
||||
File workspace = new File(sapforTasksPackage.workspace);
|
||||
File script = new File(sapforTasksPackage.workspace, "start");
|
||||
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
|
||||
@@ -245,12 +321,19 @@ public class TestingPlanner {
|
||||
//--
|
||||
public void PerformSapforPackage() throws Exception {
|
||||
switch (sapforTasksPackage.state) {
|
||||
case TestsSynchronize:
|
||||
TestsSynchronize();
|
||||
sapforTasksPackage.state = TasksPackageState.RunningPreparation;
|
||||
UpdateSapforPackage(sapforTasksPackage);
|
||||
break;
|
||||
/*
|
||||
case RunningPreparation:
|
||||
SapforPackageStart();
|
||||
break;
|
||||
case RunningExecution:
|
||||
CheckSapforPackageState();
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user