промежуточный. рефакторинг отправки пакета сапфора на сервер. сделал подобно двм.
This commit is contained in:
6
.idea/workspace.xml
generated
6
.idea/workspace.xml
generated
@@ -8,7 +8,13 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TasksDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TasksDatabase.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -273,6 +273,12 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = dbObject;
|
response.object = dbObject;
|
||||||
break;
|
break;
|
||||||
|
case GetObjectsCopiesByPK:
|
||||||
|
Print("Получить список копий объектов по ключам");
|
||||||
|
p = (Pair<Class, Object>) request.object;
|
||||||
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
|
response.object = db.getObjectsCopies(p.getKey(), (Vector<Object>) p.getValue());
|
||||||
|
break;
|
||||||
case DeleteObjects:
|
case DeleteObjects:
|
||||||
Print("Удалить список объектов ");
|
Print("Удалить список объектов ");
|
||||||
Vector<Object> objects = (Vector<Object>) request.object;
|
Vector<Object> objects = (Vector<Object>) request.object;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public enum ServerCode {
|
|||||||
EditObject,
|
EditObject,
|
||||||
DeleteObject,
|
DeleteObject,
|
||||||
GetObjectCopyByPK,
|
GetObjectCopyByPK,
|
||||||
|
GetObjectsCopiesByPK,
|
||||||
DeleteObjects,
|
DeleteObjects,
|
||||||
CheckObjectExistense, //
|
CheckObjectExistense, //
|
||||||
//--
|
//--
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package SapforTestingSystem.SapforTasksPackage;
|
package SapforTestingSystem.SapforTasksPackage;
|
||||||
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.nDBObject;
|
import Common.Database.nDBObject;
|
||||||
import TestingSystem.TasksPackage.TasksPackageState;
|
import TestingSystem.TasksPackage.TasksPackageState;
|
||||||
@@ -7,8 +8,10 @@ public class SapforTasksPackage extends nDBObject {
|
|||||||
@Description("DEFAULT ''")
|
@Description("DEFAULT ''")
|
||||||
public String testsNames = "";//имена тестов через ; для отображения
|
public String testsNames = "";//имена тестов через ; для отображения
|
||||||
//---
|
//---
|
||||||
|
public int sapforId = Constants.Nan;
|
||||||
public String sapfor_version = "?"; //тестируемая версия SAPFOR
|
public String sapfor_version = "?"; //тестируемая версия SAPFOR
|
||||||
public long sapfor_build_date = 0;
|
public long sapfor_build_date = 0;
|
||||||
|
public String sapfor_drv="";
|
||||||
//---
|
//---
|
||||||
public String workspace = ""; //домашняя папка
|
public String workspace = ""; //домашняя папка
|
||||||
//---
|
//---
|
||||||
@@ -18,8 +21,12 @@ public class SapforTasksPackage extends nDBObject {
|
|||||||
public long ChangeDate = 0;//дата окончания выполнения
|
public long ChangeDate = 0;//дата окончания выполнения
|
||||||
//-
|
//-
|
||||||
public int kernels=1; //количество потоков.
|
public int kernels=1; //количество потоков.
|
||||||
@Description("DEFAULT 'Queued'")
|
@Description("DEFAULT 'TestsSynchronize'")
|
||||||
public TasksPackageState state = TasksPackageState.Queued;
|
public TasksPackageState state = TasksPackageState.TestsSynchronize;
|
||||||
|
@Description("DEFAULT ''")
|
||||||
|
public String testsIds = "";
|
||||||
|
@Description("DEFAULT ''")
|
||||||
|
public String configurationsIds = "";
|
||||||
// допустимые состояния
|
// допустимые состояния
|
||||||
//Queued
|
//Queued
|
||||||
//PackageStart
|
//PackageStart
|
||||||
@@ -30,6 +37,7 @@ public class SapforTasksPackage extends nDBObject {
|
|||||||
public void SynchronizeFields(DBObject src) {
|
public void SynchronizeFields(DBObject src) {
|
||||||
super.SynchronizeFields(src);
|
super.SynchronizeFields(src);
|
||||||
SapforTasksPackage p = (SapforTasksPackage) src;
|
SapforTasksPackage p = (SapforTasksPackage) src;
|
||||||
|
sapforId = p.sapforId;
|
||||||
testsNames = p.testsNames;
|
testsNames = p.testsNames;
|
||||||
sapfor_version = p.sapfor_version;
|
sapfor_version = p.sapfor_version;
|
||||||
sapfor_build_date =p.sapfor_build_date;
|
sapfor_build_date =p.sapfor_build_date;
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ public class TasksDatabase extends SQLiteDatabase {
|
|||||||
res.add(p);
|
res.add(p);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
public SapforTasksPackage getFirstActiveSapforScenario() {
|
public SapforTasksPackage getFirstActiveSapforPackage() {
|
||||||
SapforTasksPackage first_active = null;
|
SapforTasksPackage first_active = null;
|
||||||
SapforTasksPackage first_queued = null;
|
SapforTasksPackage first_queued = null;
|
||||||
if (!sapforTasksPackages.Data.isEmpty()) {
|
if (!sapforTasksPackages.Data.isEmpty()) {
|
||||||
@@ -175,8 +175,7 @@ public class TasksDatabase extends SQLiteDatabase {
|
|||||||
}
|
}
|
||||||
if (first_active != null) return first_active;
|
if (first_active != null) return first_active;
|
||||||
if (first_queued != null) {
|
if (first_queued != null) {
|
||||||
// first_queued.state = TasksPackageState.TestsSynchronize; // ? vj
|
first_queued.state = TasksPackageState.TestsSynchronize;
|
||||||
first_queued.state = TasksPackageState.RunningPreparation;
|
|
||||||
try {
|
try {
|
||||||
Update(first_queued);
|
Update(first_queued);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
|||||||
@@ -1,27 +1,36 @@
|
|||||||
package TestingSystem;
|
package TestingSystem;
|
||||||
import Common.Constants;
|
import Common.Constants;
|
||||||
|
import Common.Current;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
|
import Common.GlobalProperties;
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
import GlobalData.Machine.Machine;
|
import GlobalData.Machine.Machine;
|
||||||
import GlobalData.User.User;
|
import GlobalData.User.User;
|
||||||
import Repository.EmailMessage;
|
import Repository.EmailMessage;
|
||||||
import Repository.Server.ServerCode;
|
import Repository.Server.ServerCode;
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
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.SapforTasksPackage;
|
||||||
import TestingSystem.MachineMaxKernels.MachineMaxKernels;
|
import TestingSystem.MachineMaxKernels.MachineMaxKernels;
|
||||||
import TestingSystem.Tasks.TestCompilationTask;
|
import TestingSystem.Tasks.TestCompilationTask;
|
||||||
import TestingSystem.Tasks.TestTask;
|
import TestingSystem.Tasks.TestTask;
|
||||||
import TestingSystem.TasksPackage.TasksPackage;
|
import TestingSystem.TasksPackage.TasksPackage;
|
||||||
import TestingSystem.TasksPackage.TasksPackageState;
|
import TestingSystem.TasksPackage.TasksPackageState;
|
||||||
|
import TestingSystem.Test.Test;
|
||||||
import TestingSystem.TestsSupervisor_2022.TestsSupervisor_2022;
|
import TestingSystem.TestsSupervisor_2022.TestsSupervisor_2022;
|
||||||
import Visual_DVM_2021.Passes.PassException;
|
import Visual_DVM_2021.Passes.PassException;
|
||||||
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
|
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
|
||||||
import Visual_DVM_2021.Passes.TestingSystemPass;
|
import Visual_DVM_2021.Passes.TestingSystemPass;
|
||||||
import javafx.util.Pair;
|
import javafx.util.Pair;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
@@ -214,9 +223,76 @@ public class TestingPlanner {
|
|||||||
package_in.ChangeDate = new Date().getTime();
|
package_in.ChangeDate = new Date().getTime();
|
||||||
ServerCommand(ServerCode.EditAccountObject, package_in);
|
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 {
|
void SapforPackageStart() throws Exception {
|
||||||
System.out.println("start sapfor package " + sapforTasksPackage.id);
|
System.out.println("start sapfor package " + sapforTasksPackage.id);
|
||||||
|
|
||||||
File workspace = new File(sapforTasksPackage.workspace);
|
File workspace = new File(sapforTasksPackage.workspace);
|
||||||
File script = new File(sapforTasksPackage.workspace, "start");
|
File script = new File(sapforTasksPackage.workspace, "start");
|
||||||
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
|
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
|
||||||
@@ -245,12 +321,19 @@ public class TestingPlanner {
|
|||||||
//--
|
//--
|
||||||
public void PerformSapforPackage() throws Exception {
|
public void PerformSapforPackage() throws Exception {
|
||||||
switch (sapforTasksPackage.state) {
|
switch (sapforTasksPackage.state) {
|
||||||
|
case TestsSynchronize:
|
||||||
|
TestsSynchronize();
|
||||||
|
sapforTasksPackage.state = TasksPackageState.RunningPreparation;
|
||||||
|
UpdateSapforPackage(sapforTasksPackage);
|
||||||
|
break;
|
||||||
|
/*
|
||||||
case RunningPreparation:
|
case RunningPreparation:
|
||||||
SapforPackageStart();
|
SapforPackageStart();
|
||||||
break;
|
break;
|
||||||
case RunningExecution:
|
case RunningExecution:
|
||||||
CheckSapforPackageState();
|
CheckSapforPackageState();
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package TestingSystem;
|
package TestingSystem;
|
||||||
import Common.Current;
|
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.rDBObject;
|
import Common.Database.rDBObject;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.GlobalProperties;
|
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
import GlobalData.Machine.Machine;
|
import GlobalData.Machine.Machine;
|
||||||
import GlobalData.RemoteFile.RemoteFile;
|
import GlobalData.RemoteFile.RemoteFile;
|
||||||
@@ -15,10 +13,6 @@ import Repository.RepositoryRefuseException;
|
|||||||
import Repository.RepositoryServer;
|
import Repository.RepositoryServer;
|
||||||
import Repository.Server.ServerCode;
|
import Repository.Server.ServerCode;
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
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.SapforTasksPackage;
|
||||||
import SapforTestingSystem.SapforTasksPackage_info;
|
import SapforTestingSystem.SapforTasksPackage_info;
|
||||||
import SapforTestingSystem.ServerSapfor.ServerSapfor;
|
import SapforTestingSystem.ServerSapfor.ServerSapfor;
|
||||||
@@ -28,7 +22,6 @@ import TestingSystem.Tasks.TestCompilationTask;
|
|||||||
import TestingSystem.Tasks.TestRunTask;
|
import TestingSystem.Tasks.TestRunTask;
|
||||||
import TestingSystem.Tasks.TestTask;
|
import TestingSystem.Tasks.TestTask;
|
||||||
import TestingSystem.TasksPackage.TasksPackage;
|
import TestingSystem.TasksPackage.TasksPackage;
|
||||||
import TestingSystem.TasksPackage.TasksPackageState;
|
|
||||||
import TestingSystem.TasksPackageToKill.TasksPackageToKill;
|
import TestingSystem.TasksPackageToKill.TasksPackageToKill;
|
||||||
import TestingSystem.Test.Test;
|
import TestingSystem.Test.Test;
|
||||||
import TestingSystem.Test.TestInterface;
|
import TestingSystem.Test.TestInterface;
|
||||||
@@ -45,7 +38,6 @@ import javax.swing.*;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -320,82 +312,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
groups.sort(Comparator.comparing(o -> o.description));
|
groups.sort(Comparator.comparing(o -> o.description));
|
||||||
return groups;
|
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
|
@Override
|
||||||
protected void Session() throws Exception {
|
protected void Session() throws Exception {
|
||||||
DBObject dbObject = null;
|
DBObject dbObject = null;
|
||||||
SapforTasksPackage_info scenario = null;
|
SapforTasksPackage_info scenario = null;
|
||||||
Test test = null;
|
Test test = null;
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case StartSapforTests:
|
|
||||||
Print("Запуск тестирования SAPFOR");
|
|
||||||
StartSapforTests((SapforTasksPackage_info) request.object);
|
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
|
||||||
break;
|
|
||||||
case SynchronizeTests:
|
case SynchronizeTests:
|
||||||
//временный проход. синхронизирует тесты на заданной машине, с сервера.
|
//временный проход. синхронизирует тесты на заданной машине, с сервера.
|
||||||
Print("Синхронизация тестов");
|
Print("Синхронизация тестов");
|
||||||
@@ -510,9 +432,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
Print("Получить первый активный сценарий задач SAPFOR" + request.arg);
|
Print("Получить первый активный сценарий задач SAPFOR" + request.arg);
|
||||||
SetCurrentAccountDB(request.arg);
|
SetCurrentAccountDB(request.arg);
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = account_db.getFirstActiveSapforScenario();
|
response.object = account_db.getFirstActiveSapforPackage();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GetQueueSize:
|
case GetQueueSize:
|
||||||
Print("Получить размер глобальной очереди задач");
|
Print("Получить размер глобальной очереди задач");
|
||||||
long date = (long) request.object;
|
long date = (long) request.object;
|
||||||
|
|||||||
@@ -7,17 +7,19 @@ import Repository.Server.ServerCode;
|
|||||||
import Repository.Server.ServerExchangeUnit_2021;
|
import Repository.Server.ServerExchangeUnit_2021;
|
||||||
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
|
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
|
||||||
import SapforTestingSystem.SapforConfigurationCommand.SapforConfigurationCommand;
|
import SapforTestingSystem.SapforConfigurationCommand.SapforConfigurationCommand;
|
||||||
import SapforTestingSystem.SapforTasksPackage_info;
|
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
|
||||||
import TestingSystem.Group.Group;
|
import TestingSystem.Group.Group;
|
||||||
|
import TestingSystem.TasksPackage.TasksPackageState;
|
||||||
import TestingSystem.Test.Test;
|
import TestingSystem.Test.Test;
|
||||||
import TestingSystem.TestingServer;
|
import TestingSystem.TestingServer;
|
||||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
import Visual_DVM_2021.Passes.TestingSystemPass;
|
import Visual_DVM_2021.Passes.TestingSystemPass;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class StartSapforTests extends TestingSystemPass<SapforTasksPackage_info> {
|
public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
|
||||||
protected int allTasksCount = 0;
|
protected int allTasksCount = 0;
|
||||||
//--
|
//--
|
||||||
protected LinkedHashMap<String, Vector<String>> groupsTests = null;
|
protected LinkedHashMap<String, Vector<String>> groupsTests = null;
|
||||||
@@ -176,15 +178,33 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage_info>
|
|||||||
//--
|
//--
|
||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected void ServerAction() throws Exception {
|
||||||
target = new SapforTasksPackage_info();
|
target = new SapforTasksPackage();
|
||||||
target.email = Current.getAccount().email;
|
target.genName();
|
||||||
target.sapforId = Current.getServerSapfor().id;
|
//--
|
||||||
|
Vector<String> testsIds = new Vector<>();
|
||||||
|
Vector<String> configurationsIds = new Vector<>();
|
||||||
for (Test test : allTests.values())
|
for (Test test : allTests.values())
|
||||||
target.testsIds.add(test.id);
|
testsIds.add(test.id);
|
||||||
//--
|
//--
|
||||||
for (SapforConfiguration configuration : Global.testingServer.db.sapforConfigurations.getCheckedItems())
|
for (SapforConfiguration configuration : Global.testingServer.db.sapforConfigurations.getCheckedItems())
|
||||||
target.configurationsIds.add(configuration.id);
|
configurationsIds.add(configuration.id);
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.StartSapforTests, "", target));
|
//--
|
||||||
|
target.testsIds = String.join("\n", testsIds);
|
||||||
|
target.configurationsIds = String.join("\n", configurationsIds);
|
||||||
|
//--
|
||||||
|
target.sapforId = Current.getServerSapfor().id;
|
||||||
|
target.sapfor_drv = Current.getServerSapfor().call_command;
|
||||||
|
target.sapfor_version = Current.getServerSapfor().version;
|
||||||
|
target.sapfor_build_date = Current.getServerSapfor().buildDate;
|
||||||
|
//--
|
||||||
|
target.testsNames = String.join(";", testsNames_lower);
|
||||||
|
target.StartDate = new Date().getTime();
|
||||||
|
target.kernels = TestingServer.kernels;
|
||||||
|
target.state = TasksPackageState.Queued;
|
||||||
|
//---
|
||||||
|
Vector<SapforTasksPackage> packages = new Vector<>();
|
||||||
|
packages.add(target);
|
||||||
|
Command(new ServerExchangeUnit_2021(ServerCode.PublishAccountObjects, Current.getAccount().email, packages));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void performDone() throws Exception {
|
protected void performDone() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user