кнопка удаления пакетов SAPFOR и их результатов.

This commit is contained in:
2023-10-18 14:05:51 +03:00
parent d19307ac2b
commit b7a0445f39
11 changed files with 116 additions and 75 deletions

11
.idea/workspace.xml generated
View File

@@ -8,9 +8,15 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/SapforTasksPackagesBar/SapforTasksPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/SapforTasksPackagesBar/SapforTasksPackagesBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TestingBar/TestingBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TestingBar/TestingBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/PackageModeSupervisor/PackageModeSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/PackageModeSupervisor/PackageModeSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/TestsSupervisor_2022/TestsSupervisor_2022.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestsSupervisor_2022/TestsSupervisor_2022.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortSapforTaskPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortSapforTaskPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -80,7 +86,6 @@
<property name="JavaClassFindUsagesOptions.isDerivedClasses" value="true" /> <property name="JavaClassFindUsagesOptions.isDerivedClasses" value="true" />
<property name="JavaClassFindUsagesOptions.isFieldsUsages" value="true" /> <property name="JavaClassFindUsagesOptions.isFieldsUsages" value="true" />
<property name="JavaClassFindUsagesOptions.isMethodsUsages" value="true" /> <property name="JavaClassFindUsagesOptions.isMethodsUsages" value="true" />
<property name="OverrideImplement.combined" value="false" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />

View File

