From 73925aaf37b86ae94c42a160149309e1c6f2d69e Mon Sep 17 00:00:00 2001 From: David Byron <82477955+dbyron-sf@users.noreply.github.com> Date: Wed, 17 Apr 2024 10:22:23 -0700 Subject: [PATCH] feat(pipelinetriggers): set pipeline-cache.filterFront50Pipelines to true by default (#1416) so echo only queries for the pipelines it needs from front50 instead of all of them. https://github.com/spinnaker/echo/pull/1292 introduced this feature on Apr 21, 2023, first released in version 1.31.0 of Spinnaker. Enough time has passed to enable this by default. --- .../PipelineCacheConfigurationProperties.java | 2 +- .../pipelinetriggers/PipelineCacheSpec.groovy | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheConfigurationProperties.java b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheConfigurationProperties.java index 630ff8f6f..93ce31c00 100644 --- a/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheConfigurationProperties.java +++ b/echo-pipelinetriggers/src/main/java/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheConfigurationProperties.java @@ -29,5 +29,5 @@ public class PipelineCacheConfigurationProperties { * If false, query front50 for all pipelines. If true, query front50 for only enabled pipelines * with enabled triggers with types that echo requires. */ - private boolean filterFront50Pipelines; + private boolean filterFront50Pipelines = true; } diff --git a/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheSpec.groovy b/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheSpec.groovy index 94628d2f0..ff26df0a6 100644 --- a/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheSpec.groovy +++ b/echo-pipelinetriggers/src/test/groovy/com/netflix/spinnaker/echo/pipelinetriggers/PipelineCacheSpec.groovy @@ -27,6 +27,7 @@ import com.netflix.spinnaker.echo.pipelinetriggers.eventhandlers.BaseTriggerEven import com.netflix.spinnaker.echo.pipelinetriggers.orca.OrcaService import com.netflix.spinnaker.echo.services.Front50Service import com.netflix.spinnaker.echo.test.RetrofitStubs +import spock.lang.Unroll import spock.lang.Shared import spock.lang.Specification import spock.lang.Subject @@ -70,7 +71,7 @@ class PipelineCacheSpec extends Specification implements RetrofitStubs { def pipeline = Pipeline.builder().application('application').name('Pipeline').id('P1').build() def initialLoad = [] - front50.getPipelines() >> initialLoad >> { throw unavailable() } >> [pipelineMap] + front50.getPipelines(true, true, supportedTriggers) >> initialLoad >> { throw unavailable() } >> [pipelineMap] pipelineCache.start() expect: 'null pipelines when we have not polled yet' @@ -95,16 +96,25 @@ class PipelineCacheSpec extends Specification implements RetrofitStubs { pipelineCache.getPipelines() == [pipeline] } - def "filters front50 pipelines when configured to do so"() { + @Unroll + def "filters front50 pipelines when configured to do so (#filterFront50Pipelines)"() { given: - pipelineCacheConfigurationProperties.filterFront50Pipelines = true + pipelineCacheConfigurationProperties.filterFront50Pipelines = filterFront50Pipelines when: pipelineCache.start() pipelineCache.pollPipelineConfigs() then: - 1 * front50.getPipelines(true, true, supportedTriggers) >> [] // arbitrary return value + if (filterFront50Pipelines) { + 1 * front50.getPipelines(true, true, supportedTriggers) >> [] // arbitrary return value + } else { + 1 * front50.getPipelines() >> [] // arbitrary return value + } + 0 * front50._ + + where: + filterFront50Pipelines << [true, false] } def "getPipelineById calls front50's getPipeline endpoint"() {