From 96ba2f78c3f819a1701e0cc0c5c9571368bd8002 Mon Sep 17 00:00:00 2001 From: spinnakerbot Date: Mon, 12 Aug 2019 15:11:29 -0400 Subject: [PATCH] fix(provider/k8s): return operation result data (#3931) (#3934) return the operation result data alongside the data required by the run job task. the operation result data will be used when refreshing the cached manifests in downstream refresh tasks --- .../job/KubernetesRunJobDeploymentResult.java | 35 +++++++++++++++++++ .../v2/op/job/KubernetesRunJobOperation.java | 9 ++--- 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobDeploymentResult.java diff --git a/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobDeploymentResult.java b/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobDeploymentResult.java new file mode 100644 index 00000000000..29b85b9c3bf --- /dev/null +++ b/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobDeploymentResult.java @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Armory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.spinnaker.clouddriver.kubernetes.v2.op.job; + +import com.netflix.spinnaker.clouddriver.kubernetes.v2.op.OperationResult; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import lombok.Data; + +@Data +public class KubernetesRunJobDeploymentResult extends OperationResult { + Map> deployedNamesByLocation = new HashMap<>(); + + public KubernetesRunJobDeploymentResult(OperationResult result) { + this.setManifestNamesByNamespace(result.getManifestNamesByNamespace()); + this.setManifests(result.getManifests()); + this.setCreatedArtifacts(result.getCreatedArtifacts()); + this.setBoundArtifacts(result.getBoundArtifacts()); + } +} diff --git a/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobOperation.java b/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobOperation.java index 5f6db07af99..00eddc5d60d 100644 --- a/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobOperation.java +++ b/clouddriver-kubernetes/src/main/groovy/com/netflix/spinnaker/clouddriver/kubernetes/v2/op/job/KubernetesRunJobOperation.java @@ -18,7 +18,6 @@ import com.netflix.spinnaker.clouddriver.data.task.Task; import com.netflix.spinnaker.clouddriver.data.task.TaskRepository; -import com.netflix.spinnaker.clouddriver.deploy.DeploymentResult; import com.netflix.spinnaker.clouddriver.kubernetes.KubernetesCloudProvider; import com.netflix.spinnaker.clouddriver.kubernetes.v2.description.KubernetesResourcePropertyRegistry; import com.netflix.spinnaker.clouddriver.kubernetes.v2.description.job.KubernetesRunJobOperationDescription; @@ -37,7 +36,8 @@ import lombok.extern.slf4j.Slf4j; @Slf4j -public class KubernetesRunJobOperation implements AtomicOperation { +public class KubernetesRunJobOperation + implements AtomicOperation { private static final String OP_NAME = "RUN_KUBERNETES_JOB"; private final KubernetesRunJobOperationDescription description; private final KubernetesV2Credentials credentials; @@ -64,7 +64,7 @@ private static Task getTask() { return TaskRepository.threadLocalTask.get(); } - public DeploymentResult operate(List _unused) { + public KubernetesRunJobDeploymentResult operate(List _unused) { getTask().updateStatus(OP_NAME, "Running Kubernetes job..."); KubernetesManifest jobSpec = this.description.getManifest(); KubernetesKind kind = jobSpec.getKind(); @@ -102,7 +102,8 @@ public DeploymentResult operate(List _unused) { KubernetesDeployManifestOperation deployManifestOperation = new KubernetesDeployManifestOperation(deployManifestDescription, registry, provider); OperationResult operationResult = deployManifestOperation.operate(new ArrayList()); - DeploymentResult deploymentResult = new DeploymentResult(); + KubernetesRunJobDeploymentResult deploymentResult = + new KubernetesRunJobDeploymentResult(operationResult); Map> deployedNames = deploymentResult.getDeployedNamesByLocation(); for (Map.Entry> e : operationResult.getManifestNamesByNamespace().entrySet()) {