сообщение R204
This commit is contained in:
2024-04-13 20:09:26 +03:00
parent 97a26f7a0e
commit 5d09ae430c
12 changed files with 172 additions and 87 deletions

View File

@@ -35,22 +35,6 @@ import java.io.File;
import java.nio.file.Paths;
import java.util.*;
public class TestingServer extends RepositoryServer<TestsDatabase> {
/*
@Override
protected void beforePublishAction(DBObject object) throws Exception {
if (object instanceof Group) {
Group group = (Group) object;
if (db.groups.containsGroupWithDescription(group.description))
throw new RepositoryRefuseException("Уже существует группа с описанием " +
Utils.Brackets(group.description.toLowerCase()));
} else if (object instanceof Test) {
Test test = (Test) object;
if (db.tests.containsTestWithDescription(test.description))
throw new RepositoryRefuseException("Уже существует тест с описанием " +
Utils.Brackets(test.description.toLowerCase()));
}
}
*/
@Override
public void afterPublishAction(DBObject object) throws Exception {
if (object instanceof Test) {
@@ -141,12 +125,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
});
//------>>>
//------>>>
public static Timer checkTimer = null;
public static void TimerOn() {
System.out.println("timer on");
checkTimer = new Timer(Global.properties.CheckTestingIntervalSeconds * 1000, e -> {
// Pass_2021.passes.get(PassCode_2021.SynchronizeTestsTasks).Do();
Pass_2021.passes.get(PassCode_2021.ActualizePackages).Do();
});
checkTimer.start();
@@ -165,23 +147,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Test test;
int test_id;
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 DownloadTest:
Print("Отправить клиенту тест " + request.arg);
test_id = Integer.parseInt(request.arg);
@@ -258,11 +223,14 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить первые активные пакеты задач DVM на машинах");
GetFirstActiveDVMPackagesByMachines();
break;
case GetFirstActiveDVMPackageForMachineURL:
Print("Получить первый активный пакет задач DVM на машине с адресом");
GetFirstActiveDVMPackageForMachineURL();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
}
//->>
Pair<Group, Vector<File>> ConvertDirectoryToGroup(File src, LanguageName languageName, TestType
testType, Account account) throws Exception {
@@ -343,6 +311,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveDVMPackagesCopies();
}
private void GetFirstActiveDVMPackageForMachineURL() {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveDVMPackagesCopiesForMachineURL(request.arg);
}
private void GetFirstActiveSapforPackages() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveSapforPackagesCopies();

View File

@@ -27,6 +27,7 @@ import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.Serializable;
import java.nio.file.Paths;
import java.util.Comparator;
import java.util.LinkedHashMap;
@@ -232,4 +233,7 @@ public class TestsDatabase extends SQLiteDatabase {
}
}
}
public DVMPackage getFirstActiveDVMPackagesCopiesForMachineURL(String arg) {
return null;
}
}

View File

@@ -0,0 +1,71 @@
package TestingSystem.DVM;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.Machine.Machine;
import GlobalData.Machine.MachineType;
import GlobalData.User.User;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.io.Serializable;
import java.util.Vector;
public class MachineQueueSupervisor {
//--
Machine machine = null;
User user = null;
//--
DVMPackage testingPackage = null; //текущий пакет.
//--
protected int getSleepMillis() {
return 2000;
}
protected Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
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;
}
};
if (!pass.Do()) throw new PassException("Ошибка взаимодействия с сервером " + code_in);
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);
}
//--
public MachineQueueSupervisor(String... args) {
Global.isWindows = System.getProperty("os.name").startsWith("Windows");
//---
String machineAddress = args[0];
int machinePort = Integer.parseInt(args[1]);
String userName = args[2];
String userPassword = args[3];
String userWorkspace = args[4];
//---
machine = new Machine(machineAddress, machineAddress, machinePort, MachineType.Server);
user = new User(userName, userPassword, userWorkspace);
//---
}
public void Start() {
try {
testingPackage = null;
testingPackage = (DVMPackage) ServerCommand(ServerCode.GetFirstActiveDVMPackageForMachineURL, machine.getURL(), null);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
Utils.sleep(getSleepMillis());
}
}
}