проверка, что версии SAPFOR не собрана. v++
This commit is contained in:
@@ -170,6 +170,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
int test_id;
|
||||
switch (code) {
|
||||
case EmailSapforAssembly:
|
||||
/*
|
||||
Print("Сообщить о сборке SAPFOR для пользователя " + request.arg);
|
||||
Vector<String> assembly_info = (Vector<String>) request.object;
|
||||
File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile();
|
||||
@@ -182,6 +183,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
);
|
||||
Email(message, out, err);
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
*/
|
||||
break;
|
||||
//------------------------------------------->>
|
||||
case DownloadTest:
|
||||
@@ -491,9 +493,23 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
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 repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN).toFile();
|
||||
File repo_bin = new File(repoSapforHome, "Sapfor_F");
|
||||
//--
|
||||
System.out.println("Синхронизация ветви DVM...");
|
||||
@@ -507,9 +523,31 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
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",
|
||||
@@ -517,7 +555,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
//--
|
||||
System.out.println("DONE");
|
||||
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
|
||||
System.out.println("Result file is "+Utils.Brackets(repoSapfor.getAbsolutePath()));
|
||||
System.out.println("Result file is " + Utils.Brackets(repoSapfor.getAbsolutePath()));
|
||||
if (repoSapfor.exists()) {
|
||||
System.out.println("assembly found!");
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
@@ -535,18 +573,16 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
serverSapfor.languageName = LanguageName.fortran;
|
||||
serverSapfor.buildDate = new Date().getTime();
|
||||
response.object = serverSapfor;
|
||||
File version =new File(sapforHome, "version.txt");
|
||||
System.out.println("Запрос версии..");
|
||||
Utils.startScript(sapforHome, sapforHome, "get_version",
|
||||
serverSapfor.getVersionCommand()+" 1>"+Utils.DQuotes(version.getAbsolutePath())).waitFor();
|
||||
if (version.exists()){
|
||||
System.out.println("version.txt found");
|
||||
String raw = FileUtils.readFileToString(version);
|
||||
System.out.println(Utils.Brackets(raw));
|
||||
String[] data = raw.split(" ");
|
||||
if (data.length >= 4) serverSapfor.version = data[3].replace(",", "");
|
||||
}
|
||||
}else throw new RepositoryRefuseException("Не удалось собрать SAPFOR");
|
||||
serverSapfor.version = String.valueOf(current_version);
|
||||
//---
|
||||
EmailSapforAssembly(current_version, true);
|
||||
//---
|
||||
} else {
|
||||
//---
|
||||
EmailSapforAssembly(current_version, false);
|
||||
//---
|
||||
throw new RepositoryRefuseException("Бинарный файл SAPFOR не найден!");
|
||||
}
|
||||
}
|
||||
private void ReplaceTestCode() throws Exception {
|
||||
Test test = (Test) request.object;
|
||||
@@ -558,6 +594,35 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
"Не удалось прикрепить проект к тесту с id " + test.id
|
||||
+ "\nТест будет удален"
|
||||
);
|
||||
}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);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
File version = new File(sapforHome, "version.txt");
|
||||
System.out.println("Запрос версии..");
|
||||
Utils.startScript(sapforHome, sapforHome, "get_version",
|
||||
serverSapfor.getVersionCommand() + " 1>" + Utils.DQuotes(version.getAbsolutePath())).waitFor();
|
||||
if (version.exists()) {
|
||||
System.out.println("version.txt found");
|
||||
String raw = FileUtils.readFileToString(version);
|
||||
System.out.println(Utils.Brackets(raw));
|
||||
String[] data = raw.split(" ");
|
||||
if (data.length >= 4) serverSapfor.version = data[3].replace(",", "");
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user