Перенос кнопки синхронизации на панель тестирования. Исправление бага с формированием пакета.
This commit is contained in:
@@ -9,7 +9,8 @@ import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import javax.swing.*;
|
||||
public class GroupsMenuBar extends DataMenuBar {
|
||||
public GroupsMenuBar() {
|
||||
super("группы", PassCode_2021.SynchronizeTests, PassCode_2021.ConvertCorrectnessTests,
|
||||
super("группы",
|
||||
PassCode_2021.ConvertCorrectnessTests,
|
||||
PassCode_2021.PublishGroup,
|
||||
PassCode_2021.CreateGroupFromDirectory,
|
||||
PassCode_2021.CreateGroupFromFiles,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package TestingSystem.Common;
|
||||
import Common.Constants;
|
||||
import Common.Utils.Utils;
|
||||
import Repository.EmailMessage;
|
||||
import Repository.Server.ServerCode;
|
||||
@@ -135,14 +136,15 @@ public abstract class TestingPlanner<P extends TestingPackage> {
|
||||
} else {
|
||||
try {
|
||||
if (Connect()) {
|
||||
if ((boolean) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id)) {
|
||||
int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id);
|
||||
if (ptk_id!= Constants.Nan) {
|
||||
Print("package " + testingPackage.id + " NEEDS TO KILL");
|
||||
Kill();
|
||||
UpdatePackageState(TasksPackageState.Aborted);
|
||||
EmailPackage();
|
||||
ServerCommand(ServerCode.DeleteObjectByPK, ptk_id);
|
||||
} else {
|
||||
Session();
|
||||
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
|
||||
@@ -408,27 +408,25 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
}
|
||||
private void DVMPackageNeedsKill() {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = Constants.Nan;
|
||||
int packageId = (int) request.object;
|
||||
boolean res_ = false;
|
||||
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
|
||||
if ((packageToKill.packageId == packageId) && (packageToKill.type == 0)) {
|
||||
res_ = true;
|
||||
response.object = packageToKill.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
response.object = res_;
|
||||
}
|
||||
private void SapforPackageNeedsKill() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = Constants.Nan;
|
||||
int packageId = (int) request.object;
|
||||
boolean res_ = false;
|
||||
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
|
||||
if ((packageToKill.packageId == packageId) && (packageToKill.type == 1)) {
|
||||
res_ = true;
|
||||
response.object = packageToKill.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
response.object = res_;
|
||||
}
|
||||
private void DownloadDVMPackage() throws Exception {
|
||||
int dvmPackage_id = (int) request.object;
|
||||
@@ -468,6 +466,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
zipFolderPass.Do(workspace.getAbsolutePath(), results_zip.getAbsolutePath());
|
||||
if (results_zip.exists())
|
||||
response.object = Utils.packFile(results_zip);
|
||||
else throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом "+ sapforPackage_id);
|
||||
else
|
||||
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
}
|
||||
@Override
|
||||
public File getHomeDirectory() {
|
||||
return Global.PackagesDirectory;
|
||||
return Global.DVMPackagesDirectory;
|
||||
}
|
||||
public DVMPackage(DVMPackage p) {
|
||||
super(p);
|
||||
|
||||
@@ -41,7 +41,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
|
||||
@Override
|
||||
public void ShowCurrentObject() throws Exception {
|
||||
super.ShowCurrentObject();
|
||||
Global.testingServer.db.dvmRunTasks.ShowNoPackage();
|
||||
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(getCurrent());
|
||||
UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison();
|
||||
}
|
||||
@Override
|
||||
|
||||
@@ -116,7 +116,7 @@ public class DVMRunTask extends DVMTask {
|
||||
}
|
||||
public File getCompilationTaskWorkspace() {
|
||||
return Paths.get(
|
||||
Global.PackagesDirectory.getAbsolutePath(),
|
||||
Global.DVMPackagesDirectory.getAbsolutePath(),
|
||||
String.valueOf(dvm_package_id),
|
||||
"results",
|
||||
String.valueOf(dvmcompilationtask_id)
|
||||
|
||||
@@ -212,9 +212,6 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
|
||||
public void ShowNoPackage() {
|
||||
ClearUI();
|
||||
Data.clear();
|
||||
if (target != null) {
|
||||
target.destructor();
|
||||
target = null;
|
||||
}
|
||||
target = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public class DVMTask extends iDBObject {
|
||||
}
|
||||
public File getLocalWorkspace() {
|
||||
return
|
||||
Paths.get(Global.PackagesDirectory.getAbsolutePath(),
|
||||
Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
|
||||
String.valueOf(dvm_package_id),
|
||||
"results",
|
||||
String.valueOf(id)).toFile();
|
||||
|
||||
@@ -284,9 +284,11 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
|
||||
}
|
||||
//todo привязать это к настройкам, чтобы можно было включать/выключать удаление.
|
||||
//получили результат. теперь уничтожаем папку пакета на целевой машине.
|
||||
/*
|
||||
if ( user.connection.Exists(packageRemoteWorkspace)){
|
||||
user.connection.RMDIR(packageRemoteWorkspace.full_name);
|
||||
}
|
||||
*/
|
||||
}
|
||||
@Override
|
||||
protected void AnalyseResults() throws Exception {
|
||||
@@ -372,7 +374,7 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
|
||||
user = users.get(testingPackage.user_name);
|
||||
//--
|
||||
packageRemoteWorkspace = new RemoteFile(user.workspace + "/tests", String.valueOf(testingPackage.id), true);
|
||||
packageLocalWorkspace = new File(Global.PackagesDirectory, String.valueOf(testingPackage.id));
|
||||
packageLocalWorkspace = new File(Global.DVMPackagesDirectory, String.valueOf(testingPackage.id));
|
||||
}
|
||||
@Override
|
||||
protected boolean Connect() {
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
package TestingSystem.SAPFOR.Json;
|
||||
import GlobalData.Tasks.TaskState;
|
||||
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||
import TestingSystem.SAPFOR.SapforTask.MatchState;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageSummary;
|
||||
import TestingSystem.SAPFOR.SapforTasksPackage.UI.*;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public class SapforTasksPackage_json implements Serializable {
|
||||
@@ -18,4 +25,194 @@ public class SapforTasksPackage_json implements Serializable {
|
||||
//---
|
||||
@Expose
|
||||
public List<SapforTask> tasks = new Vector<>();
|
||||
//-
|
||||
public PackageSummary root = null;
|
||||
public PackageSummary comparison_root = null;
|
||||
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
|
||||
public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
|
||||
//-- задачи, отсортированные для сравнения.
|
||||
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
|
||||
//----
|
||||
//---------
|
||||
public void DropComparison() {
|
||||
comparison_root = null;
|
||||
comparisonSortedTasks.clear();
|
||||
for (SapforTask task : allTasks.values())
|
||||
task.match = MatchState.NotMatch;
|
||||
}
|
||||
public void SortTasks() {
|
||||
sortedTasks.clear();
|
||||
//--
|
||||
for (TaskState state : TaskState.values()) {
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
|
||||
sortedTasks.put(state, configuration_tasks);
|
||||
//--
|
||||
for (SapforTask task : tasks) {
|
||||
if (task.state.equals(state)) {
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
|
||||
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
|
||||
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
|
||||
} else {
|
||||
groups_tasks = new LinkedHashMap<>();
|
||||
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
|
||||
}
|
||||
Vector<SapforTask> tasks_ = null;
|
||||
if (groups_tasks.containsKey(task.group_description)) {
|
||||
tasks_ = groups_tasks.get(task.group_description);
|
||||
} else {
|
||||
tasks_ = new Vector<>();
|
||||
groups_tasks.put(task.group_description, tasks_);
|
||||
}
|
||||
tasks_.add(task);
|
||||
}
|
||||
}
|
||||
//--
|
||||
}
|
||||
//--
|
||||
for (TaskState state : TaskState.values()) {
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = sortedTasks.get(state);
|
||||
for (int configuration_id : configuration_tasks.keySet()) {
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
|
||||
for (String group : groups_tasks.keySet()) {
|
||||
Vector<SapforTask> tasks_ = groups_tasks.get(group);
|
||||
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SortTasksForComparison() {
|
||||
comparisonSortedTasks.clear();
|
||||
//раскидать задачи по состояниям, конфигам, группам
|
||||
for (MatchState matchState : MatchState.values()) {
|
||||
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
|
||||
comparisonSortedTasks.put(matchState, state_tasks);
|
||||
//--
|
||||
for (TaskState state : TaskState.values()) {
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
|
||||
state_tasks.put(state, configuration_tasks);
|
||||
//--
|
||||
for (SapforTask task : tasks) {
|
||||
if (task.match.equals(matchState) && task.state.equals(state)) {
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
|
||||
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
|
||||
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
|
||||
} else {
|
||||
groups_tasks = new LinkedHashMap<>();
|
||||
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
|
||||
}
|
||||
Vector<SapforTask> tasks = null;
|
||||
if (groups_tasks.containsKey(task.group_description)) {
|
||||
tasks = groups_tasks.get(task.group_description);
|
||||
} else {
|
||||
tasks = new Vector<>();
|
||||
groups_tasks.put(task.group_description, tasks);
|
||||
}
|
||||
tasks.add(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
//--
|
||||
}
|
||||
//рассортировать задачи в группах по ключам.
|
||||
for (MatchState matchState : MatchState.values()) {
|
||||
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = comparisonSortedTasks.get(matchState);
|
||||
for (TaskState state : TaskState.values()) {
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = state_tasks.get(state);
|
||||
for (int configuration_id : configuration_tasks.keySet()) {
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
|
||||
for (String group : groups_tasks.keySet()) {
|
||||
Vector<SapforTask> tasks_ = groups_tasks.get(group);
|
||||
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void buildTree(SapforPackage package_in) {
|
||||
root = new PackageSummary();
|
||||
//---
|
||||
for (TaskState state : sortedTasks.keySet()) {
|
||||
//--
|
||||
StateSummary stateSummary = new StateSummary(state);
|
||||
//--
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
|
||||
for (int configuration_id : tasksByConfigurations.keySet()) {
|
||||
//--
|
||||
DefaultMutableTreeNode configurationNode = null;
|
||||
//--
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = tasksByConfigurations.get(configuration_id);
|
||||
for (String group : groups_tasks.keySet()) {
|
||||
//--
|
||||
GroupSummary groupSummary = new GroupSummary(group);
|
||||
//--
|
||||
for (SapforTask task : groups_tasks.get(group)) {
|
||||
//--
|
||||
stateSummary.count++;
|
||||
root.count++;
|
||||
//--
|
||||
if (configurationNode == null) {
|
||||
configurationNode = new ConfigurationSummary(configuration_id, task);
|
||||
}
|
||||
//--
|
||||
groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), String.valueOf(configuration_id))));
|
||||
}
|
||||
if (configurationNode != null)
|
||||
configurationNode.add(groupSummary);
|
||||
}
|
||||
stateSummary.add(configurationNode);
|
||||
}
|
||||
if (stateSummary.count > 0) {
|
||||
root.add(stateSummary);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void buildComparisonTree(SapforPackage package_in) {
|
||||
comparison_root = new PackageSummary();
|
||||
for (MatchState match_state : comparisonSortedTasks.keySet()) {
|
||||
//--
|
||||
MatchesSummary matchesSummary = new MatchesSummary(match_state);
|
||||
//---
|
||||
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> task_states = comparisonSortedTasks.get(match_state);
|
||||
//---
|
||||
for (TaskState state : task_states.keySet()) {
|
||||
//--
|
||||
StateSummary stateSummary = new StateSummary(state);
|
||||
//--
|
||||
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = task_states.get(state);
|
||||
for (int configuration_id : tasksByConfigurations.keySet()) {
|
||||
//--
|
||||
DefaultMutableTreeNode configurationNode = null;
|
||||
//--
|
||||
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = tasksByConfigurations.get(configuration_id);
|
||||
for (String group : groups_tasks.keySet()) {
|
||||
//--
|
||||
GroupSummary groupSummary = new GroupSummary(group);
|
||||
//--
|
||||
for (SapforTask task : groups_tasks.get(group)) {
|
||||
//--
|
||||
stateSummary.count++;
|
||||
matchesSummary.count++;
|
||||
comparison_root.count++;
|
||||
//--
|
||||
if (configurationNode == null) {
|
||||
configurationNode = new ConfigurationSummary(configuration_id, task);
|
||||
}
|
||||
//--
|
||||
groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), String.valueOf(configuration_id))));
|
||||
}
|
||||
if (configurationNode != null)
|
||||
configurationNode.add(groupSummary);
|
||||
}
|
||||
stateSummary.add(configurationNode);
|
||||
}
|
||||
if (stateSummary.count > 0) {
|
||||
matchesSummary.add(stateSummary);
|
||||
}
|
||||
}
|
||||
//---
|
||||
if (matchesSummary.count > 0) {
|
||||
comparison_root.add(matchesSummary);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user