no message

This commit is contained in:
2024-04-26 17:57:58 +03:00
parent c6e5036b9c
commit 830aa1a948
11 changed files with 209 additions and 161 deletions

11
.idea/workspace.xml generated
View File

@@ -7,17 +7,18 @@
</component> </component>
<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 afterPath="$PROJECT_DIR$/src/Repository/RepositoryClient.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingChecker.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/LocalMachineQueueSupervisor.java" afterDir="false" />
<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/Common/GlobalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/GlobalProperties.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Global.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcess.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcess.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcessSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcessSet.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/MachineQueueSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/MachineQueueSupervisor.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/MachineQueueSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/MachineQueueSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Pass_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Pass_2021.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" />

View File

@@ -140,6 +140,7 @@ public class Global {
Utils.CheckDirectory(DVMPackagesDirectory = Paths.get(Home, DVMPackages).toFile()); Utils.CheckDirectory(DVMPackagesDirectory = Paths.get(Home, DVMPackages).toFile());
Utils.CheckDirectory(SapforsDirectory = Paths.get(Home, "Sapfors").toFile()); Utils.CheckDirectory(SapforsDirectory = Paths.get(Home, "Sapfors").toFile());
Utils.CheckDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile()); Utils.CheckDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile());
//CheclAndClean через неделю
Utils.CheckDirectory(MachinesDirectory = Paths.get(Home, "Machines").toFile()); Utils.CheckDirectory(MachinesDirectory = Paths.get(Home, "Machines").toFile());
} }
public static void CreateLogAtComponentsPath() { public static void CreateLogAtComponentsPath() {

View File

@@ -715,12 +715,6 @@ public class Utils {
public static Process startScript(File scriptDirectory, File targetDirectory, String name, String scriptText, Map<String, String> envs) throws Exception { public static Process startScript(File scriptDirectory, File targetDirectory, String name, String scriptText, Map<String, String> envs) throws Exception {
//-> //->
File scriptFile = createScript(scriptDirectory, targetDirectory, name, scriptText); File scriptFile = createScript(scriptDirectory, targetDirectory, name, scriptText);
/*
File scriptFile=Paths.get(scriptDirectory.getAbsolutePath(), name + (Global.isWindows ? ".bat" : "")).toFile();
FileUtils.write(scriptFile, "cd " + Utils.DQuotes(targetDirectory.getAbsolutePath()) + "\n" + scriptText);
if (!scriptFile.setExecutable(true)) throw new PassException("Не удалось создать исполняемый файл для скрипта");
*/
//->>
ProcessBuilder procBuilder = new ProcessBuilder(scriptFile.getAbsolutePath()); ProcessBuilder procBuilder = new ProcessBuilder(scriptFile.getAbsolutePath());
procBuilder.directory(scriptDirectory); procBuilder.directory(scriptDirectory);
procBuilder.redirectErrorStream(true); procBuilder.redirectErrorStream(true);

View File

@@ -0,0 +1,75 @@
package Repository;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.io.FileWriter;
import java.io.Serializable;
import java.util.Date;
import java.util.Vector;
public abstract class RepositoryClient {
//--
protected int getSleepMillis() {
return 2000;
}
//---
protected boolean isPrintOn() {
return true;
}
protected void Print(String message) {
try {
if (isPrintOn()) {
FileWriter testLog = new FileWriter(getClass().getSimpleName() + "_Log.txt", true);
String dmessage = Utils.Brackets(new Date()) + " " + message;
System.out.println(dmessage);
testLog.write(dmessage + "\n");
testLog.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
//--
protected Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
System.out.println("Команда серверу " + code_in.toString() + "arg=" + arg + " object=" + object_in);
TestingSystemPass<Object> pass = new TestingSystemPass<Object>() {
@Override
public String getDescription() {
return "";
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(code_in, arg, object_in));
target = response.object;
}
@Override
protected boolean validate() {
return Log.isEmpty();
}
};
if (!pass.Do())
ServerConnectionError(code_in, pass.Log.toString());
return pass.target;
}
protected Object ServerCommand(ServerCode code_in, Serializable object_in) throws Exception {
return ServerCommand(code_in, "", object_in);
}
protected Object ServerCommand(ServerCode code_in) throws Exception {
return ServerCommand(code_in, "", null);
}
protected void ServerConnectionError(ServerCode code_in, String logText) throws Exception {
throw new PassException("Ошибка взаимодействия с сервером " + code_in);
}
public abstract void perform() throws Exception;
public void Perform(){
try {
perform();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
Utils.sleep(getSleepMillis());
}
}
}

View File

@@ -84,6 +84,7 @@ public enum ServerCode {
GetFirstsActiveDVMPackages, GetFirstsActiveDVMPackages,
Ping, Ping,
GetFirstActiveDVMPackageForMachineURL, GetFirstActiveDVMPackageForMachineURL,
GetServerName GetServerName,
StartNecessaryMachines
; ;
} }

View File

@@ -3,67 +3,16 @@ import Common.Constants;
import Common.Utils.Utils; import Common.Utils.Utils;
import Repository.EmailMessage; import Repository.EmailMessage;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill; import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
import Repository.RepositoryClient;
import Visual_DVM_2021.Passes.PassException; import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair; import javafx.util.Pair;
import java.io.FileWriter;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.Vector; import java.util.Vector;
public abstract class TestingPlanner<P extends TestingPackage> { public abstract class TestingPlanner<P extends TestingPackage> extends RepositoryClient {
protected P testingPackage; protected P testingPackage;
protected int getSleepMillis() {
return 2000;
}
//---
protected Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
System.out.println("Команда серверу " + code_in.toString() + "arg=" + arg + " object=" + object_in);
TestingSystemPass<Object> pass = new TestingSystemPass<Object>() {
@Override
public String getDescription() {
return "";
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(code_in, arg, object_in));
target = response.object;
}
@Override
protected boolean validate() {
return Log.isEmpty();
}
};
if (!pass.Do())
ServerConnectionError(code_in, pass.Log.toString());
return pass.target;
}
protected Object ServerCommand(ServerCode code_in, Serializable object_in) throws Exception {
return ServerCommand(code_in, "", object_in);
}
protected Object ServerCommand(ServerCode code_in) throws Exception {
return ServerCommand(code_in, "", null);
}
//---
protected boolean isPrintOn() {
return true;
}
protected void Print(String message) {
try {
if (isPrintOn()) {
FileWriter testLog = new FileWriter(getClass().getSimpleName() + "_Log.txt", true);
String dmessage = Utils.Brackets(new Date()) + " " + message;
System.out.println(dmessage);
testLog.write(dmessage + "\n");
testLog.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
//--- //---
void UpdatePackageState(TasksPackageState state_in) throws Exception { void UpdatePackageState(TasksPackageState state_in) throws Exception {
testingPackage.state = state_in; testingPackage.state = state_in;
@@ -111,9 +60,6 @@ public abstract class TestingPlanner<P extends TestingPackage> {
} }
protected void MachineConnectionError() { protected void MachineConnectionError() {
} }
protected void ServerConnectionError(ServerCode code_in, String logText) throws Exception {
throw new PassException("Ошибка взаимодействия с сервером " + code_in);
}
// --- // ---
protected void PerformPackage(TestingPackage package_in) throws Exception { protected void PerformPackage(TestingPackage package_in) throws Exception {
testingPackage = (P) package_in; testingPackage = (P) package_in;
@@ -187,17 +133,11 @@ public abstract class TestingPlanner<P extends TestingPackage> {
System.gc(); System.gc();
//-- //--
} }
public void Perform() { @Override
try { public void perform() throws Exception {
testingPackage = null; testingPackage = null;
Vector<P> activePackages = (Vector<P>) ServerCommand(getActivePackagesCode()); Vector<P> activePackages = (Vector<P>) ServerCommand(getActivePackagesCode());
// System.out.println(this.getClass().getSimpleName()+": found "+activePackages.size()+" active packages"); //Тесты:
for (P activePackage : activePackages) for (P activePackage : activePackages)
PerformPackage(activePackage); PerformPackage(activePackage);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
Utils.sleep(getSleepMillis());
}
} }
} }

View File

@@ -17,6 +17,7 @@ import TestingSystem.Common.Test.TestType;
import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill; import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json; import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTestingChecker;
import TestingSystem.SAPFOR.Json.SapforPackage_json; import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand; import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
@@ -118,55 +119,13 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
protected void startAdditionalThreads() { protected void startAdditionalThreads() {
testingThread.start(); testingThread.start();
} }
protected SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//-- DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
void startNecessaryMachines() { SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//todo. когда БД машин будет перенесена только на сервер. просто идти по всем машинам.
System.out.println("Проверка процессов машин...");
try {
Vector<String> aborted = new Vector<>();
for (MachineProcess process : db.machinesProcesses.Data.values()) {
if (process.isAborted()) {
aborted.add(process.id);
}
}
//---
for (String key : aborted) {
System.out.println(key + " остановлен");
db.machinesProcesses.Data.remove(key);
}
//---
System.out.println(db.machinesProcesses.size() + " активных процессов");
//--
LinkedHashMap<String, MachineProcess> processes_to_start = new LinkedHashMap<>();
//1. Получить список всех пакетов, которые активны, и взять из них машины.
for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
if (dvmPackage.state.isActive()) {
//-
if (!db.machinesProcesses.hasProcessForPackage(dvmPackage)) {
MachineProcess new_process = new MachineProcess(dvmPackage);
processes_to_start.put(new_process.getUniqueKey(), new_process);
}
}
}
System.out.println("Ожидающие запуск процессы: " + processes_to_start.size());
//запуск.
for (MachineProcess process : processes_to_start.values()) {
process.Start();
if (Utils.checkFileCreation(process.getStartedFile())) {
db.machinesProcesses.Data.put(process.id, process);
System.out.println(process.getUniqueKey()+" запущен");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
//-- //--
protected Thread testingThread = new Thread(() -> { protected Thread testingThread = new Thread(() -> {
while (true) { while (true) {
// DVMTestingPlanner.Perform(); dvmTestingChecker.Perform();
startNecessaryMachines();
sapforTestingPlanner.Perform(); sapforTestingPlanner.Perform();
System.out.println("sleep..."); System.out.println("sleep...");
Utils.sleep(5000); Utils.sleep(5000);
@@ -267,10 +226,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить информацию о задачах пакетов DVM"); Print("Получить информацию о задачах пакетов DVM");
GetDVMPackagesJson(); GetDVMPackagesJson();
break; break;
case GetFirstsActiveDVMPackages:
Print("Получить первые активные пакеты задач DVM на машинах");
GetFirstActiveDVMPackagesByMachines();
break;
case GetFirstActiveDVMPackageForMachineURL: case GetFirstActiveDVMPackageForMachineURL:
Print("Получить первый активный пакет задач DVM на машине с адресом"); Print("Получить первый активный пакет задач DVM на машине с адресом");
GetFirstActiveDVMPackageForMachineURL(); GetFirstActiveDVMPackageForMachineURL();
@@ -279,6 +234,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить имя сервера"); Print("Получить имя сервера");
GetServerName(); GetServerName();
break; break;
case StartNecessaryMachines:
Print("Проверка процессов машин");
StartNecessaryMachines();
break;
default: default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code); throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
} }
@@ -359,11 +318,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
for (Pair<Group, Vector<File>> p : groups) for (Pair<Group, Vector<File>> p : groups)
db.RefreshGroup(account, sapfor, p); db.RefreshGroup(account, sapfor, p);
} }
private void GetFirstActiveDVMPackagesByMachines() {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = new Vector<>();
// db.getFirstActiveDVMPackagesCopies(); //ЗАГЛУШКА. ЗА ПАКЕТЫ ДВМ ОТВЕЧАЕТ ОТДЕЛЬНЫЙ ПРОЦЕСС НА КАЖДУЮ МАШИНУ
}
private void GetFirstActiveSapforPackages() throws Exception { private void GetFirstActiveSapforPackages() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveSapforPackagesCopies(); response.object = db.getFirstActiveSapforPackagesCopies();
@@ -632,5 +586,46 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg); response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
} }
//----- //-----
void StartNecessaryMachines() {
Print("Проверка процессов машин...");
try {
Vector<String> aborted = new Vector<>();
for (MachineProcess process : db.machinesProcesses.Data.values()) {
if (process.isAborted()) {
aborted.add(process.id);
}
}
//---
for (String key : aborted) {
Print(key + " остановлен");
db.machinesProcesses.Data.remove(key);
}
//---
Print(db.machinesProcesses.size() + " активных процессов");
//--
LinkedHashMap<String, MachineProcess> processes_to_start = new LinkedHashMap<>();
//1. Получить список всех пакетов, которые активны, и взять из них машины.
for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
if (dvmPackage.state.isActive()) {
//-
if (!db.machinesProcesses.hasProcessForPackage(dvmPackage)) {
MachineProcess new_process = new MachineProcess(dvmPackage);
processes_to_start.put(new_process.getUniqueKey(), new_process);
}
}
}
Print("Ожидающие запуск процессы: " + processes_to_start.size());
//запуск.
for (MachineProcess process : processes_to_start.values()) {
process.Start();
if (Utils.checkFileCreation(process.getStartedFile())) {
db.machinesProcesses.Data.put(process.id, process);
Print(process.getUniqueKey()+" запущен");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
} }

View File

@@ -0,0 +1,9 @@
package TestingSystem.DVM;
import Repository.RepositoryClient;
import Repository.Server.ServerCode;
public class DVMTestingChecker extends RepositoryClient {
@Override
public void perform() throws Exception {
ServerCommand(ServerCode.StartNecessaryMachines);
}
}

View File

@@ -0,0 +1,41 @@
package TestingSystem.DVM;
import Repository.Server.ServerCode;
import TestingSystem.Common.TasksPackageState;
import TestingSystem.Common.TestingPlanner;
import TestingSystem.DVM.DVMPackage.DVMPackage;
public class LocalMachineQueueSupervisor extends TestingPlanner<DVMPackage> {
@Override
protected ServerCode getActivePackagesCode() {
return ServerCode.GetFirstActiveDVMPackageForMachineURL;
}
@Override
protected ServerCode getCheckIfNeedsKillCode() {
return ServerCode.DVMPackageNeedsKill;
}
@Override
protected TasksPackageState getStateAfterStart() {
return TasksPackageState.CompilationWorkspacesCreation;
}
@Override
protected void TestsSynchronize() throws Exception {
}
@Override
protected void PackageWorkspaceCreation() throws Exception {
}
@Override
protected void AnalyseResults() throws Exception {
}
@Override
protected void PackageStart() throws Exception {
}
@Override
protected boolean CheckNextState() throws Exception {
return false;
}
@Override
protected void DownloadResults() throws Exception {
}
@Override
protected void Kill() throws Exception {
}
}

View File

@@ -140,7 +140,7 @@ public class MachineQueueSupervisor extends TestingPlanner<DVMPackage> {
Print(reason); Print(reason);
File stateFile = new File(supervisorHome, Constants.ABORTED); File stateFile = new File(supervisorHome, Constants.ABORTED);
try { try {
FileUtils.writeStringToFile(stateFile,reason); FileUtils.writeStringToFile(stateFile, reason);
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@@ -477,30 +477,20 @@ public class MachineQueueSupervisor extends TestingPlanner<DVMPackage> {
packageLocalWorkspace = new File(Global.DVMPackagesDirectory, String.valueOf(testingPackage.id)); packageLocalWorkspace = new File(Global.DVMPackagesDirectory, String.valueOf(testingPackage.id));
} }
@Override @Override
public void Perform() { public void perform() throws Exception {
try {
Print("Проверка сервера..."); Print("Проверка сервера...");
String currentServerName = (String) ServerCommand(ServerCode.GetServerName); String currentServerName = (String) ServerCommand(ServerCode.GetServerName);
Print("имя текущего сервера " + Utils.Brackets(currentServerName)); Print("имя текущего сервера " + Utils.Brackets(currentServerName));
Print("имя сервера, создавшего нить " + Utils.Brackets(serverName)); Print("имя сервера, создавшего нить " + Utils.Brackets(serverName));
if (!serverName.equals(currentServerName)){ if (!serverName.equals(currentServerName)) {
Finalize("Несоответствующий сервер"); Finalize("Несоответствующий сервер");
} }
Print("Запрос активных пакетов для машины "+Utils.Brackets(machine.getURL())); Print("Запрос активных пакетов для машины " + Utils.Brackets(machine.getURL()));
testingPackage = null; testingPackage = null;
Vector<DVMPackage> activePackages = (Vector<DVMPackage>) ServerCommand(getActivePackagesCode(), machine.getURL(), null); Vector<DVMPackage> activePackages = (Vector<DVMPackage>) ServerCommand(getActivePackagesCode(), machine.getURL(), null);
if (activePackages.isEmpty()) if (activePackages.isEmpty())
Finalize("Не найдено активных пакетов для машины "+Utils.Brackets(machine.getURL())); Finalize("Не найдено активных пакетов для машины " + Utils.Brackets(machine.getURL()));
for (DVMPackage activePackage : activePackages) for (DVMPackage activePackage : activePackages)
PerformPackage(activePackage); PerformPackage(activePackage);
} catch (Exception ex) {
Print("Exception occured");
Print(ex.getMessage());
ex.printStackTrace();
} finally {
Print("sleep");
Utils.sleep(getSleepMillis());
}
} }
} }

View File

@@ -16,6 +16,7 @@ import org.apache.commons.io.FileUtils;
import java.io.File; import java.io.File;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.Date; import java.util.Date;
import java.util.Vector;
public class SapforTestingPlanner extends TestingPlanner<SapforPackage> { public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
File workspace; File workspace;
@Override @Override