Завершение обновления безопасности.
v++
This commit is contained in:
24
.idea/workspace.xml
generated
24
.idea/workspace.xml
generated
@@ -7,7 +7,29 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServerProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServerProperties.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetDVMPackageCredetials.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachinesDatabase.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/PackageCredentials/DVMPackageCredentials.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/PackageCredentials/DVMPackagesCredentialsDBTable.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Visualizer_2.exe" beforeDir="false" afterPath="$PROJECT_DIR$/Visualizer_2.exe" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Global.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ResumeDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ResumeDVMPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ShutdownServerPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ShutdownServerPass.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/StartServerPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/StartServerPass.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachineProcess/MachineProcess.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachineProcess/MachineProcess.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
BIN
Visualizer_2.exe
BIN
Visualizer_2.exe
Binary file not shown.
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"Email": "vmk-post@yandex.ru",
|
||||
"Name": "M",
|
||||
"ServerUserPassword": "mprit_2011",
|
||||
"Workspace": "E:\\Tests",
|
||||
"ProjectsSearchDirectory": "E:\\BUG\\JAC",
|
||||
"ProjectsSearchDirectory": "E:\\Tests\\Downloads",
|
||||
"VisualiserPath": "C:\\Users\\misha\\Downloads",
|
||||
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
|
||||
"Visualizer_2Path": "C:\\Users\\misha\\Documents",
|
||||
@@ -26,7 +27,7 @@
|
||||
"AutoCheckTesting": true,
|
||||
"EmailOnTestingProgress": true,
|
||||
"lastMachineId": 13,
|
||||
"lastUserId": 24,
|
||||
"lastUserId": 34,
|
||||
"lastCompilerId": 52,
|
||||
"RegisterOn": false,
|
||||
"SpacesOn": false,
|
||||
|
||||
@@ -48,7 +48,7 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
|
||||
Arrays.asList(new Pair<>(new Machine("titan",
|
||||
"dvmh.keldysh.ru",
|
||||
22, MachineType.Server),
|
||||
new User("dvmuser1", "mprit_2011"))
|
||||
new User("dvmuser1", "mprit_2011")) // todo с этим паролем что-то сделать.
|
||||
));
|
||||
//-
|
||||
protected Thread backUp = new Thread(() -> {
|
||||
|
||||
@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
|
||||
|
||||
import java.util.Vector;
|
||||
public class Constants {
|
||||
public static final int version = 1179;
|
||||
public static final int version = 1181;
|
||||
public static final int planner_version = 10;
|
||||
public static final int testingMaxKernels = 64; //вообще говоря, это параметр машины.
|
||||
//--
|
||||
@@ -44,13 +44,13 @@ public class Constants {
|
||||
public static final String SMTPHost = "smtp.mail.ru";
|
||||
public static final int SMTPPort = 465;
|
||||
public static final int MailSocketPort = 465;
|
||||
public static final int ComponentsServerPort = 7996;// 7995;
|
||||
public static final int TestingServerPort = 7998;
|
||||
//7796 отладочный порт
|
||||
public static final int ComponentsServerPort = 7995; //7795
|
||||
public static final int TestingServerPort = 7998; //7998
|
||||
public static final int SocketTimeout = 0;
|
||||
//-
|
||||
public static final String ServerAddress = "alex-freenas.ddns.net";
|
||||
public static final String ServerUserName = "testuser";
|
||||
public static final String ServerUserPasword = "mprit_2011";
|
||||
public static final int ServerUserSHHPort = 2000;
|
||||
//--
|
||||
public static final String package_json = "package_json";
|
||||
|
||||
@@ -94,7 +94,6 @@ public class Global {
|
||||
Utils_.CheckDirectory(KeysDirectory = new File(Utils_.getHomeDirectory(), Constants.KeyDirectoryName));
|
||||
}
|
||||
public static void CheckTestingSystemDirectories() {
|
||||
Utils_.CheckDirectory(ComponentsDirectory = new File(Utils_.getHomeDirectory(), Constants.ComponentsDirectoryName));
|
||||
Utils_.CheckAndCleanDirectory(TempDirectory = new File(Utils_.getHomeDirectory(), Constants.TempDirectoryName));
|
||||
Utils_.CheckDirectory(DataDirectory = new File(Utils_.getHomeDirectory(), Constants.DataDirectoryName));
|
||||
//-
|
||||
|
||||
@@ -13,6 +13,8 @@ public class NormalProperties extends VisualDVMProperties {
|
||||
public String Email = "";
|
||||
@Expose
|
||||
public String Name = "";
|
||||
@Expose
|
||||
public String ServerUserPassword="";
|
||||
//--->
|
||||
@Expose
|
||||
public String Workspace = "";
|
||||
|
||||
16
src/_VisualDVM/Passes/All/GetDVMPackageCredetials.java
Normal file
16
src/_VisualDVM/Passes/All/GetDVMPackageCredetials.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -353,12 +353,15 @@ public enum PassCode implements PassCode_ {
|
||||
SynchronizeCredentials,
|
||||
PublishUserAccount,
|
||||
EditUserAccount,
|
||||
DeleteUserAccount
|
||||
DeleteUserAccount,
|
||||
GetDVMPackageCredetials
|
||||
;
|
||||
//--
|
||||
@Override
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case GetDVMPackageCredetials:
|
||||
return "Получение входных данных пакета тестирования DVM";
|
||||
case PublishUserAccount:
|
||||
return "Добавление учётной записи";
|
||||
case EditUserAccount:
|
||||
|
||||
@@ -24,12 +24,22 @@ public abstract class RepositoryServerSSHPass<S extends RepositoryServer> extend
|
||||
}
|
||||
protected abstract S getServer();
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (!Global.mainModule.getAccount().CheckAdmin(Log))
|
||||
return false;
|
||||
if (Global.normalProperties.ServerUserPassword.isEmpty()){
|
||||
Log.Writeln_("Не задан пароль");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public void Connect() throws Exception {
|
||||
userHome = null;
|
||||
serverHome = null;
|
||||
//--
|
||||
machine = new Machine("alex", Constants.ServerAddress, Constants.ServerUserSHHPort, MachineType.Server);
|
||||
user = new User(Constants.ServerUserName, Constants.ServerUserPasword);
|
||||
user = new User(Constants.ServerUserName, Global.normalProperties.ServerUserPassword); //в пропертиес. пусть админ пользуется.
|
||||
super.Connect();
|
||||
//--
|
||||
userHome = new RemoteFile(user.connection.sftpChannel.getHome(), true);
|
||||
|
||||
@@ -9,7 +9,7 @@ public abstract class ShutdownServerPass<S extends RepositoryServer> extends Rep
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (getServer().PingFromClient()) {
|
||||
return true;
|
||||
return super.canStart();
|
||||
} else {
|
||||
Log.Writeln_("Сервер уже неактивен!");
|
||||
return false;
|
||||
|
||||
@@ -12,7 +12,7 @@ public abstract class StartServerPass<S extends RepositoryServer> extends Reposi
|
||||
Log.Writeln_("Сервер уже активен!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return super.canStart();
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
|
||||
@@ -67,9 +67,12 @@ public enum ServerCode {
|
||||
GetUserAccountByEmail,
|
||||
EditUserAccount,
|
||||
PublishUserAccount,
|
||||
DeleteUserAccount;
|
||||
DeleteUserAccount,
|
||||
GetDVMPackageCredentials;
|
||||
public String getDescription(){
|
||||
switch (this){
|
||||
case GetDVMPackageCredentials:
|
||||
return "Получение входных данных пакета тестирования DVM на сервере";
|
||||
case DeleteUserAccount:
|
||||
return "Удаление учётной записи на сервере";
|
||||
case PublishUserAccount:
|
||||
|
||||
@@ -4,6 +4,7 @@ import Common.Database.Objects.DBObject;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.*;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -23,14 +24,16 @@ public class MachineProcess extends DBObject {
|
||||
public MachineProcess(MachineProcess p) {
|
||||
SynchronizeFields(p);
|
||||
}
|
||||
public MachineProcess(DVMPackage p) {
|
||||
public MachineProcess(DVMPackage p, DVMPackageCredentials credentials) {
|
||||
machineAddress = p.machine_address;
|
||||
machinePort = p.machine_port;
|
||||
userName = p.user_name;
|
||||
userPassword = p.user_password;
|
||||
userWorkspace = p.user_workspace;
|
||||
testingSystemRoot = Utils_.getHomePath();
|
||||
serverName = Global.testingServer.name;
|
||||
//-->>
|
||||
userPassword = credentials.userPassword;
|
||||
//-->>
|
||||
id = Utils_.getDateName(machineAddress + "_" + machinePort + "_" + userName);
|
||||
}
|
||||
@Override
|
||||
@@ -94,7 +97,7 @@ public class MachineProcess extends DBObject {
|
||||
//копирование визуализатора
|
||||
File src = new File(Utils_.getHomeDirectory(), "TestingSystem.jar");
|
||||
File supervisor = new File(workspace, "VisualSapfor.jar");
|
||||
FileUtils.copyFile(src, supervisor);
|
||||
FileUtils.copyFile(src, supervisor); //? можно ли символическую ссылку?
|
||||
//создание настроек
|
||||
VisualDVMProperties properties = new VisualDVMProperties();
|
||||
properties.Mode = Mode.MachineQueue;
|
||||
|
||||
23
src/_VisualDVM/TestingSystem/Common/MachinesDatabase.java
Normal file
23
src/_VisualDVM/TestingSystem/Common/MachinesDatabase.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package _VisualDVM.TestingSystem.Common;
|
||||
import Common.Database.SQLITE.SQLiteDatabase;
|
||||
import Common.Passes.PassCode_;
|
||||
import _VisualDVM.GlobalData.Machine.MachinesDBTable;
|
||||
import _VisualDVM.GlobalData.User.UsersDBTable;
|
||||
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
|
||||
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackagesCredentialsDBTable;
|
||||
|
||||
import java.nio.file.Paths;
|
||||
public class MachinesDatabase extends SQLiteDatabase {
|
||||
DVMPackagesCredentialsDBTable dvmPackagesCredentials;
|
||||
public MachinesDatabase() {
|
||||
super(Paths.get(System.getProperty("user.dir"), "Data", "machines.sqlite").toFile());
|
||||
}
|
||||
@Override
|
||||
protected void initAllTables() throws Exception {
|
||||
addTable(dvmPackagesCredentials = new DVMPackagesCredentialsDBTable());
|
||||
}
|
||||
@Override
|
||||
public PassCode_ getSynchronizePassCode() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMTestingChecker;
|
||||
import _VisualDVM.TestingSystem.DVM.PackageCredentials.DVMPackageCredentials;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.Json.SapforPackage_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.Json.SapforVersion_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
|
||||
@@ -58,7 +59,9 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
public String name = "?";
|
||||
DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
|
||||
SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
|
||||
//--
|
||||
//-->
|
||||
MachinesDatabase machines_db;
|
||||
//-->
|
||||
protected Thread testingThread = new Thread(() -> {
|
||||
while (true) {
|
||||
dvmTestingChecker.Perform();
|
||||
@@ -70,6 +73,15 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
super(TestsDatabase.class);
|
||||
name = Utils_.getDateName("testingServer");
|
||||
}
|
||||
@Override
|
||||
public void StartAction() throws Exception {
|
||||
try {
|
||||
machines_db = new MachinesDatabase();
|
||||
machines_db.Activate();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
public static void TimerOn() {
|
||||
checkTimer = new Timer(Global.normalProperties.CheckTestingIntervalSeconds * 1000, e -> {
|
||||
Global.mainModule.getPass(PassCode.ActualizePackages).Do();
|
||||
@@ -103,6 +115,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
dvmPackage.saveJson();
|
||||
dvmPackage.package_json = null; // объект больше не нужен.
|
||||
//--
|
||||
//Занести учетные данные пакета в базу о машинах. это основной поток, нить не нужна. арг это пароль
|
||||
DVMPackageCredentials credentials = new DVMPackageCredentials(dvmPackage, request.arg);
|
||||
machines_db.Insert(credentials);
|
||||
//--
|
||||
} else if (object instanceof SapforPackage) {
|
||||
((SapforPackage) object).init();
|
||||
}
|
||||
@@ -205,6 +221,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
DVMPackage dvmPackage = (DVMPackage) object;
|
||||
File workspace = dvmPackage.getLocalWorkspace();
|
||||
Utils_.forceDeleteWithCheck(workspace);
|
||||
//--
|
||||
DVMPackageCredentials credentials = machines_db.dvmPackagesCredentials.getForPackageId(dvmPackage.id);
|
||||
if (credentials != null)
|
||||
machines_db.Delete(credentials);
|
||||
//--
|
||||
} else if (object instanceof SapforPackage) {
|
||||
SapforPackage sapforPackage = (SapforPackage) object;
|
||||
//--
|
||||
@@ -495,8 +516,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
if (dvmPackage.state.isActive()) {
|
||||
//-
|
||||
if (!machinesProcesses.hasProcessForPackage(dvmPackage)) {
|
||||
MachineProcess new_process = new MachineProcess(dvmPackage);
|
||||
processes_to_start.put(new_process.getUniqueKey(), new_process);
|
||||
DVMPackageCredentials credentials = machines_db.dvmPackagesCredentials.getForPackageId(dvmPackage.id);
|
||||
if (credentials != null) {
|
||||
MachineProcess new_process = new MachineProcess(dvmPackage, credentials);
|
||||
//получить пароль.
|
||||
processes_to_start.put(new_process.getUniqueKey(), new_process);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -569,7 +594,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
UserAccount account = new UserAccount();
|
||||
account.name = "server";
|
||||
account.email = Constants.MailAddress;
|
||||
account.role= AccountRole.Admin;
|
||||
account.role = AccountRole.Admin;
|
||||
//-
|
||||
int sapforId = Integer.parseInt(request.arg);
|
||||
if (!db.serverSapfors.containsKey(sapforId)) {
|
||||
@@ -758,10 +783,22 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
}
|
||||
}
|
||||
}
|
||||
void GetDVMPackageCredentials() throws Exception {
|
||||
int package_id = (int) request.object;
|
||||
if (!db.dvmPackages.containsKey(package_id))
|
||||
throw new RepositoryRefuseException("Не найден пакет с ключом " + Utils_.Brackets(package_id));
|
||||
DVMPackageCredentials res = machines_db.dvmPackagesCredentials.getForPackageId(package_id);
|
||||
if (res == null)
|
||||
throw new RepositoryRefuseException("Не найдено учетных данных для пакета " + Utils_.Brackets(package_id));
|
||||
response.object = res;
|
||||
}
|
||||
//--
|
||||
@Override
|
||||
protected void Session() throws Exception {
|
||||
switch (code) {
|
||||
case GetDVMPackageCredentials:
|
||||
GetDVMPackageCredentials();
|
||||
break;
|
||||
case PerformAutoSapforTesting:
|
||||
PerformAutoSapforTesting();
|
||||
break;
|
||||
|
||||
@@ -258,7 +258,7 @@ public class TestsDatabase extends SQLiteDatabase {
|
||||
case ConnectionError:
|
||||
break;
|
||||
default:
|
||||
if (dvmPackage.getMachine().getURL().equals(arg))
|
||||
if (dvmPackage.getMachineURL().equals(arg))
|
||||
machinePackages.add(dvmPackage);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import _VisualDVM.TestingSystem.Common.TestingPackage.TestingPackage;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Vector;
|
||||
@@ -26,7 +27,6 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
public int machine_port = 22;
|
||||
//---
|
||||
public String user_name = "";
|
||||
public String user_password;
|
||||
public String user_workspace;
|
||||
//---
|
||||
public DVMPackage() {
|
||||
@@ -47,7 +47,6 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
machine_port = machine.port;
|
||||
//-
|
||||
user_name = user.login;
|
||||
user_password = user.password;
|
||||
user_workspace = user.workspace;
|
||||
//-
|
||||
drv = compiler.call_command;
|
||||
@@ -99,16 +98,18 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
machine_port = tasksPackage.machine_port;
|
||||
user_name = tasksPackage.user_name;
|
||||
user_workspace = tasksPackage.user_workspace;
|
||||
user_password = tasksPackage.user_password;
|
||||
}
|
||||
public Machine getMachine() {
|
||||
return new Machine(machine_name, machine_address, machine_port, MachineType.Server);
|
||||
}
|
||||
public User getUser() {
|
||||
return new User(user_name, user_password, user_workspace);
|
||||
return new User(user_name, "", user_workspace);
|
||||
}
|
||||
@Override
|
||||
public void checkFinishState() throws Exception {
|
||||
}
|
||||
public String getMachineURL(){
|
||||
return machine_address + ":" + machine_port;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package _VisualDVM.TestingSystem.DVM.PackageCredentials;
|
||||
import Common.CommonConstants;
|
||||
import Common.Database.Objects.iDBObject;
|
||||
import _VisualDVM.GlobalData.Machine.Machine;
|
||||
import _VisualDVM.GlobalData.Machine.MachineType;
|
||||
import _VisualDVM.GlobalData.User.User;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
public class DVMPackageCredentials extends iDBObject {
|
||||
public int dvmpackage_id = CommonConstants.Nan;
|
||||
public String userPassword = "";
|
||||
//---->>
|
||||
public DVMPackageCredentials() {
|
||||
}
|
||||
public DVMPackageCredentials(DVMPackage dvmPackage, String password_in) {
|
||||
dvmpackage_id = dvmPackage.id;
|
||||
userPassword = password_in;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package _VisualDVM.TestingSystem.DVM.PackageCredentials;
|
||||
import Common.Database.Tables.iDBTable;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
public class DVMPackagesCredentialsDBTable extends iDBTable<DVMPackageCredentials> {
|
||||
public DVMPackagesCredentialsDBTable() {
|
||||
super(DVMPackageCredentials.class);
|
||||
}
|
||||
public DVMPackageCredentials getForPackageId(int dvmPackage_id){
|
||||
for (DVMPackageCredentials dvmPackageCredentials: Data.values()){
|
||||
if (dvmPackageCredentials.dvmpackage_id==dvmPackage_id)
|
||||
return dvmPackageCredentials;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user