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

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

24
.idea/workspace.xml generated
View File

@@ -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" />

Binary file not shown.

View File

@@ -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,

View File

@@ -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(() -> {

View File

@@ -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";

View File

@@ -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));
//-

View File

@@ -13,6 +13,8 @@ public class NormalProperties extends VisualDVMProperties {
public String Email = "";
@Expose
public String Name = "";
@Expose
public String ServerUserPassword="";
//--->
@Expose
public String Workspace = "";

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;
}
}

View File

@@ -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:

View File

@@ -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);

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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:

View File

@@ -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;

View 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;
}
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}