From 22a704dc9dcfcea2566b62e231d95982bd387745 Mon Sep 17 00:00:00 2001 From: spinnakerbot Date: Fri, 4 Jan 2019 14:18:55 -0500 Subject: [PATCH] fix(pipelines): Pass resolveArtifacts = true to plan endpoint (#427) (#428) Orca now requires callers to explicitly request artifact resolution when calling '/plan' on a templated pipeline. We do want this behavior when triggering from echo, so pass the flag. --- .../spinnaker/echo/pipelinetriggers/orca/OrcaService.java | 4 ++-- .../echo/pipelinetriggers/orca/PipelineInitiator.java | 2 +- .../echo/pipelinetriggers/orca/PipelineInitiatorSpec.groovy | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/OrcaService.java b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/OrcaService.java index c88a37fc3..4bddc5ec8 100644 --- a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/OrcaService.java +++ b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/OrcaService.java @@ -32,8 +32,8 @@ public interface OrcaService { @POST("/orchestrate") Observable trigger(@Body Pipeline pipeline); - @POST("/orchestrate") - Map plan(@Body Map pipelineConfig); + @POST("/plan") + Map plan(@Body Map pipelineConfig, @Query("resolveArtifacts") boolean resolveArtifacts); @POST("/orchestrate") Observable trigger(@Body Pipeline pipeline, @Header(AuthenticatedRequest.SPINNAKER_USER) String runAsUser); diff --git a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiator.java b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiator.java index 3b948d7b5..35791946c 100644 --- a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiator.java +++ b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiator.java @@ -98,7 +98,7 @@ public void startPipeline(Pipeline pipeline) { boolean propagateAuth = pipeline.getTrigger() != null && pipeline.getTrigger().isPropagateAuth(); log.debug("Planning templated pipeline {} before triggering", pipeline.getId()); pipeline = pipeline.withPlan(true); - Map resolvedPipelineMap = orca.plan(objectMapper.convertValue(pipeline, Map.class)); + Map resolvedPipelineMap = orca.plan(objectMapper.convertValue(pipeline, Map.class), true); pipeline = objectMapper.convertValue(resolvedPipelineMap, Pipeline.class); if (propagateAuth) { pipeline = pipeline.withTrigger(pipeline.getTrigger().atPropagateAuth(true)); diff --git a/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiatorSpec.groovy b/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiatorSpec.groovy index 524d8a088..fe578dbec 100644 --- a/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiatorSpec.groovy +++ b/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/orca/PipelineInitiatorSpec.groovy @@ -53,7 +53,7 @@ class PipelineInitiatorSpec extends Specification { then: 1 * fiatStatus.isEnabled() >> { return true } - orcaCalls * orca.plan(_) >> pipelineMap + orcaCalls * orca.plan(_, true) >> pipelineMap objectMapper.convertValue(pipelineMap, Pipeline.class) >> pipeline 1 * orca.trigger(_) >> empty()