@@ -31,6 +31,9 @@ public class Constants {
// public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль. // public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль.
public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения. public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения.
//-- //--
public static final String package_json = "package_json";
public static final String results_json = "results_json";
//--
public static final PassCode_2021[] terminalSapforTestingCodes = new PassCode_2021[]{ public static final PassCode_2021[] terminalSapforTestingCodes = new PassCode_2021[]{
PassCode_2021.CreateParallelVariants, PassCode_2021.CreateParallelVariants,
PassCode_2021.SPF_SharedMemoryParallelization, PassCode_2021.SPF_SharedMemoryParallelization,

View File

@@ -3,6 +3,9 @@ import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
public class SapforTasksPackagesBar extends DataMenuBar { public class SapforTasksPackagesBar extends DataMenuBar {
public SapforTasksPackagesBar() { public SapforTasksPackagesBar() {
super("пакеты задач", PassCode_2021.AbortSapforTaskPackage); super("пакеты задач",
PassCode_2021.AbortSapforTaskPackage,
PassCode_2021.DeleteSapforTasksPackage
);
} }
} }

View File

@@ -32,7 +32,7 @@ public class TestingBar extends VisualiserMenuBar {
//-- //--
add(new MenuBarButton() { add(new MenuBarButton() {
{ {
setText("Оповещение по email"); setText("оповещение по email");
setToolTipText("Оповещение о прогрессе выполнения пакета тестов"); setToolTipText("Оповещение о прогрессе выполнения пакета тестов");
Mark(); Mark();
addActionListener(e -> { addActionListener(e -> {

View File

@@ -17,7 +17,7 @@ public class PackageModeSupervisor extends ThreadsPlanner {
SapforTasksResults_json results_json = new SapforTasksResults_json(); SapforTasksResults_json results_json = new SapforTasksResults_json();
public PackageModeSupervisor() throws Exception { public PackageModeSupervisor() throws Exception {
super(2000); super(2000);
package_json = (SapforTasksPackage_json) Utils.jsonFromFile(new File(Global.Home, "package_json"), SapforTasksPackage_json.class); package_json = (SapforTasksPackage_json) Utils.jsonFromFile(new File(Global.Home, Constants.package_json), SapforTasksPackage_json.class);
Date startDate = new Date(); Date startDate = new Date();
results_json.StartDate = startDate.getTime(); results_json.StartDate = startDate.getTime();
File started = new File(Constants.STARTED); File started = new File(Constants.STARTED);
@@ -46,7 +46,7 @@ public class PackageModeSupervisor extends ThreadsPlanner {
results_json.EndDate = new Date().getTime(); results_json.EndDate = new Date().getTime();
//записать результаты всех задач. //записать результаты всех задач.
try { try {
Utils.jsonToFile(results_json, new File(Global.Home, "results_json")); Utils.jsonToFile(results_json, new File(Global.Home, Constants.results_json));
//тут же и строить версии. //тут же и строить версии.
Utils.deleteFilesByExtensions(new File(Global.Home), "proj", "dep"); //Потом txt тоже добавить. Utils.deleteFilesByExtensions(new File(Global.Home), "proj", "dep"); //Потом txt тоже добавить.
FileUtils.writeStringToFile(new File(Constants.DONE), ""); FileUtils.writeStringToFile(new File(Constants.DONE), "");

View File

@@ -112,7 +112,7 @@ public class SapforTasksPackageSupervisor {
} }
//-->> //-->>
sapforTasksPackage.state = TasksPackageState.RunningExecution; sapforTasksPackage.state = TasksPackageState.RunningExecution;
planner.UpdateSapforPackage(sapforTasksPackage); planner.UpdateSapforPackage();
System.out.println("done"); System.out.println("done");
} }
void CheckPackageState() throws Exception { void CheckPackageState() throws Exception {
@@ -121,11 +121,11 @@ public class SapforTasksPackageSupervisor {
File aborted = new File(sapforTasksPackage.workspace, Constants.ABORTED); File aborted = new File(sapforTasksPackage.workspace, Constants.ABORTED);
if (done.exists()) { if (done.exists()) {
sapforTasksPackage.state = TasksPackageState.Done; sapforTasksPackage.state = TasksPackageState.Done;
planner.UpdateSapforPackage(sapforTasksPackage); planner.UpdateSapforPackage();
System.out.println("package done"); System.out.println("package done");
} else if (aborted.exists()) { } else if (aborted.exists()) {
sapforTasksPackage.state = TasksPackageState.Aborted; sapforTasksPackage.state = TasksPackageState.Aborted;
planner.UpdateSapforPackage(sapforTasksPackage); planner.UpdateSapforPackage();
System.out.println("package aborted"); System.out.println("package aborted");
} else { } else {
System.out.println("package running"); System.out.println("package running");
@@ -157,13 +157,13 @@ public class SapforTasksPackageSupervisor {
System.out.println("PACKAGE " + sapforTasksPackage.id + " NEEDS TO KILL"); System.out.println("PACKAGE " + sapforTasksPackage.id + " NEEDS TO KILL");
killPackage(); killPackage();
sapforTasksPackage.state = TasksPackageState.Aborted; sapforTasksPackage.state = TasksPackageState.Aborted;
planner.UpdateSapforPackage(sapforTasksPackage); planner.UpdateSapforPackage();
} else { } else {
switch (sapforTasksPackage.state) { switch (sapforTasksPackage.state) {
case TestsSynchronize: case TestsSynchronize:
TestsSynchronize(); TestsSynchronize();
sapforTasksPackage.state = TasksPackageState.RunningPreparation; sapforTasksPackage.state = TasksPackageState.RunningPreparation;
planner.UpdateSapforPackage(sapforTasksPackage); planner.UpdateSapforPackage();
break; break;
case RunningPreparation: case RunningPreparation:
PackageStart(); PackageStart();

View File

@@ -1,4 +1,5 @@
package TestingSystem; package TestingSystem;
import Common.Constants;
import Common.Global; import Common.Global;
import Common.Utils.Utils; import Common.Utils.Utils;
import GlobalData.Machine.Machine; import GlobalData.Machine.Machine;
@@ -6,6 +7,8 @@ import GlobalData.User.User;
import Repository.EmailMessage; import Repository.EmailMessage;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021; import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.Json.SapforTasksPackage_json;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage; import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import SapforTestingSystem.SapforTasksPackageSupervisor.SapforTasksPackageSupervisor; import SapforTestingSystem.SapforTasksPackageSupervisor.SapforTasksPackageSupervisor;
import TestingSystem.Tasks.TestCompilationTask; import TestingSystem.Tasks.TestCompilationTask;
@@ -42,16 +45,18 @@ public class TestingPlanner {
task_in.ChangeDate = new Date().getTime(); task_in.ChangeDate = new Date().getTime();
ServerCommand(ServerCode.EditAccountObject, task_in); ServerCommand(ServerCode.EditAccountObject, task_in);
} }
public void UpdatePackage(TasksPackage package_in) throws Exception { public void UpdatePackage() throws Exception {
package_in.ChangeDate = new Date().getTime(); tasksPackage.ChangeDate = new Date().getTime();
ServerCommand(ServerCode.EditAccountObject, package_in); ServerCommand(ServerCode.EditAccountObject, tasksPackage);
//--------------- //---------------
if ((package_in.needsEmail == 1) && if ((tasksPackage.needsEmail == 1) &&
(package_in.state.equals(TasksPackageState.PackageStart) || (tasksPackage.state.equals(TasksPackageState.PackageStart) ||
(package_in.state.equals(TasksPackageState.Done)))) { (tasksPackage.state.equals(TasksPackageState.Done)) ||
(tasksPackage.state.equals(TasksPackageState.Aborted))
)) {
EmailMessage message = new EmailMessage(); EmailMessage message = new EmailMessage();
message.subject = "Состояние пакета задач " + Utils.Brackets(package_in.id) + " изменилось на " + Utils.Brackets(package_in.state.getDescription()); message.subject = "Состояние пакета задач " + Utils.Brackets(tasksPackage.id) + " изменилось на " + Utils.Brackets(tasksPackage.state.getDescription());
message.text = package_in.summary; message.text = tasksPackage.summary;
message.targets.add(email); message.targets.add(email);
ServerCommand(ServerCode.Email, message); ServerCommand(ServerCode.Email, message);
} }
@@ -206,17 +211,44 @@ public class TestingPlanner {
return String.join("/", user.workspace, ConnectionPass.modules, ConnectionPass.planner); return String.join("/", user.workspace, ConnectionPass.modules, ConnectionPass.planner);
} }
//-- //--
public void UpdateSapforPackage(SapforTasksPackage package_in) throws Exception { public void UpdateSapforPackage() throws Exception {
package_in.ChangeDate = new Date().getTime(); sapforTasksPackage.ChangeDate = new Date().getTime();
ServerCommand(ServerCode.EditAccountObject, package_in); EmailMessage message = null;
if ((package_in.needsEmail == 1) && ServerCommand(ServerCode.EditAccountObject, sapforTasksPackage);
(package_in.state.equals(TasksPackageState.RunningExecution) || if (sapforTasksPackage.needsEmail == 1) {
(package_in.state.equals(TasksPackageState.Done)))) { switch (sapforTasksPackage.state) {
EmailMessage message = new EmailMessage(); case RunningExecution:
message.subject = "Состояние пакета задач SAPFOR" + Utils.Brackets(package_in.id) + " изменилось на " + Utils.Brackets(package_in.state.getDescription()); case Aborted:
// message.text = package_in.summary; message = new EmailMessage();
message.subject = "Состояние пакета задач SAPFOR" + Utils.Brackets(sapforTasksPackage.id) + " изменилось на " + Utils.Brackets(sapforTasksPackage.state.getDescription());
break;
case Done:
//результаты.
message = new EmailMessage();
message.subject = "Состояние пакета задач SAPFOR" + Utils.Brackets(sapforTasksPackage.id) + " изменилось на " + Utils.Brackets(sapforTasksPackage.state.getDescription());
message.text = AnalyseSapforPackageResults();
break;
default:
break;
}
}
if (message != null) {
message.targets.add(email); message.targets.add(email);
ServerCommand(ServerCode.Email, message); ServerCommand(ServerCode.Email, message);
} }
} }
//--
public String AnalyseSapforPackageResults() throws Exception {
String result = "";
Vector<String> result_lines = new Vector<>();
File results_json_file = new File(sapforTasksPackage.workspace, Constants.results_json);
if (results_json_file.exists()) {
SapforTasksPackage_json results_json = (SapforTasksPackage_json) Utils.jsonFromFile(results_json_file, SapforTasksPackage_json.class);
result = String.join("\n", result_lines);
result_lines.add("");
LinkedHashMap<String, Vector<SapforTask>> tasksByConfigurations = new LinkedHashMap<>();
}
return result;
}
} }

View File

@@ -182,11 +182,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
) )
); );
} else if (object instanceof SapforTasksPackage) { } else if (object instanceof SapforTasksPackage) {
Utils.forceDeleteWithCheck( File workspace = new File(
new File( ((SapforTasksPackage) object).workspace
((SapforTasksPackage) object).workspace
)
); );
System.out.println(Utils.Brackets(workspace.getAbsolutePath()));
Utils.forceDeleteWithCheck(workspace);
} }
} }
@Override @Override

View File

@@ -53,23 +53,23 @@ public class TestsSupervisor_2022 {
connection.ShellCommand("kill -9 " + tasksPackage.pid); connection.ShellCommand("kill -9 " + tasksPackage.pid);
} }
tasksPackage.state = TasksPackageState.Aborted; tasksPackage.state = TasksPackageState.Aborted;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
}else { }else {
switch (tasksPackage.state) { switch (tasksPackage.state) {
case TestsSynchronize: case TestsSynchronize:
TestsSynchronize(); TestsSynchronize();
tasksPackage.state = TasksPackageState.PackageWorkspaceCreation; tasksPackage.state = TasksPackageState.PackageWorkspaceCreation;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
break; break;
case PackageWorkspaceCreation: case PackageWorkspaceCreation:
PackageWorkspaceCreation(); PackageWorkspaceCreation();
tasksPackage.state = TasksPackageState.PackageStart; tasksPackage.state = TasksPackageState.PackageStart;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
break; break;
case PackageStart: case PackageStart:
PackageStart(); PackageStart();
tasksPackage.state = TasksPackageState.CompilationWorkspacesCreation; tasksPackage.state = TasksPackageState.CompilationWorkspacesCreation;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
break; break;
case CompilationWorkspacesCreation: case CompilationWorkspacesCreation:
case CompilationPreparation: case CompilationPreparation:
@@ -82,12 +82,12 @@ public class TestsSupervisor_2022 {
case RunningEnd: case RunningEnd:
DownloadResults(); DownloadResults();
tasksPackage.state = TasksPackageState.Analysis; tasksPackage.state = TasksPackageState.Analysis;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
break; break;
case Analysis: case Analysis:
AnalyseResults(); AnalyseResults();
tasksPackage.state = TasksPackageState.Done; tasksPackage.state = TasksPackageState.Done;
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
break; break;
default: default:
break; break;
@@ -167,7 +167,7 @@ public class TestsSupervisor_2022 {
System.out.println(fileName + " last file"); System.out.println(fileName + " last file");
tasksPackage.state = TasksPackageState.valueOf(files.get(files.size() - 1).getFilename()); tasksPackage.state = TasksPackageState.valueOf(files.get(files.size() - 1).getFilename());
if (tasksPackage.state != oldState) if (tasksPackage.state != oldState)
planner.UpdatePackage(tasksPackage); planner.UpdatePackage();
} }
} }
public void DownloadResults() throws Exception { public void DownloadResults() throws Exception {

View File

@@ -25,6 +25,7 @@ public class AbortSapforTaskPackage extends TestingSystemPass<SapforTasksPackage
switch (target.state) { switch (target.state) {
case Done: case Done:
case Aborted: case Aborted:
Log.Writeln_("Пакет уже завершен.");
break; break;
default: default:
TasksPackageToKill tasksPackageToKill = new TasksPackageToKill(); TasksPackageToKill tasksPackageToKill = new TasksPackageToKill();

View File

@@ -1,54 +1,51 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Database.Database; import Common.Current;
import Common.Global;
import Common.Utils.Utils;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021; import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage; import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import Visual_DVM_2021.Passes.DeleteObjectPass; import TestingSystem.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass; import Visual_DVM_2021.Passes.TestingSystemPass;
import java.io.File; import java.util.Vector;
public class DeleteSapforTasksPackage extends DeleteObjectPass<SapforTasksPackage> { public class DeleteSapforTasksPackage extends TestingSystemPass<SapforTasksPackage> {
public DeleteSapforTasksPackage() { @Override
super(SapforTasksPackage.class); public String getIconPath() {
return "/icons/Delete.png";
} }
@Override @Override
protected Database getDb() { public String getButtonText() {
return Global.testingServer.db; return "";
} }
@Override @Override
protected void performPreparation() throws Exception { protected boolean canStart(Object... args) throws Exception {
/* if (Current.Check(Log, Current.SapforTasksPackage)) {
if (Current.hasUI()&&Current.HasSapforTasksPackage()) { target = Current.getSapforTasksPackage();
UI.getMainWindow().getTestingWindow().RemoveSapforPackageFromComparison(); if (!target.state.equals(TasksPackageState.Done) && !target.state.equals(TasksPackageState.Aborted)) {
Log.Writeln_("Нельзя удалить активный пакет!");
} else
return true;
} }
*/ return false;
} }
@Override @Override
protected void body() throws Exception { protected void ServerAction() throws Exception {
super.body(); Vector<SapforTasksPackage> vector = new Vector<>();
Utils.delete_with_check(new File(target.workspace)); vector.add(target);
Command(new ServerExchangeUnit_2021(ServerCode.DeleteAccountObjects, Current.getAccount().email, vector));
} }
@Override @Override
protected void performDone() throws Exception { protected void performDone() throws Exception {
super.performDone(); super.performDone();
Pass_2021 serverPass = new TestingSystemPass<SapforTasksPackage>() { passes.get(PassCode_2021.SynchronizeTestsTasks).Do();
@Override
public String getDescription() {
return "Удаление пакета задач SAPFOR с сервера";
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = (SapforTasksPackage) args[0];
return true;
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DeleteObject, "", target));
}
};
serverPass.Do(target);
} }
} }
/*
@Override
protected void performPreparation() throws Exception {
if (Current.hasUI()&&Current.HasSapforTasksPackage()) {
UI.getMainWindow().getTestingWindow().RemoveSapforPackageFromComparison();
}
*/