aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-11-07 12:31:44 +0100
committerJon Marius Venstad <venstad@gmail.com>2019-11-07 12:31:44 +0100
commit89d5cc75be78bbffb8c1f8ae49a2f2f57f481ccd (patch)
treea4a4664dbb0101bf0e91d35825b301c91b53a942
parent6337fb0bcac006f321cae8689680eadc5977c4a4 (diff)
Report job completion after job has properly ended, from job runner
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java8
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java16
2 files changed, 15 insertions, 9 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index 33365d20926..8cb5b08bcdb 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -559,14 +559,6 @@ public class InternalStepRunner implements StepRunner {
private Optional<RunStatus> report(RunId id, DualLogger logger) {
try {
controller.jobController().active(id).ifPresent(run -> {
- JobReport report = JobReport.ofJob(run.id().application(),
- run.id().type(),
- run.id().number(),
- ! run.hasFailed() ? Optional.empty()
- : Optional.of(run.status() == outOfCapacity ? DeploymentJobs.JobError.outOfCapacity
- : DeploymentJobs.JobError.unknown));
- controller.applications().deploymentTrigger().notifyOfCompletion(report);
-
if (run.hasFailed())
sendNotification(run, logger);
});
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
index fc311e2a2af..ffe90b8c44d 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance;
import com.google.inject.Inject;
import com.yahoo.log.LogLevel;
import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.application.DeploymentJobs;
import com.yahoo.vespa.hosted.controller.deployment.InternalStepRunner;
import com.yahoo.vespa.hosted.controller.deployment.JobController;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.RunId;
@@ -13,6 +14,7 @@ import com.yahoo.vespa.hosted.controller.deployment.StepRunner;
import org.jetbrains.annotations.TestOnly;
import java.time.Duration;
+import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -21,6 +23,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
+import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.outOfCapacity;
+
/**
* Advances the set of {@link Run}s for a {@link JobController}.
*
@@ -82,7 +86,17 @@ public class JobRunner extends Maintainer {
private void finish(RunId id) {
try {
jobs.finish(id);
- }
+ controller().jobController().run(id).ifPresent(run -> {
+ DeploymentJobs.JobReport report = DeploymentJobs.JobReport.ofJob(run.id().application(),
+ run.id().type(),
+ run.id().number(),
+ ! run.hasFailed() ? Optional.empty()
+ : Optional.of(run.status() == outOfCapacity ? DeploymentJobs.JobError.outOfCapacity
+ : DeploymentJobs.JobError.unknown));
+ controller().applications().deploymentTrigger().notifyOfCompletion(report);
+ });
+
+ }
catch (Exception e) {
log.log(LogLevel.WARNING, "Exception finishing " + id, e);
}