промежуточный. встраиваю тестирование сапфор в существующий планировщик. пока есть баги.

This commit is contained in:
2023-10-13 02:06:46 +03:00
parent c69202d72c
commit 81d6330660
6 changed files with 74 additions and 91 deletions

View File

@@ -1,4 +1,5 @@
package TestingSystem;
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.Machine.Machine;
@@ -148,7 +149,7 @@ public class TestingPlanner {
void emailPass(String email_in) {
email = email_in;
try {
System.out.println(email+" testing planner starts...");
// System.out.println(email+" testing planner starts...");
Pair<TasksPackage, LinkedHashMap<Long, TestCompilationTask>> p = (Pair<TasksPackage, LinkedHashMap<Long, TestCompilationTask>>) ServerCommand(ServerCode.GetFirstActiveAccountPackage);
sapforTasksPackage = (SapforTasksPackage) ServerCommand(ServerCode.GetFirstActiveSapforTasksPackage);
tasksPackage = null;
@@ -156,7 +157,7 @@ public class TestingPlanner {
tasksPackage = p.getKey();
packageTasks = p.getValue();
if (tasksPackage != null) {
System.out.println("found dvm package: "+sapforTasksPackage.id);
// System.out.println("found dvm package: "+sapforTasksPackage.id);
String machine_url = tasksPackage.machine_address + ":" + tasksPackage.machine_port;
if (!machines.containsKey(machine_url))
machines.put(machine_url, new Machine(
@@ -187,7 +188,13 @@ public class TestingPlanner {
}
}else
if (sapforTasksPackage!=null){
System.out.println("found sapfor package: "+sapforTasksPackage.id);
System.out.println("found sapfor package: "+sapforTasksPackage.id+" state = "+sapforTasksPackage.state);
try {
PerformSapforPackage();
} catch (Exception ex) {
Print("Исключение при тестировании SAPROR");
Print(ex.getMessage());
}
}
} catch (Exception ex) {
Global.Log.PrintException(ex);
@@ -202,4 +209,61 @@ public class TestingPlanner {
public String getPlanner() {
return String.join("/", user.workspace, ConnectionPass.modules, ConnectionPass.planner);
}
//--
void UpdateSapforPackage(SapforTasksPackage package_in) throws Exception {
package_in.ChangeDate = new Date().getTime();
ServerCommand(ServerCode.EditAccountObject, package_in);
//---------------
/*
if ((package_in.needsEmail == 1) &&
(package_in.state.equals(TasksPackageState.PackageStart) ||
(package_in.state.equals(TasksPackageState.Done)))) {
EmailMessage message = new EmailMessage();
message.subject = "Состояние пакета задач " + Utils.Brackets(package_in.id) + " изменилось на " + Utils.Brackets(package_in.state.getDescription());
message.text = package_in.summary;
message.targets.add(email);
ServerCommand(ServerCode.Email, message);
}
*/
}
void SapforPackageStart() throws Exception {
System.out.println("start sapfor package "+sapforTasksPackage.id);
File workspace = new File(sapforTasksPackage.workspace);
File script = new File(sapforTasksPackage.workspace, "start");
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
procBuilder.directory(workspace);
procBuilder.start();
sapforTasksPackage.state = TasksPackageState.RunningExecution;
UpdateSapforPackage(sapforTasksPackage);
System.out.println("done");
}
void CheckSapforPackageState() throws Exception {
System.out.println("check sapfor package "+sapforTasksPackage.id);
File done = new File(sapforTasksPackage.workspace, Constants.DONE);
File aborted = new File(sapforTasksPackage.workspace, Constants.ABORTED);
if (done.exists()) {
sapforTasksPackage.state = TasksPackageState.Done;
UpdateSapforPackage(sapforTasksPackage);
System.out.println("package done");
} else if (aborted.exists()) {
sapforTasksPackage.state = TasksPackageState.Aborted;
UpdateSapforPackage(sapforTasksPackage);
System.out.println("package aborted");
}else {
System.out.println("package running");
}
}
//--
public void PerformSapforPackage() throws Exception {
switch (sapforTasksPackage.state) {
case RunningPreparation:
SapforPackageStart();
break;
case RunningExecution:
CheckSapforPackageState();
break;
default:
break;
}
}
}