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

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

@@ -0,0 +1,100 @@
package TestingSystem.Common;
import Common.Current;
import Common.UI.StatusEnum;
import Common.UI.Themes.VisualiserFonts;
import java.awt.*;
import java.util.Arrays;
import java.util.Vector;
import java.util.stream.Collectors;
public enum TasksPackageState implements StatusEnum {
Draft,
//--
Queued,
//--
TestsSynchronize, //оставить.
PackageWorkspaceCreation,
PackageStart,
//
CompilationWorkspacesCreation,
CompilationPreparation,
CompilationExecution,
//-
RunningWorkspacesCreation,
RunningPreparation,
RunningExecution,
//--
RunningEnd, //скачка архива
//---------------------------------------
Analysis,
Done,
Aborted;
public boolean isActive() {
switch (this) {
case Done:
case Aborted:
case Draft:
return false;
default:
return true;
}
}
@Override
public Font getFont() {
switch (this) {
case TestsSynchronize:
case Analysis:
case Draft:
return Current.getTheme().Fonts.get(VisualiserFonts.BlueState);
case CompilationExecution:
case RunningExecution:
return Current.getTheme().Fonts.get(VisualiserFonts.ProgressState);
case Done:
return Current.getTheme().Fonts.get(VisualiserFonts.GoodState);
default:
return StatusEnum.super.getFont();
}
}
//-
public String getDescription() {
switch (this) {
case Draft:
return "Подготовка к публикации";
case Aborted:
return "Прерван";
case Queued:
return "в очереди";
case TestsSynchronize:
return "синхронизация тестов";
case PackageWorkspaceCreation:
return "создание рабочей папки пакета";
case PackageStart:
return "старт пакета";
case CompilationWorkspacesCreation:
return "создание рабочих папок компиляции";
case CompilationPreparation:
return "подготовка к компиляции";
case CompilationExecution:
return "компиляция";
case RunningWorkspacesCreation:
return "создание рабочих папок для запуска";
case RunningPreparation:
return "подготовка к запуску";
case RunningExecution:
return "запуск";
case RunningEnd:
return "загрузка результатов";
case Analysis:
return "анализ результатов";
case Done:
return "завершен";
default:
return StatusEnum.super.getDescription();
}
}
public Vector<TasksPackageState> getHigherStates(){
return Arrays.stream(values()).filter(state -> state.ordinal() > this.ordinal()).collect(Collectors.toCollection(Vector::new));
}
}

View File

@@ -3,7 +3,7 @@ import Common.Constants;
import Common.Database.DBObject;
import Common.Database.riDBObject;
import Common.Utils.Utils;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.Common.TasksPackageState;
import com.sun.org.glassfish.gmbal.Description;
import java.io.File;

View File

@@ -4,7 +4,6 @@ import Repository.EmailMessage;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;

View File

@@ -219,6 +219,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Загрузить пакет DVM");
DownloadDVMPackage();
break;
case DownloadDVMPackages:
Print("Загрузить пакеты DVM");
DownloadDVMPackages();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -433,4 +437,19 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
File package_json = dvmPackage.getJsonFile();
response.object = new Pair(Utils.packFile(results_zip), Utils.packFile(package_json));
}
private void DownloadDVMPackages() throws Exception {
Vector<Integer> ids = (Vector<Integer>) request.object;
Vector<Pair<Integer, Pair<byte[], byte[]>>> res = new Vector<>();
for (int dvmPackage_id : ids) {
if (!db.dvmPackages.containsKey(dvmPackage_id))
throw new RepositoryRefuseException("Не найдено пакета тестирования DVM с ключом " + dvmPackage_id);
DVMPackage dvmPackage = db.dvmPackages.get(dvmPackage_id);
File workspace = dvmPackage.getLocalWorkspace();
File results_zip = new File(workspace, "results.zip");
File package_json = dvmPackage.getJsonFile();
res.add(new Pair<>(dvmPackage_id, new Pair(Utils.packFile(results_zip), Utils.packFile(package_json))));
}
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = res;
}
}

View File

@@ -1,7 +1,6 @@
package TestingSystem.Common;
import Common.Constants;
import Common.Database.SQLITE.SQLiteDatabase;
import GlobalData.Settings.SettingName;
import TestingSystem.Common.Group.GroupsDBTable;
import TestingSystem.Common.Test.TestDBTable;
import TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
@@ -9,7 +8,6 @@ import TestingSystem.DVM.Configuration.ConfigurationDBTable;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;