промежуточный. рефакторинг отправки пакета сапфора на сервер. сделал подобно двм.
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
package TestingSystem;
|
||||
import Common.Current;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.rDBObject;
|
||||
import Common.Global;
|
||||
import Common.GlobalProperties;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Machine.Machine;
|
||||
import GlobalData.RemoteFile.RemoteFile;
|
||||
@@ -15,10 +13,6 @@ import Repository.RepositoryRefuseException;
|
||||
import Repository.RepositoryServer;
|
||||
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 SapforTestingSystem.SapforTasksPackage_info;
|
||||
import SapforTestingSystem.ServerSapfor.ServerSapfor;
|
||||
@@ -28,7 +22,6 @@ import TestingSystem.Tasks.TestCompilationTask;
|
||||
import TestingSystem.Tasks.TestRunTask;
|
||||
import TestingSystem.Tasks.TestTask;
|
||||
import TestingSystem.TasksPackage.TasksPackage;
|
||||
import TestingSystem.TasksPackage.TasksPackageState;
|
||||
import TestingSystem.TasksPackageToKill.TasksPackageToKill;
|
||||
import TestingSystem.Test.Test;
|
||||
import TestingSystem.Test.TestInterface;
|
||||
@@ -45,7 +38,6 @@ import javax.swing.*;
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -320,82 +312,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
groups.sort(Comparator.comparing(o -> o.description));
|
||||
return groups;
|
||||
}
|
||||
public void StartSapforTests(SapforTasksPackage_info sapforTasksPackage_info) throws Exception {
|
||||
SetCurrentAccountDB(sapforTasksPackage_info.email);
|
||||
//--
|
||||
SapforTasksPackage_json package_json = new SapforTasksPackage_json();
|
||||
package_json.kernels = sapforTasksPackage_info.kernels;
|
||||
for (String test_id : sapforTasksPackage_info.testsIds)
|
||||
package_json.tests.add(db.tests.get(test_id).description);
|
||||
//создание объекта набора задач. для бд.
|
||||
SapforTasksPackage sapforTasksPackage = new SapforTasksPackage(); //?может быть все же поменять ключ на сгенерированный из даты.
|
||||
sapforTasksPackage.genName();
|
||||
account_db.Insert(sapforTasksPackage);
|
||||
//создание рабочего пространства для пакетного режима
|
||||
File packageWorkspace = new File(Global.SapforPackagesDirectory, String.valueOf(sapforTasksPackage.id));
|
||||
Utils.CheckAndCleanDirectory(packageWorkspace);
|
||||
sapforTasksPackage.workspace = packageWorkspace.getAbsolutePath();
|
||||
//копирование тестов по конфигурациям.
|
||||
for (String configuration_id : sapforTasksPackage_info.configurationsIds) {
|
||||
SapforConfiguration configuration = db.sapforConfigurations.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 : sapforTasksPackage_info.testsIds) {
|
||||
Test test = db.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"));
|
||||
ServerSapfor sapfor = db.serverSapfors.get(sapforTasksPackage_info.sapforId);
|
||||
FileUtils.copyFile(new File(sapfor.call_command), sapforFile);
|
||||
if (!sapforFile.setExecutable(true))
|
||||
throw new RepositoryRefuseException("Не удалось сделать файл " + 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");
|
||||
//--
|
||||
sapforTasksPackage.sapfor_version = sapfor.version;
|
||||
sapforTasksPackage.sapfor_build_date = sapfor.buildDate;
|
||||
sapforTasksPackage.testsNames = String.join(";", package_json.tests);
|
||||
sapforTasksPackage.StartDate = new Date().getTime();
|
||||
sapforTasksPackage.kernels= sapforTasksPackage_info.kernels;
|
||||
sapforTasksPackage.state = TasksPackageState.Queued;
|
||||
account_db.Update(sapforTasksPackage);
|
||||
}
|
||||
@Override
|
||||
protected void Session() throws Exception {
|
||||
DBObject dbObject = null;
|
||||
SapforTasksPackage_info scenario = null;
|
||||
Test test = null;
|
||||
switch (code) {
|
||||
case StartSapforTests:
|
||||
Print("Запуск тестирования SAPFOR");
|
||||
StartSapforTests((SapforTasksPackage_info) request.object);
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
break;
|
||||
case SynchronizeTests:
|
||||
//временный проход. синхронизирует тесты на заданной машине, с сервера.
|
||||
Print("Синхронизация тестов");
|
||||
@@ -510,9 +432,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
Print("Получить первый активный сценарий задач SAPFOR" + request.arg);
|
||||
SetCurrentAccountDB(request.arg);
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = account_db.getFirstActiveSapforScenario();
|
||||
response.object = account_db.getFirstActiveSapforPackage();
|
||||
break;
|
||||
|
||||
case GetQueueSize:
|
||||
Print("Получить размер глобальной очереди задач");
|
||||
long date = (long) request.object;
|
||||
|
||||
Reference in New Issue
Block a user