Обощение массовой загрузки пакетов с сервера.

This commit is contained in:
2023-12-17 19:19:59 +03:00
parent d9fca1fa72
commit eefbc25be0
18 changed files with 116 additions and 77 deletions

View File

@@ -3,18 +3,14 @@ import Common.Constants;
import Common.Current;
import Common.Database.Database;
import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import GlobalData.Compiler.CompilerType;
import GlobalData.Machine.MachineType;
import GlobalData.User.UserState;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.AddObjectPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.Date;
public class AddDVMPackage extends AddObjectPass<DVMPackage> {
public AddDVMPackage() {
super(DVMPackage.class);

View File

@@ -8,7 +8,7 @@ import Common.Utils.Index;
import ProjectData.LanguageName;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
import TestingSystem.SAPFOR.Json.SapforTasksPackage_json;
import TestingSystem.SAPFOR.Json.SapforTest_json;

View File

@@ -10,7 +10,7 @@ import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021;
import java.util.Vector;

View File

@@ -2,73 +2,30 @@ package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current;
import Common.Global;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Common.TasksPackageState;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.Date;
public class DownloadDVMPackage extends TestingSystemPass<DVMPackage> {
@Override
public String getIconPath() {
return "/icons/DownloadBugReport.png";
}
@Override
public String getButtonText() {
return "";
}
File workspace;
File results_zip;
File results;
File loaded;
@Override
import java.util.Vector;
public class DownloadDVMPackage extends DownloadDVMPackages {
protected boolean canStart(Object... args) throws Exception {
if (Current.Check(Log, Current.DVMPackage)){
if (Current.Check(Log, Current.DVMPackage)) {
//--
target = Current.getDVMPackage();
workspace = target.getLocalWorkspace();
results_zip = new File(workspace, "results.zip");
results = new File(workspace, "results");
loaded = new File(workspace, Constants.LOADED);
DVMPackage dvmPackage = Current.getDVMPackage();
//--
if (!target.state.equals(TasksPackageState.Done)){
if (!dvmPackage.state.equals(TasksPackageState.Done)) {
Log.Writeln_("Возможно скачать и отобразить задачи только завершённого пакета!");
return false;
}
if (loaded.exists()){
/// Log.Writeln_("Пакет уже загружен");
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
if (new File(dvmPackage.getLocalWorkspace(), Constants.LOADED).exists()) {
/// Log.Writeln_("Пакет уже загружен");
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(dvmPackage);
return false;
}
return true;
Vector<Integer> packages = new Vector<>();
packages.add(dvmPackage.id);
return super.canStart(packages);
}
return false;
}
@Override
protected void performPreparation() throws Exception {
Utils.CheckAndCleanDirectory(target.getLocalWorkspace());
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DownloadDVMPackage,"", target.id));
}
@Override
protected void performDone() throws Exception {
super.performDone();
Pair<byte[], byte[]> packed = (Pair<byte[], byte[]>) response.object;
Utils.unpackFile(packed.getKey(), results_zip);
Utils.unpackFile(packed.getValue(), target.getJsonFile());
passes.get(PassCode_2021.UnzipFolderPass).Do(results_zip.getAbsolutePath(), workspace.getAbsolutePath());
FileUtils.writeStringToFile(loaded, new Date().toString());
}
@Override
protected void showDone() throws Exception {
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
}
}

View File

@@ -0,0 +1,52 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.Date;
import java.util.Vector;
public class DownloadDVMPackages extends TestingSystemPass<Vector<Integer>> {
@Override
public String getIconPath() {
return "/icons/DownloadBugReport.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = (Vector<Integer>) args[0];
return true;
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DownloadDVMPackages, "", target));
}
@Override
protected void performDone() throws Exception {
Vector<Pair<Integer, Pair<byte[], byte[]>>> res = (Vector<Pair<Integer, Pair<byte[], byte[]>>>) response.object;
for (Pair<Integer, Pair<byte[], byte[]>> p : res) {
DVMPackage dvmPackage = Global.testingServer.db.dvmPackages.get(p.getKey());
File workspace = dvmPackage.getLocalWorkspace();
Utils.CheckAndCleanDirectory(workspace);
File results_zip = new File(workspace, "results.zip");
File results = new File(workspace, "results");
File loaded = new File(workspace, Constants.LOADED);
Pair<byte[], byte[]> packed = p.getValue();
//---
Utils.unpackFile(packed.getKey(), results_zip);
Utils.unpackFile(packed.getValue(), dvmPackage.getJsonFile());
passes.get(PassCode_2021.UnzipFolderPass).Do(results_zip.getAbsolutePath(), workspace.getAbsolutePath());
FileUtils.writeStringToFile(loaded, new Date().toString());
}
}
}

View File

@@ -8,7 +8,7 @@ import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

View File

@@ -307,12 +307,15 @@ public enum PassCode_2021 {
StartSapforPackage,
AbortSapforPackage,
DownloadDVMPackage,
DownloadDVMPackages,
//->
TestPass;
public String getDescription() {
switch (this) {
case Undefined:
return "?";
case DownloadDVMPackages:
return "Загрузить пакеты задач DVM";
case AbortSapforPackage:
return "Прервать пакет тестирования SAPFOR";
case StartSapforPackage:

View File

@@ -4,7 +4,7 @@ import Common.Global;
import Common.UI.UI;
import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Server.PublishServerObject;
public abstract class StartTestingPackage<P extends TestingPackage> extends PublishServerObject<TestingServer, P> {
public StartTestingPackage(Class<P> p_in) {