diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-12-10 09:02:45 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-12-11 10:49:29 +0100 |
commit | dbb989c55b2e4a89238096f8bfc5730cee9e582b (patch) | |
tree | 17afe3363611284ece40b6c7af8683dad2dcf52f /controller-server | |
parent | 577d79816b817d869fe870073974be815641d353 (diff) |
More fix
Diffstat (limited to 'controller-server')
4 files changed, 12 insertions, 4 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java index fc6c34e3f27..cf5a0060c90 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java @@ -185,6 +185,9 @@ public class DeploymentStatus { /** Returns a DAG of the dependencies between the primitive steps in the spec, with iteration order equal to declaration order. */ Map<JobId, StepStatus> jobDependencies(DeploymentSpec spec) { + if (DeploymentSpec.empty.equals(spec)) + return Map.of(); + Map<JobId, StepStatus> dependencies = new LinkedHashMap<>(); List<StepStatus> previous = List.of(); for (DeploymentSpec.Step step : spec.steps()) @@ -196,7 +199,7 @@ public class DeploymentStatus { /** Adds the primitive steps contained in the given step, which depend on the given previous primitives, to the dependency graph. */ List<StepStatus> fillStep(Map<JobId, StepStatus> dependencies, DeploymentSpec.Step step, List<StepStatus> previous, InstanceName instance) { - if (step.steps().isEmpty()) { + if (step.steps().isEmpty()) { // TODO jonmv: Throw out empty container steps :( if ( ! step.delay().isZero()) return List.of(new DelayStatus((DeploymentSpec.Delay) step, previous)); @@ -215,12 +218,13 @@ public class DeploymentStatus { stepStatus = JobStepStatus.ofProductionTest((DeclaredTest) step, previous, this, instance, jobType, preType); previous = List.of(stepStatus); } - else { + else if (step.concerns(prod)) { jobType = JobType.from(system, ((DeclaredZone) step).environment(), ((DeclaredZone) step).region().get()) .orElseThrow(() -> new IllegalStateException("No job is known for " + step + " in " + system)); stepStatus = JobStepStatus.ofProductionDeployment((DeclaredZone) step, previous, this, instance, jobType); previous = List.of(stepStatus); } + else return previous; // Empty container steps end up here. dependencies.put(new JobId(application.id().instance(instance), jobType), stepStatus); return previous; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index c1ac15a803c..b5e8e3704db 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -5,6 +5,7 @@ import com.yahoo.config.application.api.DeploymentInstanceSpec; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.application.api.DeploymentSpec.Step; import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.log.LogLevel; import com.yahoo.vespa.hosted.controller.Application; @@ -264,8 +265,9 @@ public class DeploymentTrigger { status.jobsToRun().forEach((job, versionsList) -> { status.stepStatus().get(job).readyAt(status.application().change()).ifPresent(readyAt -> { for (Versions versions : versionsList) - if ( ! isSuspendedInAnotherZone(status.application().require(job.application().instance()), - job.type().zone(controller.system()))) + if ( ! ( isSuspendedInAnotherZone(status.application().require(job.application().instance()), + job.type().zone(controller.system())) + && job.type().environment() != Environment.prod)) jobs.add(deploymentJob(status.application().require(job.application().instance()), versions, status.application().change(), diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java index d10bad23b8a..f7847d4974a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java @@ -24,6 +24,7 @@ import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; import com.yahoo.vespa.hosted.controller.application.Change; import com.yahoo.vespa.hosted.controller.application.Deployment; import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId; +import com.yahoo.vespa.hosted.controller.deployment.DeploymentStatus; import com.yahoo.vespa.hosted.controller.deployment.DeploymentSteps; import com.yahoo.vespa.hosted.controller.deployment.JobController; import com.yahoo.vespa.hosted.controller.deployment.JobList; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunnerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunnerTest.java index a1c83cb488d..08b5380922b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunnerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunnerTest.java @@ -9,6 +9,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.deployment.RunId; import com.yahoo.vespa.hosted.controller.api.integration.deployment.SourceRevision; import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId; +import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder; import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester; import com.yahoo.vespa.hosted.controller.deployment.JobController; import com.yahoo.vespa.hosted.controller.deployment.Run; |