сохранение и публикация файлов вывода при установке сапфора на сервере.

возможность указать автоматическую сборку сапфора после публикации компонента.
This commit is contained in:
2023-11-14 00:56:05 +03:00
parent 362d6b56ee
commit 38eea01f5c
14 changed files with 102 additions and 69 deletions

View File

@@ -10,6 +10,7 @@ import GlobalData.Tasks.TaskState;
import GlobalData.User.User;
import ProjectData.LanguageName;
import ProjectData.Project.db_project_info;
import Repository.EmailMessage;
import Repository.RepositoryRefuseException;
import Repository.RepositoryServer;
import Repository.Server.ServerCode;
@@ -39,6 +40,7 @@ import org.apache.commons.io.FileUtils;
import javax.swing.*;
import java.io.File;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Vector;
@@ -313,51 +315,25 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
return (SapforTasksResults_json) Utils.jsonFromFile(
results_file, SapforTasksResults_json.class);
}
//надо в другое место.
/*
public Vector<String> CompareSapforPackages(SapforTasksPackage package1, SapforTasksPackage package2) throws Exception {
Vector<String> comparisonLog = new Vector<>();
// чтобы сравнивать. должен быть идентичный список тестов. (без учета последовательности)
// идентичный набор проходов (с учетом последовательности)
//идентичный набор флагов (?) без учета последовательности.
// то есть должны отличаться только тестируемые версии САПФОР.
SapforTasksResults_json results1_json = getSapforPackageResults(package1);
SapforTasksResults_json results2_json = getSapforPackageResults(package2);
if (results1_json.tasks.size() != results2_json.tasks.size()) {
comparisonLog.add("Количество задач в пакетах не совпадает.");
comparisonLog.add(package1.id + ": " + results1_json.tasks.size() + "/" + package2.id + ": " + results2_json.tasks.size());
return comparisonLog;
}
//подходит если все задачи из первого пакета содержатся во втором, и размер одинаковый.
Vector<SapforTask> sortedTasks2 = new Vector<>();
for (SapforTask task1 : results1_json.tasks) {
//на
boolean match = false;
for (SapforTask task2 : results2_json.tasks) {
if (task1.isComparable(task2)) {
match = true;
sortedTasks2.add(task2);
break;
}
}
if (!match) {
comparisonLog.add("Найдена не совпадающая задача.");
return comparisonLog;
}
}
for (SapforTask task1 : results1_json.tasks) {
for (SapforTask task2 : sortedTasks2) {
task1.Compare(task2, comparisonLog);
}
}
return comparisonLog;
}
*/
@Override
protected void Session() throws Exception {
DBObject dbObject = null;
Test test = null;
switch (code) {
case EmailSapforAssembly:
Print("Сообщить о сборке SAPFOR для пользователя " + request.arg);
Vector<String> assembly_info = (Vector<String>) request.object;
File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile();
File err = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.err_file).toFile();
Vector<String> targets = new Vector<>(Arrays.asList(Global.admins_mails));
EmailMessage message = new EmailMessage(
"Выполнена сборка системы SAPFOR",
"Версия: " + assembly_info.get(0) + "\n" + "Статус: " + assembly_info.get(1),
targets
);
Email(message, out, err);
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case PublishSapforPackageTasks:
Print("Опубликовать задачи SAPFOR для пользователя " + request.arg);
SetCurrentAccountDB(request.arg);