83 lines
3.5 KiB
Java
83 lines
3.5 KiB
Java
package Visual_DVM_2021.Passes.All;
|
|
import Common.Constants;
|
|
import Common.Current;
|
|
import Common.Database.Database;
|
|
import Common.Global;
|
|
import Common.UI.UI;
|
|
import Common.Utils.Utils;
|
|
import GlobalData.Compiler.CompilerType;
|
|
import GlobalData.Machine.MachineType;
|
|
import GlobalData.User.UserState;
|
|
import TestingSystem.DVM.DVMPackage.DVMPackage;
|
|
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
|
|
import TestingSystem.DVM.TasksPackage.TasksPackage;
|
|
import TestingSystem.DVM.TasksPackage.TasksPackageState;
|
|
import Visual_DVM_2021.Passes.AddObjectPass;
|
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
|
|
|
import java.util.Date;
|
|
public class AddDVMPackage extends AddObjectPass<DVMPackage> {
|
|
public AddDVMPackage() {
|
|
super(DVMPackage.class);
|
|
}
|
|
@Override
|
|
protected Database getDb() {
|
|
return Global.testingServer.db;
|
|
}
|
|
@Override
|
|
protected boolean canStart(Object... args) throws Exception {
|
|
if (!Current.getAccount().CheckRegistered(Log)) {
|
|
return false;
|
|
}
|
|
if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler)) {
|
|
if (!Current.getMachine().type.equals(MachineType.Server)) {
|
|
Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
|
|
return false;
|
|
}
|
|
if (!Current.getUser().state.equals(UserState.ready_to_work)) {
|
|
Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!");
|
|
return false;
|
|
}
|
|
if (!Current.getCompiler().type.equals(CompilerType.dvm)) {
|
|
Log.Writeln_("Тестирование поддерживается только для DVM компиляторов.");
|
|
return false;
|
|
}
|
|
if (!Current.getCompiler().versionLoaded)
|
|
passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
|
|
//-
|
|
for (DVMPackage dvmPackage: Global.testingServer.db.dvmPackages.Data.values()){
|
|
if (dvmPackage.state.equals(TasksPackageState.Draft)){
|
|
Log.Writeln_("Может существовать только один пакет, готовящийся к публикации.");
|
|
return false;
|
|
}
|
|
}
|
|
//--
|
|
target = new DVMPackage();
|
|
target.genName();
|
|
|
|
//-
|
|
target.sender_name=Current.getAccount().name;
|
|
target.sender_address = Current.getAccount().email;
|
|
//-
|
|
target.machine_name = Current.getMachine().name;
|
|
target.machine_address = Current.getMachine().address;
|
|
target.machine_port = Current.getMachine().port;
|
|
//-
|
|
target.user_name = Current.getUser().login;
|
|
target.user_password = Current.getUser().password;
|
|
target.user_workspace = Current.getUser().workspace;
|
|
target.drv = Current.getCompiler().call_command;
|
|
target.version = Current.getCompiler().getVersionInfo();
|
|
target.kernels = Global.properties.TestingKernels;
|
|
target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
|
|
//--
|
|
target.package_json = new DVMPackage_json();
|
|
Utils.CheckAndCleanDirectory(target.getLocalWorkspace());
|
|
target.saveJson();
|
|
//--
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|