проверка, что версии SAPFOR не собрана. v++
This commit is contained in:
3
.idea/workspace.xml
generated
3
.idea/workspace.xml
generated
@@ -8,7 +8,8 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<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$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
|
||||
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
||||
@Override
|
||||
public void GetVersionInfo() {
|
||||
version = 1071;
|
||||
version = 1072;
|
||||
String pattern = "MMM dd yyyy HH:mm:ss";
|
||||
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||
date_text = df.format(getClassBuildTime());
|
||||
|
||||
@@ -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,6 +493,20 @@ 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();
|
||||
@@ -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",
|
||||
@@ -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(",", "");
|
||||
serverSapfor.version = String.valueOf(current_version);
|
||||
//---
|
||||
EmailSapforAssembly(current_version, true);
|
||||
//---
|
||||
} else {
|
||||
//---
|
||||
EmailSapforAssembly(current_version, false);
|
||||
//---
|
||||
throw new RepositoryRefuseException("Бинарный файл SAPFOR не найден!");
|
||||
}
|
||||
}else throw new RepositoryRefuseException("Не удалось собрать SAPFOR");
|
||||
}
|
||||
private void ReplaceTestCode() throws Exception {
|
||||
Test test = (Test) request.object;
|
||||
@@ -560,4 +596,33 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
);
|
||||
} 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(",", "");
|
||||
}
|
||||
*/
|
||||
@@ -1,22 +1,9 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Machine.Machine;
|
||||
import GlobalData.Machine.MachineType;
|
||||
import GlobalData.RemoteFile.RemoteFile;
|
||||
import GlobalData.User.User;
|
||||
import ProjectData.LanguageName;
|
||||
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.SSH.ConnectionPass;
|
||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Vector;
|
||||
/*
|
||||
public class InstallServerSapfor extends ConnectionPass<Object> {
|
||||
boolean result;
|
||||
@@ -137,35 +124,10 @@ public class InstallServerSapfor extends TestingSystemPass{
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
super.performFinish();
|
||||
|
||||
new TestingSystemPass() {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Рассылка выходных файлов сборки SAPFOR";
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Vector<String> info = new Vector<>();
|
||||
info.add(result ? serverSapfor.version : "?");
|
||||
info.add(result ? "Успешно" : "С ошибками");
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.EmailSapforAssembly,
|
||||
Current.getAccount().email,
|
||||
info
|
||||
));
|
||||
}
|
||||
}.Do();
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
protected void showFail() throws Exception {
|
||||
Log.Writeln_("Файл [SAPFOR_F] не найден!");
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
passes.get(PassCode_2021.PublishServerSapfor).Do(serverSapfor);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user