Завершение обновления безопасности.

v++
This commit is contained in:
2025-02-21 01:57:15 +03:00
parent 49f0a56c4f
commit 8701c8ba36
23 changed files with 230 additions and 41 deletions

View File

@@ -0,0 +1,16 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Passes.Server.TestingServerPass;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
public class GetDVMPackageCredetials extends TestingServerPass<DVMPackageCredentials> {
@Override
protected boolean canStart(Object... args) throws Exception {
target = null;
return SendRequest(ServerCode.GetDVMPackageCredentials, "", ((DVMPackage)args[0]).id);
}
@Override
protected void performDone() throws Exception {
target = (DVMPackageCredentials) request.server_response.object;
}
}

View File

@@ -2,8 +2,10 @@ package _VisualDVM.Passes.All;
import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.SSH.ConnectionPass;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
import java.util.Date;
public class PauseDVMPackage extends ConnectionPass<DVMPackage> {
@@ -20,7 +22,10 @@ public class PauseDVMPackage extends ConnectionPass<DVMPackage> {
if (!Global.testingServer.db.dvmPackages.getUI().CheckCurrent(Log))
return false;
target = Global.testingServer.db.dvmPackages.getUI().getCurrent();
switch (target.state){
if (!Global.mainModule.getAccount().CheckAuthorship(target.sender_address, Log))
return false;
//--
switch (target.state) {
case CompilationExecution:
case RunningExecution:
break;
@@ -28,20 +33,25 @@ public class PauseDVMPackage extends ConnectionPass<DVMPackage> {
Log.Writeln_("Возможно поставить на паузу только пакет в состоянии [компиляция] или [запуск]");
return false;
}
machine =target.getMachine();
user = target.getUser();
return Global.mainModule.getAccount().CheckAuthorship(target.sender_address,Log);
GetDVMPackageCredetials pass_ = (GetDVMPackageCredetials) Global.mainModule.getPass(PassCode.GetDVMPackageCredetials);
if (pass_.Do(target)) {
DVMPackageCredentials credentials = pass_.target;
machine = target.getMachine();
user = target.getUser();
user.password = credentials.userPassword;
return true;
}
return false;
}
@Override
protected void ServerAction() throws Exception {
RemoteFile packageRemoteWorkspace = new RemoteFile(
target.user_workspace+ "/tests", String.valueOf(target.id), true);
if (user.connection.Exists(packageRemoteWorkspace)){
target.user_workspace + "/tests", String.valueOf(target.id), true);
if (user.connection.Exists(packageRemoteWorkspace)) {
try {
RemoteFile pauseFile = new RemoteFile(packageRemoteWorkspace, Constants.pause);
user.connection.writeToFile("pause at "+new Date(), pauseFile);
}
catch (Exception ex){
user.connection.writeToFile("pause at " + new Date(), pauseFile);
} catch (Exception ex) {
ex.printStackTrace();
}
}

View File

@@ -2,8 +2,10 @@ package _VisualDVM.Passes.All;
import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.SSH.ConnectionPass;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
public class ResumeDVMPackage extends ConnectionPass<DVMPackage> {
@Override
public String getIconPath() {
@@ -18,6 +20,8 @@ public class ResumeDVMPackage extends ConnectionPass<DVMPackage> {
if (!Global.testingServer.db.dvmPackages.getUI().CheckCurrent(Log))
return false;
target = Global.testingServer.db.dvmPackages.getUI().getCurrent();
if (!Global.mainModule.getAccount().CheckAuthorship(target.sender_address, Log))
return false;
switch (target.state) {
case Paused:
break;
@@ -25,9 +29,15 @@ public class ResumeDVMPackage extends ConnectionPass<DVMPackage> {
Log.Writeln_("Возможно возобновить только пакет в состоянии [пауза]");
return false;
}
machine = target.getMachine();
user = target.getUser();
return Global.mainModule.getAccount().CheckAuthorship(target.sender_address,Log);
GetDVMPackageCredetials pass_ = (GetDVMPackageCredetials) Global.mainModule.getPass(PassCode.GetDVMPackageCredetials);
if (pass_.Do(target)) {
DVMPackageCredentials credentials = pass_.target;
machine = target.getMachine();
user = target.getUser();
user.password = credentials.userPassword;
return true;
}
return false;
}
@Override
protected void ServerAction() throws Exception {

View File

@@ -10,6 +10,8 @@ import _VisualDVM.GlobalData.User.User;
import _VisualDVM.GlobalData.User.UserState;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.Server.PublishServerObject;
import _VisualDVM.Repository.Server.SafeServerExchangeUnit;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.TestingSystem.Common.TestingServer;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
@@ -24,17 +26,26 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
return "/Common/icons/BlueStart.png";
}
//--
Machine machine;
User user;
Compiler compiler;
//--
@Override
protected boolean canStart(Object... args) throws Exception {
//--
machine =null;
user= null;
compiler =null;
//--
if (!Global.mainModule.getAccount().CheckRegistered(Log)) {
return false;
}
if (!MainModule_.instance.getDb().CheckCurrent(Log, Machine.class, User.class, Compiler.class))
return false;
//--
Machine machine = MainModule_.instance.getDb().getTable(Machine.class).getUI().getCurrent();
User user = MainModule_.instance.getDb().getTable(User.class).getUI().getCurrent();
Compiler compiler = MainModule_.instance.getDb().getTable(Compiler.class).getUI().getCurrent();
machine = MainModule_.instance.getDb().getTable(Machine.class).getUI().getCurrent();
user = MainModule_.instance.getDb().getTable(User.class).getUI().getCurrent();
compiler = MainModule_.instance.getDb().getTable(Compiler.class).getUI().getCurrent();
//--
if (!machine.type.equals(MachineType.Server)) {
Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
@@ -71,4 +82,9 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
}
return UI.Question("Будет запущено " + target.tasksCount + " задач. Продолжить");
}
@Override
protected void ServerAction() throws Exception {
Command(new SafeServerExchangeUnit(ServerCode.PublishObject, user.password, target));
pk = server_response.object;
}
}