пауза тестирования. перенос фильтров влево. 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

15
.idea/workspace.xml generated
View File

@@ -7,6 +7,17 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ResumeDVMPackage.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/Resume.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TasksPackageState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TasksPackageState.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/UI/DVMPackagesForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/UI/DVMPackagesForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@@ -86,7 +97,7 @@
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.SHOW" value="true" />
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="509" />
<property name="extract.method.default.visibility" value="public" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/icons/Transformations" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/icons" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
@@ -99,9 +110,9 @@
<recent name="controls.Trees" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\Transformations" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\Common\icons" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\versions" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\files" />
</key>

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;
@@ -139,30 +140,32 @@ 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 {
}
else if (checkIfPaused()) {
UpdatePackageState(TasksPackageState.Paused);
}
else {
//--
switch (testingPackage.state) {
case TestsSynchronize:
@@ -182,6 +185,10 @@ public abstract class TestingPlanner<P extends TestingPackage> extends TestingCl
DownloadResults();
UpdatePackageState(TasksPackageState.Analysis);
break;
case Paused:
if (!checkIfPaused()&&CheckNextState())
UpdatePackage();
break;
default:
if (CheckNextState()) UpdatePackage();
break;
@@ -196,14 +203,10 @@ public abstract class TestingPlanner<P extends TestingPackage> extends TestingCl
Print("Ошибка сеанса. Соединение будет разорвано.");
ex.printStackTrace();
Print(ex.getMessage());
//
// testingPackage.connectionErrosCount++;
// UpdatePackage();
} 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