проверка, что версии SAPFOR не собрана. v++
This commit is contained in:
3
.idea/workspace.xml
generated
3
.idea/workspace.xml
generated
@@ -8,7 +8,8 @@
|
|||||||
<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 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$/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>
|
</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" />
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
|
|||||||
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
||||||
@Override
|
@Override
|
||||||
public void GetVersionInfo() {
|
public void GetVersionInfo() {
|
||||||
version = 1071;
|
version = 1072;
|
||||||
String pattern = "MMM dd yyyy HH:mm:ss";
|
String pattern = "MMM dd yyyy HH:mm:ss";
|
||||||
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||||
date_text = df.format(getClassBuildTime());
|
date_text = df.format(getClassBuildTime());
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
int test_id;
|
int test_id;
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case EmailSapforAssembly:
|
case EmailSapforAssembly:
|
||||||
|
/*
|
||||||
Print("Сообщить о сборке SAPFOR для пользователя " + request.arg);
|
Print("Сообщить о сборке SAPFOR для пользователя " + request.arg);
|
||||||
Vector<String> assembly_info = (Vector<String>) request.object;
|
Vector<String> assembly_info = (Vector<String>) request.object;
|
||||||
File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile();
|
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);
|
Email(message, out, err);
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
//------------------------------------------->>
|
//------------------------------------------->>
|
||||||
case DownloadTest:
|
case DownloadTest:
|
||||||
@@ -491,9 +493,23 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
|
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
|
||||||
}
|
}
|
||||||
private void InstallServerSapfor() throws Exception {
|
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 testingSystemHome = new File(Global.Home);
|
||||||
File repo = new File(testingSystemHome, "Repo");
|
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");
|
File repo_bin = new File(repoSapforHome, "Sapfor_F");
|
||||||
//--
|
//--
|
||||||
System.out.println("Синхронизация ветви DVM...");
|
System.out.println("Синхронизация ветви DVM...");
|
||||||
@@ -507,9 +523,31 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
Constants.REPOSITORY_AUTHENTICATION +
|
Constants.REPOSITORY_AUTHENTICATION +
|
||||||
" " + Constants.SAPFOR_REPOSITORY + " 1>spf_out.txt 2>spf_err.txt\n").waitFor();
|
" " + Constants.SAPFOR_REPOSITORY + " 1>spf_out.txt 2>spf_err.txt\n").waitFor();
|
||||||
//--
|
//--
|
||||||
|
|
||||||
if (repo_bin.exists())
|
if (repo_bin.exists())
|
||||||
FileUtils.forceDelete(repo_bin);
|
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...");
|
System.out.println("Сборка SAPFOR...");
|
||||||
Utils.startScript(repoSapforHome, repoSapforHome, "build_sapfor",
|
Utils.startScript(repoSapforHome, repoSapforHome, "build_sapfor",
|
||||||
@@ -517,7 +555,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
//--
|
//--
|
||||||
System.out.println("DONE");
|
System.out.println("DONE");
|
||||||
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
|
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()) {
|
if (repoSapfor.exists()) {
|
||||||
System.out.println("assembly found!");
|
System.out.println("assembly found!");
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
@@ -535,18 +573,16 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
serverSapfor.languageName = LanguageName.fortran;
|
serverSapfor.languageName = LanguageName.fortran;
|
||||||
serverSapfor.buildDate = new Date().getTime();
|
serverSapfor.buildDate = new Date().getTime();
|
||||||
response.object = serverSapfor;
|
response.object = serverSapfor;
|
||||||
File version =new File(sapforHome, "version.txt");
|
serverSapfor.version = String.valueOf(current_version);
|
||||||
System.out.println("Запрос версии..");
|
//---
|
||||||
Utils.startScript(sapforHome, sapforHome, "get_version",
|
EmailSapforAssembly(current_version, true);
|
||||||
serverSapfor.getVersionCommand()+" 1>"+Utils.DQuotes(version.getAbsolutePath())).waitFor();
|
//---
|
||||||
if (version.exists()){
|
} else {
|
||||||
System.out.println("version.txt found");
|
//---
|
||||||
String raw = FileUtils.readFileToString(version);
|
EmailSapforAssembly(current_version, false);
|
||||||
System.out.println(Utils.Brackets(raw));
|
//---
|
||||||
String[] data = raw.split(" ");
|
throw new RepositoryRefuseException("Бинарный файл SAPFOR не найден!");
|
||||||
if (data.length >= 4) serverSapfor.version = data[3].replace(",", "");
|
}
|
||||||
}
|
|
||||||
}else throw new RepositoryRefuseException("Не удалось собрать SAPFOR");
|
|
||||||
}
|
}
|
||||||
private void ReplaceTestCode() throws Exception {
|
private void ReplaceTestCode() throws Exception {
|
||||||
Test test = (Test) request.object;
|
Test test = (Test) request.object;
|
||||||
@@ -558,6 +594,35 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
"Не удалось прикрепить проект к тесту с id " + test.id
|
"Не удалось прикрепить проект к тесту с id " + test.id
|
||||||
+ "\nТест будет удален"
|
+ "\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(",", "");
|
||||||
|
}
|
||||||
|
*/
|
||||||
@@ -1,22 +1,9 @@
|
|||||||
package Visual_DVM_2021.Passes.All;
|
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.ServerCode;
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
import Repository.Server.ServerExchangeUnit_2021;
|
||||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
||||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
|
|
||||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Vector;
|
|
||||||
/*
|
/*
|
||||||
public class InstallServerSapfor extends ConnectionPass<Object> {
|
public class InstallServerSapfor extends ConnectionPass<Object> {
|
||||||
boolean result;
|
boolean result;
|
||||||
@@ -99,7 +86,7 @@ public class InstallServerSapfor extends ConnectionPass<Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class InstallServerSapfor extends TestingSystemPass{
|
public class InstallServerSapfor extends TestingSystemPass {
|
||||||
boolean result;
|
boolean result;
|
||||||
ServerSapfor serverSapfor;
|
ServerSapfor serverSapfor;
|
||||||
String version_text;
|
String version_text;
|
||||||
@@ -131,41 +118,16 @@ public class InstallServerSapfor extends TestingSystemPass{
|
|||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected void ServerAction() throws Exception {
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.InstallServerSapfor));
|
Command(new ServerExchangeUnit_2021(ServerCode.InstallServerSapfor));
|
||||||
if (response.object!=null){
|
if (response.object != null) {
|
||||||
result = true;
|
result = true;
|
||||||
serverSapfor = (ServerSapfor) response.object;
|
serverSapfor = (ServerSapfor) response.object;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
@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() {
|
protected boolean validate() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void showFail() throws Exception {
|
|
||||||
Log.Writeln_("Файл [SAPFOR_F] не найден!");
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void performDone() throws Exception {
|
protected void performDone() throws Exception {
|
||||||
passes.get(PassCode_2021.PublishServerSapfor).Do(serverSapfor);
|
passes.get(PassCode_2021.PublishServerSapfor).Do(serverSapfor);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user