доделал отображение прогресса и актуализацию активных пакетов. пришлось заменить признак изменения с состояния на дату изменения.
This commit is contained in:
@@ -91,9 +91,19 @@ public abstract class TestingPlanner<P extends TestingPackage> {
|
||||
protected void Disconnect() {
|
||||
}
|
||||
//---
|
||||
/*
|
||||
protected void CheckExecutionStates() throws Exception{
|
||||
|
||||
case CompilationWorkspacesCreation:
|
||||
case CompilationPreparation:
|
||||
case CompilationExecution:
|
||||
case RunningWorkspacesCreation:
|
||||
case RunningPreparation:
|
||||
case RunningExecution:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
}
|
||||
*/
|
||||
//жизненный цикл планировщика
|
||||
protected void Session() throws Exception {
|
||||
switch (testingPackage.state) {
|
||||
@@ -109,21 +119,15 @@ public abstract class TestingPlanner<P extends TestingPackage> {
|
||||
PackageStart();
|
||||
EmailPackage();
|
||||
testingPackage.StartDate = new Date().getTime();
|
||||
testingPackage.progress = 0;
|
||||
UpdatePackageState(getStateAfterStart());
|
||||
break;
|
||||
case CompilationWorkspacesCreation:
|
||||
case CompilationPreparation:
|
||||
case CompilationExecution:
|
||||
case RunningWorkspacesCreation:
|
||||
case RunningPreparation:
|
||||
case RunningExecution:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
case RunningEnd:
|
||||
DownloadResults();
|
||||
UpdatePackageState(TasksPackageState.Analysis);
|
||||
break;
|
||||
default:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// ---
|
||||
|
||||
@@ -377,8 +377,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
break;
|
||||
case GetFirstActiveDVMPackage:
|
||||
Print("Получить первый активный пакет задач DVM");
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = db.getFirstActiveDVMPackage();
|
||||
GetFirstActiveDVMPackage();
|
||||
break;
|
||||
case DVMPackageNeedsKill:
|
||||
Print("Проверить нуждает ли пакет DVM в убийстве");
|
||||
@@ -724,17 +723,26 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
//--
|
||||
}
|
||||
//--
|
||||
void GetFirstActiveDVMPackage() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = null;
|
||||
DVMPackage dvmPackage = db.getFirstActiveDVMPackage();
|
||||
if (dvmPackage != null) {
|
||||
//нужно вернуть копию объекта с иным адресом!!
|
||||
response.object = new DVMPackage(dvmPackage);
|
||||
}
|
||||
}
|
||||
//---
|
||||
void UpdateActiveDVMPackages() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
Vector<Pair<Integer, TasksPackageState>> keys_pairs = (Vector<Pair<Integer, TasksPackageState>>) request.object;
|
||||
Vector<Pair<Integer, Long>> keys_pairs = (Vector<Pair<Integer, Long>>) request.object;
|
||||
Vector<DVMPackage> res = new Vector<>();
|
||||
//--
|
||||
for (Pair<Integer, TasksPackageState> p : keys_pairs) {
|
||||
for (Pair<Integer, Long> p : keys_pairs) {
|
||||
if (db.dvmPackages.containsKey(p.getKey())) {
|
||||
DVMPackage tasksPackage = db.dvmPackages.get(p.getKey());
|
||||
if (!p.getValue().equals(tasksPackage.state))
|
||||
res.add(tasksPackage);
|
||||
DVMPackage actual = db.dvmPackages.get(p.getKey());
|
||||
if (actual.ChangeDate != p.getValue())
|
||||
res.add(new DVMPackage(actual));
|
||||
}
|
||||
}
|
||||
response.object = res;
|
||||
|
||||
@@ -238,19 +238,15 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
|
||||
protected boolean CheckNextState() throws Exception {
|
||||
boolean progress_changed = false;
|
||||
boolean state_changed = false;
|
||||
|
||||
RemoteFile progress = new RemoteFile(packageRemoteWorkspace, "progress");
|
||||
if (user.connection.Exists(progress)) {
|
||||
String s = user.connection.readFromFile(progress).replace("\r", "").replace("\n", "");
|
||||
String s = user.connection.readFromFile(progress);
|
||||
int current_progress = Integer.parseInt(s);
|
||||
System.out.println("current_progress="+current_progress);
|
||||
System.out.println("old_progress="+testingPackage.progress);
|
||||
/*
|
||||
if (current_progress != testingPackage.progress) {
|
||||
Print("progress changed: "+current_progress);
|
||||
testingPackage.progress = current_progress;
|
||||
progress_changed = true;
|
||||
}
|
||||
*/
|
||||
}
|
||||
RemoteFile stateDir = new RemoteFile(packageRemoteWorkspace, "state");
|
||||
//состояния пакета могут меняться только по возрастанию. ищем, появилось ли такое.
|
||||
|
||||
Reference in New Issue
Block a user