From 31d4207fd4c4e5fac61cc88f60a0f2e026f4b2ae Mon Sep 17 00:00:00 2001 From: Jacob Kiefer Date: Mon, 25 Sep 2017 13:03:31 -0400 Subject: [PATCH] feat(artifacts): Add actualArtifacts to Pipeline model. --- build.gradle | 2 +- orca-core/orca-core.gradle | 1 + .../spinnaker/orca/pipeline/ExecutionLauncher.java | 10 ++++++---- .../spinnaker/orca/pipeline/PipelineLauncher.java | 13 ++++++++----- .../spinnaker/orca/pipeline/model/Pipeline.java | 11 +++++++++++ .../orca/pipeline/model/PipelineBuilder.groovy | 10 ++++++++++ .../jedis/JedisExecutionRepository.groovy | 2 ++ 7 files changed, 39 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index a81708b2b5f..d51beafac65 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ allprojects { group = "com.netflix.spinnaker.orca" ext { - spinnakerDependenciesVersion = project.hasProperty('spinnakerDependenciesVersion') ? project.property('spinnakerDependenciesVersion') : '0.109.2' + spinnakerDependenciesVersion = project.hasProperty('spinnakerDependenciesVersion') ? project.property('spinnakerDependenciesVersion') : '0.110.5' } def checkLocalVersions = [spinnakerDependenciesVersion: spinnakerDependenciesVersion] diff --git a/orca-core/orca-core.gradle b/orca-core/orca-core.gradle index 2f3fa3f18db..f1a90ca4851 100644 --- a/orca-core/orca-core.gradle +++ b/orca-core/orca-core.gradle @@ -35,6 +35,7 @@ dependencies { compile spinnaker.dependency('spectatorApi') compile spinnaker.dependency('kork') compile spinnaker.dependency('korkExceptions') + compile spinnaker.dependency('korkArtifacts') compile "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:${spinnaker.version('jackson')}" compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${spinnaker.version('jackson')}" diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/ExecutionLauncher.java b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/ExecutionLauncher.java index da001ce78e2..6c6902f780d 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/ExecutionLauncher.java +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/ExecutionLauncher.java @@ -16,10 +16,6 @@ package com.netflix.spinnaker.orca.pipeline; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.function.Function; import com.fasterxml.jackson.databind.ObjectMapper; import com.netflix.spinnaker.orca.ExecutionStatus; import com.netflix.spinnaker.orca.pipeline.model.Execution; @@ -28,6 +24,12 @@ import com.netflix.spinnaker.orca.pipeline.persistence.ExecutionRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + import static java.lang.Boolean.parseBoolean; import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/PipelineLauncher.java b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/PipelineLauncher.java index e47b8be5b3b..83e202d1e25 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/PipelineLauncher.java +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/PipelineLauncher.java @@ -16,19 +16,21 @@ package com.netflix.spinnaker.orca.pipeline; -import java.io.IOException; -import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Optional; import com.fasterxml.jackson.databind.ObjectMapper; import com.netflix.spectator.api.Registry; +import com.netflix.spinnaker.kork.artifacts.model.Artifact; import com.netflix.spinnaker.orca.pipeline.model.Execution.ExecutionEngine; import com.netflix.spinnaker.orca.pipeline.model.Pipeline; import com.netflix.spinnaker.orca.pipeline.persistence.ExecutionRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.io.IOException; +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import java.util.Optional; + @Component public class PipelineLauncher extends ExecutionLauncher { @@ -65,6 +67,7 @@ public PipelineLauncher(ObjectMapper objectMapper, .withNotifications((List>) config.get("notifications")) .withExecutionEngine(getEnum(config, "executionEngine", ExecutionEngine.class)) .withOrigin(getString(config, "origin")) + .withActualArtifacts((List) config.get("actualArtifacts")) .build(); } diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/Pipeline.java b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/Pipeline.java index caab97c95dd..c17d3b04899 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/Pipeline.java +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/Pipeline.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.netflix.spectator.api.Registry; +import com.netflix.spinnaker.kork.artifacts.model.Artifact; public class Pipeline extends Execution { @@ -42,6 +43,16 @@ public Pipeline( private String pipelineConfigId; + private List actualArtifacts = new ArrayList<>(); + + public void setActualArtifacts(List actualArtifacts) { + this.actualArtifacts = actualArtifacts; + } + + public @Nonnull List getActualArtifacts() { + return actualArtifacts; + } + public @Nullable String getPipelineConfigId() { return pipelineConfigId; } diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/PipelineBuilder.groovy b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/PipelineBuilder.groovy index 9539e23dbe6..f073288da59 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/PipelineBuilder.groovy +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/PipelineBuilder.groovy @@ -16,6 +16,8 @@ package com.netflix.spinnaker.orca.pipeline.model +import com.netflix.spinnaker.kork.artifacts.model.Artifact + import java.util.concurrent.atomic.AtomicInteger import com.netflix.spectator.api.Registry import com.netflix.spinnaker.orca.ExecutionStatus @@ -45,6 +47,14 @@ class PipelineBuilder { return this } + PipelineBuilder withActualArtifacts(List actualArtifacts = []) { + pipeline.actualArtifacts.clear() + if (actualArtifacts) { + pipeline.actualArtifacts.addAll(actualArtifacts) + } + return this + } + PipelineBuilder withNotifications(List> notifications = []) { pipeline.notifications.clear() if (notifications) { diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/persistence/jedis/JedisExecutionRepository.groovy b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/persistence/jedis/JedisExecutionRepository.groovy index 50d651c5bf8..175fb842199 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/persistence/jedis/JedisExecutionRepository.groovy +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/persistence/jedis/JedisExecutionRepository.groovy @@ -545,6 +545,7 @@ class JedisExecutionRepository implements ExecutionRepository { map.pipelineConfigId = execution.pipelineConfigId map.trigger = mapper.writeValueAsString(execution.trigger) map.notifications = mapper.writeValueAsString(execution.notifications) + map.actualArtifacts = mapper.writeValueAsString(execution.actualArtifacts) map.initialConfig = mapper.writeValueAsString(execution.initialConfig) } else if (execution instanceof Orchestration) { map.description = execution.description @@ -653,6 +654,7 @@ class JedisExecutionRepository implements ExecutionRepository { execution.pipelineConfigId = map.pipelineConfigId execution.trigger.putAll(mapper.readValue(map.trigger, Map)) execution.notifications.addAll(mapper.readValue(map.notifications, List)) + execution.actualArtifacts.addAll(mapper.readValue(map.actualArtifacts, List)) execution.initialConfig.putAll(mapper.readValue(map.initialConfig, Map)) } else if (execution instanceof Orchestration) { execution.description = map.description