пауза тестирования. перенос фильтров влево. v++

This commit is contained in:
2025-02-06 17:26:14 +03:00
parent 63b923e33b
commit 6e0e51beff
12 changed files with 192 additions and 65 deletions

View File

@@ -68,7 +68,7 @@ public abstract class DataSetControlForm<D extends DBObject> extends ControlForm
//--
counter_ui = (count -> bar.countLabel.setText(String.valueOf(count)));
//--фильтры всегда в конец бара.
bar.add(new JSeparator());
// bar.add(new JSeparator());
for (FilterFlag filter : getFilters(FilterFlag.class)) {
bar.add(filter.getControl());
}

View File

@@ -69,7 +69,9 @@ public class Constants {
public static final String unknown_metric = "";
public static final String tests_db_name = "tests2027";
public static final String dateNaN = "NaN";
//------
//--
public static final String pause = "pause";
//--
public static final String[] crushed_cases = new String[]{
"rts err",
"rts stack trace",

View File

@@ -0,0 +1,49 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.SSH.ConnectionPass;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import java.util.Date;
public class PauseDVMPackage extends ConnectionPass<DVMPackage> {
@Override
public String getIconPath() {
return "/icons/Pause.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.dvmPackages.getUI().CheckCurrent(Log))
return false;
target = Global.testingServer.db.dvmPackages.getUI().getCurrent();
switch (target.state){
case CompilationExecution:
case RunningExecution:
break;
default:
Log.Writeln_("Возможно поставить на паузу только пакет в состоянии [компиляция] или [запуск]");
return false;
}
machine =target.getMachine();
user = target.getUser();
return true;
}
@Override
protected void ServerAction() throws Exception {
RemoteFile packageRemoteWorkspace = new RemoteFile(
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){
ex.printStackTrace();
}
}
}
}

View File

@@ -0,0 +1,46 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.SSH.ConnectionPass;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
public class ResumeDVMPackage extends ConnectionPass<DVMPackage> {
@Override
public String getIconPath() {
return "/icons/Resume.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.dvmPackages.getUI().CheckCurrent(Log))
return false;
target = Global.testingServer.db.dvmPackages.getUI().getCurrent();
switch (target.state) {
case Paused:
break;
default:
Log.Writeln_("Возможно возобновить только пакет в состоянии [пауза]");
return false;
}
machine = target.getMachine();
user = target.getUser();
return true;
}
@Override
protected void ServerAction() throws Exception {
RemoteFile packageRemoteWorkspace = new RemoteFile(
target.user_workspace + "/tests", String.valueOf(target.id), true);
if (user.connection.Exists(packageRemoteWorkspace)) {
try {
RemoteFile pauseFile = new RemoteFile(packageRemoteWorkspace, Constants.pause);
if (user.connection.Exists(pauseFile))
user.connection.sftpChannel.rm(pauseFile.full_name);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}

View File

@@ -352,11 +352,18 @@ public enum PassCode implements PassCode_ {
DeleteDVMSettings,
CloneDVMSettings,
CloneSapforSettings,
SetSapforConfigurationEthalon;
SetSapforConfigurationEthalon,
PauseDVMPackage,
ResumeDVMPackage,
;
//--
@Override
public String getDescription() {
switch (this) {
case ResumeDVMPackage:
return "Возобновить выполнение пакета тестировани DVM";
case PauseDVMPackage:
return "Поставить пакет тестирования DVM на паузу";
case SetDefaultSapforProfile:
return "Установить профиль SAPFOR по умолчанию";
case UpdateSapforProperty:

View File

@@ -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 = 1144;
version = 1145;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

@@ -10,6 +10,7 @@ public enum TasksPackageState implements StatusEnum {
//--
Inactive, //пакет просто есть. не запущен.
Queued,
Paused,
//--
TestsSynchronize, //оставить.
PackageWorkspaceCreation,
@@ -58,6 +59,7 @@ public enum TasksPackageState implements StatusEnum {
case TestsSynchronize:
case Analysis:
case Draft:
case Paused:
return VisualiserFonts.BlueState;
case CompilationExecution:
case RunningExecution:
@@ -109,6 +111,8 @@ public enum TasksPackageState implements StatusEnum {
return "сбой связи";
case DoneWithErrors:
return "завершен с ошибками";
case Paused:
return "пауза";
default:
return StatusEnum.super.getDescription();
}

View File

@@ -6,6 +6,7 @@ import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Machine.Machine;
import _VisualDVM.GlobalData.Machine.MachineType;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.GlobalData.User.User;
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.Server.ServerCode;
@@ -112,7 +113,7 @@ public abstract class TestingPlanner<P extends TestingPackage> extends TestingCl
if (!recipients.contains(testingPackage.sender_address))
recipients.add(testingPackage.sender_address);
//--
for (String address: recipients)
for (String address : recipients)
ServerCommand(ServerCode.Email, address, message);
}
}
@@ -139,71 +140,73 @@ public abstract class TestingPlanner<P extends TestingPackage> extends TestingCl
}
protected void MachineConnectionError() {
}
protected boolean checkIfPaused() throws Exception {
return false;
}
protected void PerformPackage(TestingPackage package_in) throws Exception {
testingPackage = (P) package_in;
//--
Print(testingPackage.id + ":" + testingPackage.state.getDescription());
//--
// if (testingPackage.connectionErrosCount >= 10) {
// Print(testingPackage.id + " had 10 connection errors. stop");
// UpdatePackageState(TasksPackageState.ConnectionError);
// MachineConnectionError();
// } else {
//--
InitSessionCredentials();
if (testingPackage.state.equals(TasksPackageState.Analysis)) {
AnalyseResults();
} else {
try {
if (Connect()) {
int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id);
if (ptk_id != CommonConstants.Nan) {
Print("package " + testingPackage.id + " NEEDS TO KILL");
Kill();
UpdatePackageState(TasksPackageState.Aborted);
ServerCommand(ServerCode.DeleteObjectByPK, new Pair(TestingPackageToKill.class, ptk_id));
} else {
//--
switch (testingPackage.state) {
case TestsSynchronize:
TestsSynchronize();
UpdatePackageState(TasksPackageState.PackageWorkspaceCreation);
break;
case PackageWorkspaceCreation:
PackageWorkspaceCreation();
UpdatePackageState(TasksPackageState.PackageStart);
break;
case PackageStart:
PackageStart();
testingPackage.StartDate = new Date().getTime();
UpdatePackageState(getStateAfterStart());
break;
case RunningEnd:
DownloadResults();
UpdatePackageState(TasksPackageState.Analysis);
break;
default:
if (CheckNextState()) UpdatePackage();
break;
}
//--
}
} else {
testingPackage.connectionErrosCount++;
UpdatePackage();
InitSessionCredentials();
if (testingPackage.state.equals(TasksPackageState.Analysis)) {
AnalyseResults();
} else {
try {
if (Connect()) {
//проверка на убийство и паузу
int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id);
if (ptk_id != CommonConstants.Nan) {
Print("package " + testingPackage.id + " NEEDS TO KILL");
Kill();
UpdatePackageState(TasksPackageState.Aborted);
ServerCommand(ServerCode.DeleteObjectByPK, new Pair(TestingPackageToKill.class, ptk_id));
}
} catch (Exception ex) {
Print("Ошибка сеанса. Соединение будет разорвано.");
ex.printStackTrace();
Print(ex.getMessage());
//
// testingPackage.connectionErrosCount++;
// UpdatePackage();
} finally {
Disconnect();
else if (checkIfPaused()) {
UpdatePackageState(TasksPackageState.Paused);
}
else {
//--
switch (testingPackage.state) {
case TestsSynchronize:
TestsSynchronize();
UpdatePackageState(TasksPackageState.PackageWorkspaceCreation);
break;
case PackageWorkspaceCreation:
PackageWorkspaceCreation();
UpdatePackageState(TasksPackageState.PackageStart);
break;
case PackageStart:
PackageStart();
testingPackage.StartDate = new Date().getTime();
UpdatePackageState(getStateAfterStart());
break;
case RunningEnd:
DownloadResults();
UpdatePackageState(TasksPackageState.Analysis);
break;
case Paused:
if (!checkIfPaused()&&CheckNextState())
UpdatePackage();
break;
default:
if (CheckNextState()) UpdatePackage();
break;
}
//--
}
} else {
testingPackage.connectionErrosCount++;
UpdatePackage();
}
} catch (Exception ex) {
Print("Ошибка сеанса. Соединение будет разорвано.");
ex.printStackTrace();
Print(ex.getMessage());
} finally {
Disconnect();
}
// }
}
//--
testingPackage.destructor();
testingPackage = null;

View File

@@ -138,7 +138,7 @@ public class DVMPackagesForm extends DataSetControlForm<DVMPackage> {
{
addPasses(PassCode.SynchronizeTests);
addSeparator();
addPasses(PassCode.AbortDVMPackage);
addPasses(PassCode.PauseDVMPackage,PassCode.ResumeDVMPackage,PassCode.AbortDVMPackage);
addSeparator();
addPasses(PassCode.DownloadDVMPackage,
PassCode.ExportDVMPackageToExcel,

View File

@@ -58,6 +58,11 @@ public class RemoteDVMTestingPlanner extends DVMTestingPlanner {
}
}
@Override
protected boolean checkIfPaused() throws Exception {
RemoteFile pausedFile = new RemoteFile(packageRemoteWorkspace, Constants.pause);
return user.connection.Exists(pausedFile);
}
@Override
protected void PackageWorkspaceCreation() throws Exception {
if (!CheckModules()) {
return;

BIN
src/icons/Resume.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B