diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 8c91ffd7..db541f22 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,14 +9,17 @@
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/properties b/properties
index 21e2e2cb..4ced49cc 100644
--- a/properties
+++ b/properties
@@ -4,7 +4,7 @@
"ServerUserName": "testuser",
"ServerUserSHHPort": 23,
"ComponentsServerPort": 7995,
- "TestingServerPort": 7996,
+ "TestingServerPort": 7998,
"SocketTimeout": 5000,
"OldServer": false,
"SMTPHost": "smtp.mail.ru",
@@ -30,12 +30,12 @@
"InstructionPath": "",
"PerformanceAnalyzerPath": "",
"ComponentsBackUpsCount": 10,
- "TestingKernels": 28,
+ "TestingKernels": 16,
"AutoCheckTesting": true,
"CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": false,
"collapseCredentials": false,
- "collapseFileGraphs": false,
- "collapseFileMessages": false,
+ "collapseFileGraphs": true,
+ "collapseFileMessages": true,
"collapseProjectTrees": false
}
\ No newline at end of file
diff --git a/src/Common/Database/DataSet.java b/src/Common/Database/DataSet.java
index 0e585fff..a88fc6d0 100644
--- a/src/Common/Database/DataSet.java
+++ b/src/Common/Database/DataSet.java
@@ -280,4 +280,18 @@ public class DataSet extends DataSetAnchestor {
}
return true;
}
+ //--
+ public Vector getCheckedOrCurrent() {
+ Vector res = new Vector<>();
+ if (getCheckedCount() > 0)
+ res = getCheckedItems();
+ else {
+ if (!CurrentName().equals(Current.Undefined)) {
+ if (getCurrent() != null) {
+ res.add(getCurrent());
+ }
+ }
+ }
+ return res;
+ }
}
diff --git a/src/Repository/Component/Visualiser.java b/src/Repository/Component/Visualiser.java
index e7630194..be02a914 100644
--- a/src/Repository/Component/Visualiser.java
+++ b/src/Repository/Component/Visualiser.java
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override
public void GetVersionInfo() {
- version = 1082;
+ version = 1083;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());
diff --git a/src/Repository/Server/ServerCode.java b/src/Repository/Server/ServerCode.java
index 7a92a236..1bbcba00 100644
--- a/src/Repository/Server/ServerCode.java
+++ b/src/Repository/Server/ServerCode.java
@@ -79,7 +79,7 @@ public enum ServerCode {
InstallServerSapfor,
ReplaceTestCode,
ReplaceTestsCodes,
+ GetDVMPackagesJson,
GetSapforPackagesJson,
- GetFirstsActiveDVMPackages
- ;
+ GetFirstsActiveDVMPackages;
}
diff --git a/src/TestingSystem/Common/TestingServer.java b/src/TestingSystem/Common/TestingServer.java
index 5350bee9..a945cb22 100644
--- a/src/TestingSystem/Common/TestingServer.java
+++ b/src/TestingSystem/Common/TestingServer.java
@@ -16,6 +16,7 @@ import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestType;
import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
import TestingSystem.DVM.DVMPackage.DVMPackage;
+import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTestingPlanner;
import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
@@ -250,6 +251,10 @@ public class TestingServer extends RepositoryServer {
Print("Получить информацию о задачах пакетов SAPFOR");
GetSapforPackagesJson();
break;
+ case GetDVMPackagesJson:
+ Print("Получить информацию о задачах пакетов DVM");
+ GetDVMPackagesJson();
+ break;
case GetFirstsActiveDVMPackages:
Print("Получить первые активные пакеты задач DVM на машинах");
GetFirstActiveDVMPackagesByMachines();
@@ -258,6 +263,7 @@ public class TestingServer extends RepositoryServer {
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
}
+
//->>
Pair> ConvertDirectoryToGroup(File src, LanguageName languageName, TestType
testType, Account account) throws Exception {
@@ -617,6 +623,21 @@ public class TestingServer extends RepositoryServer {
//-
Email(message, out, err);
}
+ private void GetDVMPackagesJson() throws Exception{
+ Vector packages_ids = (Vector) request.object;
+ Vector jsons = new Vector<>();
+ for (int package_id : packages_ids) {
+ if (!db.dvmPackages.containsKey(package_id))
+ throw new RepositoryRefuseException("Пакета задач DVM " + Utils.Brackets(package_id) + " не существует.");
+ DVMPackage dvmPackage = db.dvmPackages.get(package_id);
+ File json = dvmPackage.getJsonFile();
+ if (!json.exists())
+ throw new RepositoryRefuseException("Не найден JSON файл для пакета задач DVM " + Utils.Brackets(package_id));
+ jsons.add((DVMPackage_json) Utils.jsonFromFile(json, DVMPackage_json.class));
+ }
+ response = new ServerExchangeUnit_2021(ServerCode.OK);
+ response.object = jsons;
+ }
private void GetSapforPackagesJson() throws Exception {
Vector packages_ids = (Vector) request.object;
Vector jsons = new Vector<>();
diff --git a/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java b/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java
index e03b8da2..bd6b095b 100644
--- a/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java
+++ b/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java
@@ -3,11 +3,6 @@ import Common.Global;
import Common.UI.Menus_2023.DataMenuBar;
import Common.UI.Menus_2023.MenuBarButton;
import Common.Utils.Utils;
-import TestingSystem.Common.Group.UI.AddGroupMenu;
-import TestingSystem.Common.Group.UI.EditGroupMenu;
-import TestingSystem.DVM.DVMPackage.UI.AddDVMPackageMenu;
-import TestingSystem.DVM.DVMPackage.UI.EditDVMPackageMenu;
-import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
@@ -16,8 +11,12 @@ public class DVMPackagesBar extends DataMenuBar {
super("пакеты задач DVM");
addPasses(PassCode_2021.SynchronizeTests);
addSeparator();
- addMenus(new AddDVMPackageMenu());
- addPasses(PassCode_2021.AddTasksToDVMPackage,PassCode_2021.DeleteDVMPackage);
+ //addMenus(new AddDVMPackageMenu());
+ addPasses(PassCode_2021.AddDVMPackage, PassCode_2021.AddTasksToDVMPackage);
+ addSeparator();
+ addPasses(PassCode_2021.CloneDVMPackage);
+ addSeparator();
+ addPasses(PassCode_2021.DeleteDVMPackage);
addSeparator();
addPasses(PassCode_2021.StartDVMPackage,
PassCode_2021.AbortDVMPackage);
@@ -31,13 +30,13 @@ public class DVMPackagesBar extends DataMenuBar {
setToolTipText("Отображать только пакеты тестов авторства пользователя");
Mark();
addActionListener(e -> {
- DVMPackageDBTable.filterMyOnly = ! DVMPackageDBTable.filterMyOnly;
+ DVMPackageDBTable.filterMyOnly = !DVMPackageDBTable.filterMyOnly;
Mark();
Global.testingServer.db.dvmPackages.ShowUI();
});
}
public void Mark() {
- setIcon(Utils.getIcon( DVMPackageDBTable.filterMyOnly ? "/icons/Pick.png" : "/icons/NotPick.png"));
+ setIcon(Utils.getIcon(DVMPackageDBTable.filterMyOnly ? "/icons/Pick.png" : "/icons/NotPick.png"));
}
});
}
diff --git a/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java b/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java
index 1507109e..b016e6f3 100644
--- a/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java
+++ b/src/TestingSystem/DVM/DVMPackage/UI/AddDVMPackageMenu.java
@@ -5,7 +5,9 @@ import Visual_DVM_2021.Passes.Pass_2021;
public class AddDVMPackageMenu extends VisualiserMenu {
public AddDVMPackageMenu() {
super("", "/icons/RedAdd.png");
+ /*
addPasses(PassCode_2021.AddDVMPackage,
PassCode_2021.CloneDVMPackage);
+ */
}
}
diff --git a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java
index 675f5768..07601716 100644
--- a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java
+++ b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/AddSapforPackageMenu.java
@@ -4,6 +4,6 @@ import Visual_DVM_2021.Passes.PassCode_2021;
public class AddSapforPackageMenu extends VisualiserMenu {
public AddSapforPackageMenu() {
super("", "/icons/RedAdd.png");
- addPasses(PassCode_2021.AddSapforPackage,PassCode_2021.CloneSapforPackage);
+ // addPasses(PassCode_2021.AddSapforPackage,PassCode_2021.CloneSapforPackage);
}
}
diff --git a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java
index ad4e9475..4a5de777 100644
--- a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java
+++ b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java
@@ -12,8 +12,11 @@ public class SapforPackagesBar extends DataMenuBar {
super("пакеты задач SAPFOR");
addPasses(PassCode_2021.SynchronizeTests);
addSeparator();
- addMenus(new AddSapforPackageMenu());
- addPasses(PassCode_2021.AddTasksToSapforPackage, PassCode_2021.DeleteSapforPackage);
+ // addMenus(new AddSapforPackageMenu());
+ addPasses(PassCode_2021.AddSapforPackage, PassCode_2021.AddTasksToSapforPackage);
+ addSeparator();
+ addPasses(PassCode_2021.CloneSapforPackage);
+ addPasses(PassCode_2021.DeleteSapforPackage);
addSeparator();
addPasses(
PassCode_2021.StartSapforPackage,
diff --git a/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java b/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
index aee507bb..9e14935e 100644
--- a/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
+++ b/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
@@ -10,6 +10,10 @@ import Visual_DVM_2021.Passes.AddObjectPass;
import java.io.File;
public class AddSapforPackage extends AddObjectPass {
+ @Override
+ public String getIconPath() {
+ return "/icons/CreateProject.png";
+ }
protected File sapfor = null;
//---
//временный вариант. в дальнейшем, следует сделать возможность формирования.(?)
diff --git a/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java b/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java
index 61edd84f..50087566 100644
--- a/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java
+++ b/src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java
@@ -9,6 +9,8 @@ import GlobalData.Compiler.CompilerType;
import GlobalData.Machine.MachineType;
import GlobalData.Tasks.TaskState;
import GlobalData.User.UserState;
+import Repository.Server.ServerCode;
+import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.TasksPackageState;
import TestingSystem.Common.Test.Test;
@@ -19,10 +21,17 @@ import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import Visual_DVM_2021.Passes.AddObjectPass;
import Visual_DVM_2021.Passes.PassCode_2021;
+import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Vector;
public class CloneDVMPackage extends AddObjectPass {
- DVMPackage src;
+ Vector srcPackages;
+ Vector inexistingTests;
+ Vector inexistingConfigurations;
+ //-
+ Vector src_ids;
+ Vector src_jsons;
+ //-
public CloneDVMPackage() {
super(DVMPackage.class);
}
@@ -34,147 +43,175 @@ public class CloneDVMPackage extends AddObjectPass {
protected Database getDb() {
return Global.testingServer.db;
}
+ protected void createTarget() {
+ target = new DVMPackage();
+ target.id = Constants.Nan;
+ //-
+ target.sender_name = Current.getAccount().name;
+ target.sender_address = Current.getAccount().email;
+ //-
+ target.machine_name = Current.getMachine().name;
+ target.machine_address = Current.getMachine().address;
+ target.machine_port = Current.getMachine().port;
+ //-
+ target.user_name = Current.getUser().login;
+ target.user_password = Current.getUser().password;
+ target.user_workspace = Current.getUser().workspace;
+ //--
+ target.drv = Current.getCompiler().call_command;
+ target.version = Current.getCompiler().getVersionInfo();
+ //--
+ target.kernels = Global.properties.TestingKernels;
+ target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
+ //--
+ target.tasksCount = 0;
+ //--
+ target.package_json = new DVMPackage_json();
+ }
+ protected void CloneTasks(DVMPackage_json src_json, DVMPackage_json dst_json) throws Exception {
+ for (DVMCompilationTask src_compilationTask : src_json.compilationTasks) {
+ if (Global.testingServer.db.tests.containsKey(src_compilationTask.test_id)
+ ) {
+ Group group = Global.testingServer.db.groups.get(src_compilationTask.group_id);
+ Test test = Global.testingServer.db.tests.get(src_compilationTask.test_id);
+ //--
+ DVMCompilationTask compilationTask = new DVMCompilationTask();
+ //--
+ compilationTask.group_id = group.id;
+ compilationTask.group_description = group.description;
+ compilationTask.language = src_compilationTask.language;
+ //--
+ compilationTask.test_id = test.id;
+ compilationTask.test_description = test.description;
+ compilationTask.test_type = group.type;
+ //--
+ compilationTask.maxtime = src_compilationTask.maxtime;
+ //--
+ compilationTask.flags = src_compilationTask.flags;
+ compilationTask.kernels = 1;
+ //---
+ for (DVMRunTask src_runTask : src_compilationTask.runTasks) {
+ DVMRunTask runTask = new DVMRunTask();
+ //--
+ runTask.group_id = group.id;
+ runTask.group_description = group.description;
+ runTask.language = src_runTask.language;
+ //--
+ runTask.test_id = test.id;
+ runTask.test_description = test.description;
+ runTask.test_type = group.type;
+ //--
+ runTask.compilation_maxtime = src_runTask.compilation_maxtime;
+ runTask.compilation_state = TaskState.Waiting;
+ runTask.maxtime = src_runTask.maxtime;
+ //--
+ runTask.cube = src_runTask.cube;
+ runTask.min_dim = src_runTask.min_dim;
+ runTask.max_dim = src_runTask.max_dim;
+ runTask.matrix = src_runTask.matrix;
+ runTask.environments = src_runTask.environments;
+ runTask.usr_par = src_runTask.usr_par;
+ runTask.args = test.args;
+ //--
+ runTask.flags = src_runTask.flags;
+ runTask.kernels = (group.type == TestType.Performance) ? target.kernels :
+ Math.min(Utils.getMatrixProcessors(src_runTask.matrix), target.kernels);
+ compilationTask.runTasks.add(runTask);
+ }
+ //--
+ dst_json.compilationTasks.add(compilationTask);
+ //-
+ } else {
+ inexistingTests.add(String.valueOf(src_compilationTask.test_id));
+ }
+ }
+ }
@Override
protected boolean canStart(Object... args) throws Exception {
- src = null;
- if (!Current.getAccount().CheckRegistered(Log)) {
+ srcPackages = new Vector<>();
+ if (!Current.getAccount().CheckRegistered(Log))
+ return false;
+ //----
+ srcPackages = Global.testingServer.db.dvmPackages.getCheckedOrCurrent();
+ if (srcPackages.isEmpty()){
+ Log.Writeln_("Не отмечено или не выбрано ни одного пакета DVM");
return false;
}
- if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler, Current.DVMPackage)) {
- if (!Current.getMachine().type.equals(MachineType.Server)) {
- Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
- return false;
- }
- if (!Current.getUser().state.equals(UserState.ready_to_work)) {
- Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!");
- return false;
- }
- if (!Current.getCompiler().type.equals(CompilerType.dvm)) {
- Log.Writeln_("Тестирование поддерживается только для DVM компиляторов.");
- return false;
- }
- if (!Current.getCompiler().versionLoaded)
- passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
- //-
- for (DVMPackage dvmPackage : Global.testingServer.db.dvmPackages.Data.values()) {
- if (dvmPackage.state.equals(TasksPackageState.Draft)) {
- Log.Writeln_("Может существовать только один пакет, готовящийся к публикации.");
- return false;
- }
- }
- //--
- src = Current.getDVMPackage();
- if (!src.state.equals(TasksPackageState.Done)) {
- Log.Writeln_("Возможно повторить только завершенный пакет!");
- return false;
- }
- if (!src.isLoaded())
- passes.get(PassCode_2021.DownloadDVMPackage).Do();
- if (!src.isLoaded())
- return false;
- //---->>
- target = new DVMPackage();
- target.id = Constants.Nan;
- //-
- target.sender_name = Current.getAccount().name;
- target.sender_address = Current.getAccount().email;
- //-
- target.machine_name = Current.getMachine().name;
- target.machine_address = Current.getMachine().address;
- target.machine_port = Current.getMachine().port;
- //-
- target.user_name = Current.getUser().login;
- target.user_password = Current.getUser().password;
- target.user_workspace = Current.getUser().workspace;
- //--
- target.drv = Current.getCompiler().call_command;
- target.version = Current.getCompiler().getVersionInfo();
- //--
- target.kernels = Global.properties.TestingKernels;
- target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
- //--
- target.tasksCount = 0;
- //--
- src.readJson();
- target.package_json = new DVMPackage_json();
- //--
- Vector inexistingTests = new Vector<>();
- //--
- for (DVMCompilationTask src_compilationTask : src.package_json.compilationTasks) {
- if (Global.testingServer.db.tests.containsKey(src_compilationTask.test_id)
- ) {
- Group group = Global.testingServer.db.groups.get(src_compilationTask.group_id);
- Test test = Global.testingServer.db.tests.get(src_compilationTask.test_id);
- //--
- DVMCompilationTask compilationTask = new DVMCompilationTask();
- //--
- compilationTask.group_id = group.id;
- compilationTask.group_description = group.description;
- compilationTask.language = src_compilationTask.language;
- //--
- compilationTask.test_id = test.id;
- compilationTask.test_description = test.description;
- compilationTask.test_type = group.type;
- //--
- compilationTask.maxtime = src_compilationTask.maxtime;
- //--
- compilationTask.flags = src_compilationTask.flags;
- compilationTask.kernels = 1;
- //---
- for (DVMRunTask src_runTask : src_compilationTask.runTasks) {
- DVMRunTask runTask = new DVMRunTask();
- //--
- runTask.group_id = group.id;
- runTask.group_description = group.description;
- runTask.language = src_runTask.language;
- //--
- runTask.test_id = test.id;
- runTask.test_description = test.description;
- runTask.test_type = group.type;
- //--
- runTask.compilation_maxtime = src_runTask.compilation_maxtime;
- runTask.compilation_state = TaskState.Waiting;
- runTask.maxtime = src_runTask.maxtime;
- //--
- runTask.cube = src_runTask.cube;
- runTask.min_dim = src_runTask.min_dim;
- runTask.max_dim = src_runTask.max_dim;
- runTask.matrix = src_runTask.matrix;
- runTask.environments = src_runTask.environments;
- runTask.usr_par = src_runTask.usr_par;
- runTask.args = test.args;
- //--
- runTask.flags = src_runTask.flags;
- runTask.kernels = (group.type == TestType.Performance) ? target.kernels :
- Math.min(Utils.getMatrixProcessors(src_runTask.matrix), target.kernels);
- compilationTask.runTasks.add(runTask);
- }
- //--
- target.package_json.compilationTasks.add(compilationTask);
- //-
- } else {
- inexistingTests.add(String.valueOf(src_compilationTask.test_id));
- }
- }
- ///-
- //инициализируем идентификаторы задач.
- for (DVMCompilationTask compilationTask : target.package_json.compilationTasks) {
- //--
- compilationTask.id = target.package_json.getMaxTaskId();
- //-
- for (DVMRunTask runTask : compilationTask.runTasks) {
- runTask.id = target.package_json.getMaxTaskId();
- runTask.dvmcompilationtask_id = compilationTask.id;
- target.tasksCount++;
- }
- }
- //--
- for (String test_id: inexistingTests){
- System.out.println("Тест "+test_id+" не найден!");
- }
- return inexistingTests.isEmpty()|| UI.Question(inexistingTests.size()+ " тестов отсутствует. Продолжить");
+ //-
+ if (!Current.Check(Log, Current.Machine, Current.User, Current.Compiler))
+ return false;
+ //---
+ if (!Current.getMachine().type.equals(MachineType.Server)) {
+ Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
+ return false;
}
- return false;
+ if (!Current.getUser().state.equals(UserState.ready_to_work)) {
+ Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!");
+ return false;
+ }
+ if (!Current.getCompiler().type.equals(CompilerType.dvm)) {
+ Log.Writeln_("Тестирование поддерживается только для DVM компиляторов.");
+ return false;
+ }
+ if (!Current.getCompiler().versionLoaded)
+ passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
+ //-
+ for (DVMPackage dvmPackage : Global.testingServer.db.dvmPackages.Data.values()) {
+ if (dvmPackage.state.equals(TasksPackageState.Draft)) {
+ Log.Writeln_("Может существовать только один пакет, готовящийся к публикации.");
+ return false;
+ }
+ }
+ //--
+ src_ids = new Vector<>();
+ src_jsons = new Vector<>();
+ for (DVMPackage src : srcPackages) {
+ if (src.state.equals(TasksPackageState.Draft)) {
+ Log.Writeln_("Пакет " + Utils.Brackets(src.id) + " является черновиком.");
+ return false;
+ }
+ src_ids.add(src.id);
+ }
+ //--
+ TestingSystemPass getJsonsPass = new TestingSystemPass() {
+ @Override
+ public String getDescription() {
+ return "Получить информацию о задачах исходных пакетов";
+ }
+ @Override
+ protected void ServerAction() throws Exception {
+ Command(new ServerExchangeUnit_2021(ServerCode.GetDVMPackagesJson, null, src_ids));
+ src_jsons.addAll((Vector) response.object);
+ }
+ };
+ if (!getJsonsPass.Do())
+ return false;
+ //--
+ createTarget();
+ //--
+ inexistingTests = new Vector<>();
+ inexistingConfigurations = new Vector<>(); //не нужно.
+ //--
+ for (DVMPackage_json srcJson: src_jsons){
+ CloneTasks(srcJson, target.package_json);
+ }
+ ///-
+ //инициализируем идентификаторы задач.
+ for (DVMCompilationTask compilationTask : target.package_json.compilationTasks) {
+ //--
+ compilationTask.id = target.package_json.getMaxTaskId();
+ //-
+ for (DVMRunTask runTask : compilationTask.runTasks) {
+ runTask.id = target.package_json.getMaxTaskId();
+ runTask.dvmcompilationtask_id = compilationTask.id;
+ target.tasksCount++;
+ }
+ }
+ //--
+ for (String test_id : inexistingTests) {
+ System.out.println("Тест " + test_id + " не найден!");
+ }
+ return inexistingTests.isEmpty() || UI.Question(inexistingTests.size() + " тестов отсутствует. Продолжить");
}
@Override
protected void body() throws Exception {
diff --git a/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java b/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java
index e7bda341..5c3b8ad3 100644
--- a/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java
+++ b/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java
@@ -85,14 +85,12 @@ public class CloneSapforPackage extends AddObjectPass {
if (!Current.Check(Log, Current.ServerSapfor))
return false;
//--
- if (Global.testingServer.db.sapforPackages.getCheckedCount() > 0) {
- srcPackages = Global.testingServer.db.sapforPackages.getCheckedItems();
- } else {
- if (Current.Check(Log, Current.SapforPackage)) {
- srcPackages.add(Current.getSapforPackage());
- } else return false;
+ srcPackages = Global.testingServer.db.sapforPackages.getCheckedOrCurrent();
+ if (srcPackages.isEmpty()){
+ Log.Writeln_("Не отмечено или не выбрано ни одного пакета SAPFOR");
+ return false;
}
- //--
+ // todo изменить чтобы можно было.
for (SapforPackage sapforPackage : Global.testingServer.db.sapforPackages.Data.values()) {
if (sapforPackage.state.equals(TasksPackageState.Draft)) {
Log.Writeln_("Может существовать только один пакет, готовящийся к публикации.");