автоматический поиск версии сапфора для установки на сервере.
This commit is contained in:
13
.idea/workspace.xml
generated
13
.idea/workspace.xml
generated
@@ -7,16 +7,13 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowSapforCompilationErr.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowSapforCompilationOut.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowTestingServerFile.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapfor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapfor.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforsBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforsBar.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
"Mode": "Normal",
|
"Mode": "Normal",
|
||||||
"ServerAddress": "alex-freenas.ddns.net",
|
"ServerAddress": "alex-freenas.ddns.net",
|
||||||
"ServerUserName": "testuser",
|
"ServerUserName": "testuser",
|
||||||
"ServerUserSHHPort": 2000,
|
"ServerUserSHHPort": 23,
|
||||||
"ComponentsServerPort": 7995,
|
"ComponentsServerPort": 7995,
|
||||||
"TestingServerPort": 7998,
|
"TestingServerPort": 7996,
|
||||||
"SocketTimeout": 5000,
|
"SocketTimeout": 5000,
|
||||||
"OldServer": false,
|
"OldServer": false,
|
||||||
"SMTPHost": "smtp.mail.ru",
|
"SMTPHost": "smtp.mail.ru",
|
||||||
|
|||||||
@@ -76,7 +76,6 @@ public enum ServerCode {
|
|||||||
DownloadDVMPackage,
|
DownloadDVMPackage,
|
||||||
DownloadDVMPackages,
|
DownloadDVMPackages,
|
||||||
DownloadSapforPackage,
|
DownloadSapforPackage,
|
||||||
InstallServerSapfor,
|
|
||||||
ReplaceTestCode,
|
ReplaceTestCode,
|
||||||
ReplaceTestsCodes,
|
ReplaceTestsCodes,
|
||||||
GetDVMPackagesJson,
|
GetDVMPackagesJson,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import Common.Utils.Utils;
|
|||||||
import GlobalData.Account.Account;
|
import GlobalData.Account.Account;
|
||||||
import ProjectData.LanguageName;
|
import ProjectData.LanguageName;
|
||||||
import Repository.Component.Sapfor.Sapfor;
|
import Repository.Component.Sapfor.Sapfor;
|
||||||
import Repository.EmailMessage;
|
|
||||||
import Repository.RepositoryRefuseException;
|
import Repository.RepositoryRefuseException;
|
||||||
import Repository.RepositoryServer;
|
import Repository.RepositoryServer;
|
||||||
import Repository.Server.ServerCode;
|
import Repository.Server.ServerCode;
|
||||||
@@ -26,6 +25,7 @@ import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationComman
|
|||||||
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||||
import TestingSystem.SAPFOR.SapforTestingPlanner;
|
import TestingSystem.SAPFOR.SapforTestingPlanner;
|
||||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
||||||
|
import TestingSystem.SAPFOR.ServerSapfor.ServerSapforState;
|
||||||
import Visual_DVM_2021.Passes.All.DownloadRepository;
|
import Visual_DVM_2021.Passes.All.DownloadRepository;
|
||||||
import Visual_DVM_2021.Passes.All.ZipFolderPass;
|
import Visual_DVM_2021.Passes.All.ZipFolderPass;
|
||||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
@@ -33,10 +33,13 @@ import Visual_DVM_2021.Passes.Pass_2021;
|
|||||||
import javafx.util.Pair;
|
import javafx.util.Pair;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
import javax.swing.Timer;
|
import javax.swing.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Vector;
|
||||||
public class TestingServer extends RepositoryServer<TestsDatabase> {
|
public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||||
public String name = "?";
|
public String name = "?";
|
||||||
public static MachineProcessSet machinesProcesses = new MachineProcessSet();
|
public static MachineProcessSet machinesProcesses = new MachineProcessSet();
|
||||||
@@ -110,24 +113,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
//-->>>
|
//-->>>
|
||||||
@Override
|
@Override
|
||||||
protected void beforePublishAction(DBObject object) throws Exception {
|
protected void beforePublishAction(DBObject object) throws Exception {
|
||||||
if (object instanceof ServerSapfor){
|
if (object instanceof ServerSapfor) {
|
||||||
File versionFile = new File(Global.TempDirectory,"version.h");
|
int current_version = getSapforActualVersion();
|
||||||
if (versionFile.exists())
|
|
||||||
FileUtils.forceDelete(versionFile);
|
|
||||||
//1. Получить версию из репозитория.
|
|
||||||
Utils.startScript(Global.TempDirectory,
|
|
||||||
Global.TempDirectory,
|
|
||||||
"get_version",
|
|
||||||
"wget --user dvmhuser --password dvmh2013 -P " +
|
|
||||||
Utils.DQuotes(Global.TempDirectory.getAbsolutePath()) +
|
|
||||||
" http://svn.dvm-system.org/svn/dvmhrepo/sapfor/experts/Sapfor_2017/_src/Utils/version.h"
|
|
||||||
).waitFor();
|
|
||||||
if (!versionFile.exists())
|
|
||||||
throw new RepositoryRefuseException("Не удалось загрузить текущую версию SAPFOR из репозитория!");
|
|
||||||
int current_version = Sapfor.readVersionFromCode(versionFile);
|
|
||||||
int max_installed_version = db.getInstalledSapforMaxVersion();
|
int max_installed_version = db.getInstalledSapforMaxVersion();
|
||||||
if (max_installed_version==current_version)
|
if (max_installed_version == current_version)
|
||||||
throw new RepositoryRefuseException("Актуальная версия SAPFOR "+max_installed_version+" уже установлена");
|
throw new RepositoryRefuseException("Актуальная версия SAPFOR " + max_installed_version + " уже установлена");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public TestingServer() {
|
public TestingServer() {
|
||||||
@@ -230,10 +220,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
Print("Загрузить пакет SAPFOR");
|
Print("Загрузить пакет SAPFOR");
|
||||||
DownloadSapforPackage();
|
DownloadSapforPackage();
|
||||||
break;
|
break;
|
||||||
case InstallServerSapfor:
|
|
||||||
Print("Установить текущую версию SAPFOR для тестирования");
|
|
||||||
InstallServerSapfor();
|
|
||||||
break;
|
|
||||||
case ReplaceTestCode:
|
case ReplaceTestCode:
|
||||||
Print("Заменить код теста");
|
Print("Заменить код теста");
|
||||||
ReplaceTestCode();
|
ReplaceTestCode();
|
||||||
@@ -355,11 +341,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = db.getFirstActiveSapforPackagesCopies();
|
response.object = db.getFirstActiveSapforPackagesCopies();
|
||||||
}
|
}
|
||||||
//---
|
|
||||||
void GetSapforForCompilation() throws Exception {
|
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
|
||||||
response.object = db.getSapforCopyForCompilation();
|
|
||||||
}
|
|
||||||
void GetSapforMaxVersion() throws Exception {
|
void GetSapforMaxVersion() throws Exception {
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = db.getInstalledSapforMaxVersion();
|
response.object = db.getInstalledSapforMaxVersion();
|
||||||
@@ -455,122 +436,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
else
|
else
|
||||||
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
|
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
|
||||||
}
|
}
|
||||||
private void InstallServerSapfor() throws Exception {
|
|
||||||
int max_version = Constants.Nan;
|
|
||||||
int current_version = Constants.Nan;
|
|
||||||
//--
|
|
||||||
for (ServerSapfor sapfor : db.serverSapfors.Data.values()) {
|
|
||||||
int version = -1;
|
|
||||||
try {
|
|
||||||
version = Integer.parseInt(sapfor.version);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
if (version > max_version) max_version = version;
|
|
||||||
}
|
|
||||||
System.out.println("max Sapfor version is " + max_version);
|
|
||||||
//--
|
|
||||||
File testingSystemHome = new File(Global.Home);
|
|
||||||
File repo = new File(testingSystemHome, "Repo");
|
|
||||||
File repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN).toFile();
|
|
||||||
File repo_bin = new File(repoSapforHome, "Sapfor_F");
|
|
||||||
File repo_out = new File(repoSapforHome, Constants.out_file);
|
|
||||||
File repo_err = new File(repoSapforHome, Constants.err_file);
|
|
||||||
//--
|
|
||||||
System.out.println("Синхронизация ветви DVM...");
|
|
||||||
Utils.startScript(repo, repo, "dvm_checkout",
|
|
||||||
"svn checkout " +
|
|
||||||
Constants.REPOSITORY_AUTHENTICATION +
|
|
||||||
" " + Constants.DVM_REPOSITORY + " 1>dvm_out.txt 2>dvm_err.txt\n").waitFor();
|
|
||||||
System.out.println("Синхронизация ветви SAPFOR...");
|
|
||||||
Utils.startScript(repo, repo, "spf_checkout",
|
|
||||||
"svn checkout " +
|
|
||||||
Constants.REPOSITORY_AUTHENTICATION +
|
|
||||||
" " + Constants.SAPFOR_REPOSITORY + " 1>spf_out.txt 2>spf_err.txt\n").waitFor();
|
|
||||||
//--
|
|
||||||
if (repo_bin.exists())
|
|
||||||
FileUtils.forceDelete(repo_bin);
|
|
||||||
//-
|
|
||||||
File versionFile = Paths.get(repo.getAbsolutePath(), "/sapfor/experts/Sapfor_2017/_src/Utils/version.h").toFile();
|
|
||||||
if (versionFile.exists()) {
|
|
||||||
List<String> data = FileUtils.readLines(versionFile);
|
|
||||||
for (String s : data) {
|
|
||||||
if (s.startsWith("#define VERSION_SPF ")) {
|
|
||||||
String[] version_data = s.split("\"");
|
|
||||||
if (version_data.length > 0) {
|
|
||||||
String version_s = version_data[1];
|
|
||||||
//-
|
|
||||||
try {
|
|
||||||
current_version = Integer.parseInt(version_s);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
//-
|
|
||||||
if (current_version == max_version) {
|
|
||||||
throw new RepositoryRefuseException("Версия SAPFOR " + max_version + " уже собрана!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//--
|
|
||||||
System.out.println("Сборка SAPFOR...");
|
|
||||||
Utils.startScript(repoSapforHome, repoSapforHome, "build_sapfor",
|
|
||||||
"cmake ../ 1>" +
|
|
||||||
Constants.out_file +
|
|
||||||
" 2>" +
|
|
||||||
Constants.err_file +
|
|
||||||
"\nmake -j 14 1>>" +
|
|
||||||
Constants.out_file +
|
|
||||||
" 2>>" +
|
|
||||||
Constants.err_file +
|
|
||||||
"\n").waitFor();
|
|
||||||
//--
|
|
||||||
System.out.println("DONE");
|
|
||||||
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
|
|
||||||
System.out.println("Result file is " + Utils.Brackets(repoSapfor.getAbsolutePath()));
|
|
||||||
//---
|
|
||||||
File sapforsDirectory = new File(testingSystemHome, "Sapfors");
|
|
||||||
File sapforHome = new File(sapforsDirectory, Utils.getDateName("sapfor"));
|
|
||||||
sapforHome.mkdir();
|
|
||||||
File sapforOut = new File(sapforHome, Constants.out_file);
|
|
||||||
File sapforErr = new File(sapforHome, Constants.err_file);
|
|
||||||
//--
|
|
||||||
System.out.println(repoSapfor.getAbsolutePath());
|
|
||||||
System.out.println(repo_out.getAbsolutePath());
|
|
||||||
System.out.println(repo_err.getAbsolutePath());
|
|
||||||
System.out.println("====================");
|
|
||||||
//--
|
|
||||||
if (repo_out.exists())
|
|
||||||
FileUtils.copyFile(repo_out, sapforOut);
|
|
||||||
if (repo_err.exists())
|
|
||||||
FileUtils.copyFile(repo_err, sapforErr);
|
|
||||||
//--
|
|
||||||
if (repoSapfor.exists()) {
|
|
||||||
System.out.println("assembly found!");
|
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
|
||||||
//создать папку. Для того чтобы скопировать из репозитория.
|
|
||||||
File sapforBin = new File(sapforHome, "Sapfor_F");
|
|
||||||
FileUtils.copyFile(repo_bin, sapforBin);
|
|
||||||
sapforBin.setExecutable(true, false);
|
|
||||||
// //-->>>
|
|
||||||
ServerSapfor serverSapfor = new ServerSapfor();
|
|
||||||
serverSapfor.home_path = sapforHome.getAbsolutePath();
|
|
||||||
serverSapfor.call_command = sapforBin.getAbsolutePath();
|
|
||||||
serverSapfor.languageName = LanguageName.fortran;
|
|
||||||
serverSapfor.buildDate = new Date().getTime();
|
|
||||||
response.object = serverSapfor;
|
|
||||||
serverSapfor.version = String.valueOf(current_version);
|
|
||||||
//---
|
|
||||||
// EmailSapforAssembly(current_version, true);
|
|
||||||
//---
|
|
||||||
} else {
|
|
||||||
//---
|
|
||||||
EmailSapforAssembly(current_version, false);
|
|
||||||
//---
|
|
||||||
throw new RepositoryRefuseException("Бинарный файл SAPFOR не найден!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void ReplaceTestCode() throws Exception {
|
private void ReplaceTestCode() throws Exception {
|
||||||
Test test = (Test) request.object;
|
Test test = (Test) request.object;
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
@@ -596,21 +461,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
} else db.Update(test); //обновить список файлов и размерность.
|
} else db.Update(test); //обновить список файлов и размерность.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void EmailSapforAssembly(int version, boolean done) throws Exception {
|
|
||||||
String version_s = (version == Constants.Nan) ? "?" : String.valueOf(version);
|
|
||||||
String status = done ? "Успешно" : "С ошибками";
|
|
||||||
//-
|
|
||||||
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",
|
|
||||||
"Версия: " + version_s + "\n" + "Статус: " + status,
|
|
||||||
targets
|
|
||||||
);
|
|
||||||
//-
|
|
||||||
Email(message, out, err);
|
|
||||||
}
|
|
||||||
private void GetDVMPackagesJson() throws Exception {
|
private void GetDVMPackagesJson() throws Exception {
|
||||||
Vector<Integer> packages_ids = (Vector<Integer>) request.object;
|
Vector<Integer> packages_ids = (Vector<Integer>) request.object;
|
||||||
Vector<DVMPackage_json> jsons = new Vector<>();
|
Vector<DVMPackage_json> jsons = new Vector<>();
|
||||||
@@ -687,7 +537,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
}
|
}
|
||||||
void GetSapforActualVersion() throws Exception {
|
void GetSapforActualVersion() throws Exception {
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
File versionFile = new File(Global.TempDirectory,"version.h");
|
File versionFile = new File(Global.TempDirectory, "version.h");
|
||||||
if (versionFile.exists())
|
if (versionFile.exists())
|
||||||
FileUtils.forceDelete(versionFile);
|
FileUtils.forceDelete(versionFile);
|
||||||
//1. Получить версию из репозитория.
|
//1. Получить версию из репозитория.
|
||||||
@@ -702,8 +552,43 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
throw new RepositoryRefuseException("Не удалось загрузить текущую версию SAPFOR из репозитория!");
|
throw new RepositoryRefuseException("Не удалось загрузить текущую версию SAPFOR из репозитория!");
|
||||||
int current_version = Sapfor.readVersionFromCode(versionFile);
|
int current_version = Sapfor.readVersionFromCode(versionFile);
|
||||||
int max_installed_version = db.getInstalledSapforMaxVersion();
|
int max_installed_version = db.getInstalledSapforMaxVersion();
|
||||||
if (max_installed_version==current_version)
|
if (max_installed_version == current_version)
|
||||||
throw new RepositoryRefuseException("Версия "+max_installed_version+" уже установлена");
|
throw new RepositoryRefuseException("Версия " + max_installed_version + " уже установлена");
|
||||||
|
}
|
||||||
|
//---
|
||||||
|
int getSapforActualVersion() throws Exception {
|
||||||
|
File versionFile = new File(Global.TempDirectory, "version.h");
|
||||||
|
if (versionFile.exists())
|
||||||
|
FileUtils.forceDelete(versionFile);
|
||||||
|
//1. Получить версию из репозитория.
|
||||||
|
Utils.startScript(Global.TempDirectory,
|
||||||
|
Global.TempDirectory,
|
||||||
|
"get_version",
|
||||||
|
"wget --user dvmhuser --password dvmh2013 -P " +
|
||||||
|
Utils.DQuotes(Global.TempDirectory.getAbsolutePath()) +
|
||||||
|
" http://svn.dvm-system.org/svn/dvmhrepo/sapfor/experts/Sapfor_2017/_src/Utils/version.h"
|
||||||
|
).waitFor();
|
||||||
|
if (!versionFile.exists())
|
||||||
|
throw new RepositoryRefuseException("Не удалось загрузить текущую версию SAPFOR из репозитория!");
|
||||||
|
return Sapfor.readVersionFromCode(versionFile);
|
||||||
|
}
|
||||||
|
void GetSapforForCompilation() throws Exception {
|
||||||
|
//1. Проверить наличие заказов от пользователя
|
||||||
|
ServerSapfor serverSapfor = db.getSapforCopyForCompilation();
|
||||||
|
if (serverSapfor == null) {
|
||||||
|
//2 если нет. проверить есть ли свежие версии.
|
||||||
|
int max_version = db.getInstalledSapforMaxVersion();
|
||||||
|
int current_version = getSapforActualVersion();
|
||||||
|
if (current_version > max_version) {
|
||||||
|
serverSapfor = new ServerSapfor();
|
||||||
|
serverSapfor.sender_name = "server";
|
||||||
|
serverSapfor.sender_address = Constants.MailAddress;
|
||||||
|
serverSapfor.state = ServerSapforState.Queued;
|
||||||
|
db.Insert(serverSapfor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
|
response.object = serverSapfor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class ServerSapforsDBTable extends iDBTable<ServerSapfor> {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String[] getUIColumnNames() {
|
public String[] getUIColumnNames() {
|
||||||
return new String[]{"версия", "дата сборки", "сборка"};
|
return new String[]{"версия","автор", "дата сборки", "сборка"};
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Object getFieldAt(ServerSapfor object, int columnIndex) {
|
public Object getFieldAt(ServerSapfor object, int columnIndex) {
|
||||||
@@ -30,8 +30,10 @@ public class ServerSapforsDBTable extends iDBTable<ServerSapfor> {
|
|||||||
case 1:
|
case 1:
|
||||||
return object.version;
|
return object.version;
|
||||||
case 2:
|
case 2:
|
||||||
return object.getBuildDate();
|
return object.sender_name;
|
||||||
case 3:
|
case 3:
|
||||||
|
return object.getBuildDate();
|
||||||
|
case 4:
|
||||||
return object.state;
|
return object.state;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -42,8 +44,8 @@ public class ServerSapforsDBTable extends iDBTable<ServerSapfor> {
|
|||||||
@Override
|
@Override
|
||||||
protected void AdditionalInitColumns() {
|
protected void AdditionalInitColumns() {
|
||||||
// columns.get(0).setVisible(false);
|
// columns.get(0).setVisible(false);
|
||||||
columns.get(2).setRenderer(TableRenderers.RendererDate);
|
columns.get(3).setRenderer(TableRenderers.RendererDate);
|
||||||
columns.get(3).setRenderer(TableRenderers.RendererStatusEnum);
|
columns.get(4).setRenderer(TableRenderers.RendererStatusEnum);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void ShowCurrentObject() throws Exception {
|
public void ShowCurrentObject() throws Exception {
|
||||||
|
|||||||
@@ -1,134 +0,0 @@
|
|||||||
package Visual_DVM_2021.Passes.All;
|
|
||||||
import Repository.Server.ServerCode;
|
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
|
||||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
|
||||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
|
||||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
|
||||||
/*
|
|
||||||
public class InstallServerSapfor extends ConnectionPass<Object> {
|
|
||||||
boolean result;
|
|
||||||
ServerSapfor serverSapfor;
|
|
||||||
String version_text;
|
|
||||||
@Override
|
|
||||||
public String getIconPath() {
|
|
||||||
return "/icons/DownloadAll.png";
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public String getButtonText() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected boolean needsAnimation() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void Connect() throws Exception {
|
|
||||||
machine = new Machine("Ubuntu", Global.properties.ServerAddress, Global.properties.ServerUserSHHPort, MachineType.Server);
|
|
||||||
user = new User(Global.properties.ServerUserName, "mprit_2011", "");
|
|
||||||
super.Connect();
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected boolean canStart(Object... args) {
|
|
||||||
result = false;
|
|
||||||
version_text = "";
|
|
||||||
serverSapfor = null;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void ServerAction() throws Exception {
|
|
||||||
RemoteFile testingSystemHome = new RemoteFile(user.connection.sftpChannel.pwd(), "_testing_system", true);
|
|
||||||
RemoteFile repo = new RemoteFile(testingSystemHome.full_name, "Repo", true);
|
|
||||||
RemoteFile repoSapforHome = new RemoteFile(repo.full_name + Constants.SAPFOR_REPOSITORY_BIN, true);
|
|
||||||
//--
|
|
||||||
ShowMessage1("Синхронизация ветви DVM...");
|
|
||||||
user.connection.performScript(repo,
|
|
||||||
"svn checkout " + Constants.REPOSITORY_AUTHENTICATION + " " + Constants.DVM_REPOSITORY + "\n"
|
|
||||||
);
|
|
||||||
ShowMessage1("Синхронизация ветви SAPFOR...");
|
|
||||||
user.connection.performScript(repo,
|
|
||||||
"svn checkout " + Constants.REPOSITORY_AUTHENTICATION + " " + Constants.SAPFOR_REPOSITORY + "\n"
|
|
||||||
);
|
|
||||||
ShowMessage1("Сборка SAPFOR...");
|
|
||||||
//-
|
|
||||||
RemoteFile repo_bin = new RemoteFile(repoSapforHome.full_name, "Sapfor_F");
|
|
||||||
if (user.connection.Exists(repo_bin))
|
|
||||||
user.connection.sftpChannel.rm(repo_bin.full_name);
|
|
||||||
//--
|
|
||||||
user.connection.performScript(repoSapforHome, "cmake ../", "make -j 4");
|
|
||||||
RemoteFile repoSapfor = new RemoteFile(repoSapforHome, "Sapfor_F");
|
|
||||||
result = user.connection.Exists(repoSapfor);
|
|
||||||
if (result) {
|
|
||||||
RemoteFile sapforsDirectory = new RemoteFile(testingSystemHome.full_name, "Sapfors", true);
|
|
||||||
//создать папку. Для того чтобы скопировать из репозитория.
|
|
||||||
RemoteFile sapforHome = new RemoteFile(sapforsDirectory.full_name, Utils.getDateName("sapfor"));
|
|
||||||
user.connection.MKDIR(sapforHome);
|
|
||||||
RemoteFile sapforBin = new RemoteFile(sapforHome, "Sapfor_F");
|
|
||||||
user.connection.copy(repo_bin, sapforBin);
|
|
||||||
//-->>>
|
|
||||||
serverSapfor = new ServerSapfor();
|
|
||||||
serverSapfor.home_path = sapforHome.full_name;
|
|
||||||
serverSapfor.call_command = sapforBin.full_name;
|
|
||||||
serverSapfor.languageName = LanguageName.fortran;
|
|
||||||
serverSapfor.buildDate = new Date().getTime();
|
|
||||||
///--->>
|
|
||||||
RemoteFile version =new RemoteFile(sapforHome, "version.txt");
|
|
||||||
user.connection.ShellCommand(serverSapfor.getVersionCommand()+" 1>"+Utils.DQuotes(version.full_name));
|
|
||||||
if (user.connection.Exists(version)){
|
|
||||||
String raw = user.connection.readFromFile(version);
|
|
||||||
String[] data = raw.split(" ");
|
|
||||||
if (data.length >= 4) serverSapfor.version = data[3].replace(",", "");
|
|
||||||
}
|
|
||||||
//---
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
public class InstallServerSapfor extends TestingSystemPass {
|
|
||||||
boolean result;
|
|
||||||
ServerSapfor serverSapfor;
|
|
||||||
String version_text;
|
|
||||||
//--
|
|
||||||
@Override
|
|
||||||
protected boolean canStart(Object... args) {
|
|
||||||
result = false;
|
|
||||||
version_text = "";
|
|
||||||
serverSapfor = null;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
//--
|
|
||||||
@Override
|
|
||||||
public String getIconPath() {
|
|
||||||
return "/icons/DownloadAll.png";
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public String getButtonText() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected boolean needsAnimation() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected int getTimeout() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void ServerAction() throws Exception {
|
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.InstallServerSapfor));
|
|
||||||
if (response.object != null) {
|
|
||||||
result = true;
|
|
||||||
serverSapfor = (ServerSapfor) response.object;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected boolean validate() {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void performDone() throws Exception {
|
|
||||||
passes.get(PassCode_2021.PublishServerSapfor).Do(serverSapfor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -116,7 +116,7 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
|||||||
if (target.getComponentType().equals(ComponentType.Sapfor_F) && f.fields.cbAssemblyOnServer.isSelected()) {
|
if (target.getComponentType().equals(ComponentType.Sapfor_F) && f.fields.cbAssemblyOnServer.isSelected()) {
|
||||||
UI.getMainWindow().FocusTesting();
|
UI.getMainWindow().FocusTesting();
|
||||||
UI.getMainWindow().getTestingWindow().FocusSapforTesting();
|
UI.getMainWindow().getTestingWindow().FocusSapforTesting();
|
||||||
passes.get(PassCode_2021.InstallServerSapfor).Do();
|
passes.get(PassCode_2021.CompileServerSapfor).Do();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ public enum PassCode_2021 {
|
|||||||
ShowParallelVariantsCoverage,
|
ShowParallelVariantsCoverage,
|
||||||
//-
|
//-
|
||||||
DeleteServerSapfor,
|
DeleteServerSapfor,
|
||||||
InstallServerSapfor,
|
|
||||||
SaveProfile,
|
SaveProfile,
|
||||||
ApplyProfile,
|
ApplyProfile,
|
||||||
EditProfile,
|
EditProfile,
|
||||||
@@ -466,8 +465,6 @@ public enum PassCode_2021 {
|
|||||||
return "Отобразить минимальное покрытие параллельных вариантов";
|
return "Отобразить минимальное покрытие параллельных вариантов";
|
||||||
case DeleteServerSapfor:
|
case DeleteServerSapfor:
|
||||||
return "Удалить версию SAPFOR";
|
return "Удалить версию SAPFOR";
|
||||||
case InstallServerSapfor:
|
|
||||||
return "Собрать актуальную версию SAPFOR";
|
|
||||||
case EditProfile:
|
case EditProfile:
|
||||||
return "Редактировать профиль";
|
return "Редактировать профиль";
|
||||||
case DeleteProfile:
|
case DeleteProfile:
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.CompileServerSapfor).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
|
||||||
//
|
//
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
|
||||||
@@ -398,7 +398,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(true);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.CompileServerSapfor).setControlsVisible(false);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(false);
|
||||||
//
|
//
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
|
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(false);
|
||||||
@@ -419,7 +419,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
|
|||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriber).setControlsVisible(true);
|
||||||
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.DownloadAllBugReportsArchives).setControlsVisible(true);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.DeleteSubscriberWorkspace).setControlsVisible(true);
|
||||||
Pass_2021.passes.get(PassCode_2021.InstallServerSapfor).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.CompileServerSapfor).setControlsVisible(true);
|
||||||
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.DeleteServerSapfor).setControlsVisible(true);
|
||||||
//
|
//
|
||||||
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(true);
|
Pass_2021.passes.get(PassCode_2021.ShutdownComponentsServer).setControlsVisible(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user