diff --git a/orca-api/src/main/java/com/netflix/spinnaker/orca/api/pipeline/OverridableTimeoutRetryableTask.java b/orca-api/src/main/java/com/netflix/spinnaker/orca/api/pipeline/OverridableTimeoutRetryableTask.java
index 40ef34c4f1..f2353b0f0f 100644
--- a/orca-api/src/main/java/com/netflix/spinnaker/orca/api/pipeline/OverridableTimeoutRetryableTask.java
+++ b/orca-api/src/main/java/com/netflix/spinnaker/orca/api/pipeline/OverridableTimeoutRetryableTask.java
@@ -19,11 +19,9 @@
/**
* A retryable task whose timeout is taken from the top level stage if that value has been
- * overridden.
+ * overridden. {@see com.netflix.spinnaker.orca.q.handler.RunTaskHandler} for the way this interface is used.
*
*
These are typically wait/monitor stages
- *
- *
TODO(rz): What even is the point of this interface?
*/
@Alpha
public interface OverridableTimeoutRetryableTask extends RetryableTask {}
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/AbstractCloudProviderAwareTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/AbstractCloudProviderAwareTask.groovy
deleted file mode 100644
index aa1aee1e1b..0000000000
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/AbstractCloudProviderAwareTask.groovy
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2015 Netflix, Inc.
- *
- * 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.orca.clouddriver.tasks
-
-import com.netflix.spinnaker.orca.api.pipeline.Task
-import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
-import groovy.util.logging.Slf4j
-
-
-@Slf4j
-abstract class AbstractCloudProviderAwareTask implements CloudProviderAware, Task {
-
-}
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractClusterWideClouddriverTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractClusterWideClouddriverTask.groovy
index c58692bf3f..4fc7885dac 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractClusterWideClouddriverTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractClusterWideClouddriverTask.groovy
@@ -16,6 +16,7 @@
package com.netflix.spinnaker.orca.clouddriver.tasks.cluster
+import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
@@ -27,7 +28,8 @@ import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.CloneServerGr
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.CreateServerGroupStage
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.OortHelper
import com.netflix.spinnaker.orca.clouddriver.utils.TrafficGuard
import com.netflix.spinnaker.orca.kato.pipeline.CopyLastAsgStage
@@ -38,7 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired
* A task that operates on some subset of the ServerGroups in a cluster.
*/
@Slf4j
-abstract class AbstractClusterWideClouddriverTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+abstract class AbstractClusterWideClouddriverTask implements RetryableTask, CloudProviderAware, Task {
@Override
public long getBackoffPeriod() {
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractWaitForClusterWideClouddriverTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractWaitForClusterWideClouddriverTask.groovy
index 378701418d..b5c30fce2c 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractWaitForClusterWideClouddriverTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/AbstractWaitForClusterWideClouddriverTask.groovy
@@ -22,7 +22,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.pipeline.cluster.AbstractClusterWideClouddriverOperationStage.ClusterSelection
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.OortHelper
import groovy.transform.Canonical
import groovy.transform.ToString
@@ -31,7 +32,7 @@ import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
-abstract class AbstractWaitForClusterWideClouddriverTask extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+abstract class AbstractWaitForClusterWideClouddriverTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
private Logger log = LoggerFactory.getLogger(getClass())
@Override
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/ClusterSizePreconditionTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/ClusterSizePreconditionTask.groovy
index 5913d659df..6885683490 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/ClusterSizePreconditionTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/ClusterSizePreconditionTask.groovy
@@ -25,7 +25,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.OortService
import com.netflix.spinnaker.orca.exceptions.PreconditionFailureException
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.pipeline.tasks.PreconditionTask
import groovy.transform.Canonical
import org.springframework.beans.factory.annotation.Autowired
@@ -35,7 +36,7 @@ import retrofit.converter.ConversionException
import retrofit.converter.JacksonConverter
@Component
-class ClusterSizePreconditionTask extends AbstractCloudProviderAwareTask implements RetryableTask, PreconditionTask {
+class ClusterSizePreconditionTask implements CloudProviderAware, RetryableTask, PreconditionTask {
public static final String PRECONDITION_TYPE = 'clusterSize'
final String preconditionType = PRECONDITION_TYPE
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/FindImageFromClusterTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/FindImageFromClusterTask.groovy
index 089aef10f4..5d2f4cd954 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/FindImageFromClusterTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/FindImageFromClusterTask.groovy
@@ -27,7 +27,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.OortService
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.pipeline.util.RegionCollector
import groovy.transform.Canonical
import groovy.util.logging.Slf4j
@@ -38,7 +39,7 @@ import retrofit.RetrofitError
@Component
@Slf4j
-class FindImageFromClusterTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class FindImageFromClusterTask implements CloudProviderAware, RetryableTask {
static String SUMMARY_TYPE = "Images"
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstanceLoadBalancerRegistrationTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstanceLoadBalancerRegistrationTask.groovy
index a07b342da5..859bbd54af 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstanceLoadBalancerRegistrationTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstanceLoadBalancerRegistrationTask.groovy
@@ -17,18 +17,19 @@
package com.netflix.spinnaker.orca.clouddriver.tasks.instance
-import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.Task
+import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.HealthHelper
import org.springframework.beans.factory.annotation.Autowired
import javax.annotation.Nonnull
-abstract class AbstractInstanceLoadBalancerRegistrationTask extends AbstractCloudProviderAwareTask implements Task {
+abstract class AbstractInstanceLoadBalancerRegistrationTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstancesCheckTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstancesCheckTask.groovy
index 87840d6679..156a334199 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstancesCheckTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/AbstractInstancesCheckTask.groovy
@@ -27,7 +27,8 @@ import com.netflix.spinnaker.moniker.Moniker
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.OverridableTimeoutRetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask
import com.netflix.spinnaker.orca.clouddriver.utils.OortHelper
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler
@@ -36,7 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired
import retrofit.RetrofitError
@Slf4j
-abstract class AbstractInstancesCheckTask extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+abstract class AbstractInstancesCheckTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
long backoffPeriod = TimeUnit.SECONDS.toMillis(10)
long timeout = TimeUnit.HOURS.toMillis(2)
long serverGroupWaitTime = TimeUnit.MINUTES.toMillis(10)
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/CaptureInstanceUptimeTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/CaptureInstanceUptimeTask.groovy
index 3c40f1f551..91257be6fb 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/CaptureInstanceUptimeTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/CaptureInstanceUptimeTask.groovy
@@ -22,7 +22,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.commands.InstanceUptimeCommand
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -30,7 +31,7 @@ import org.springframework.stereotype.Component
@Slf4j
@Component
-class CaptureInstanceUptimeTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class CaptureInstanceUptimeTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = 15000
long timeout = 300000
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/RebootInstancesTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/RebootInstancesTask.groovy
index 011d73b1ec..711f4504a3 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/RebootInstancesTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/RebootInstancesTask.groovy
@@ -21,7 +21,8 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.HealthHelper
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -29,7 +30,7 @@ import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class RebootInstancesTask extends AbstractCloudProviderAwareTask implements Task {
+class RebootInstancesTask implements CloudProviderAware, Task {
static final String CLOUD_OPERATION_TYPE = "rebootInstances"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstanceAndDecrementServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstanceAndDecrementServerGroupTask.groovy
index 06ab653efd..28a9b660aa 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstanceAndDecrementServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstanceAndDecrementServerGroupTask.groovy
@@ -24,7 +24,8 @@ import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstance
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstanceSupport
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper
import com.netflix.spinnaker.orca.clouddriver.utils.TrafficGuard
import org.springframework.beans.factory.annotation.Autowired
@@ -33,7 +34,7 @@ import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class TerminateInstanceAndDecrementServerGroupTask extends AbstractCloudProviderAwareTask implements Task {
+class TerminateInstanceAndDecrementServerGroupTask implements CloudProviderAware, Task {
static final String CLOUD_OPERATION_TYPE = "terminateInstanceAndDecrementServerGroup"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstancesTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstancesTask.groovy
index 1f510ed8f4..636716a866 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstancesTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/TerminateInstancesTask.groovy
@@ -25,7 +25,8 @@ import com.netflix.spinnaker.orca.clouddriver.model.TaskId
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstance
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstanceSupport
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper
import com.netflix.spinnaker.orca.clouddriver.utils.TrafficGuard
import org.springframework.beans.factory.annotation.Autowired
@@ -34,7 +35,7 @@ import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class TerminateInstancesTask extends AbstractCloudProviderAwareTask implements Task {
+class TerminateInstancesTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/UpdateInstancesTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/UpdateInstancesTask.groovy
index 9c33ce49dd..9ac148d846 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/UpdateInstancesTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/UpdateInstancesTask.groovy
@@ -22,14 +22,15 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.model.TaskId
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class UpdateInstancesTask extends AbstractCloudProviderAwareTask implements Task {
+class UpdateInstancesTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/VerifyInstanceUptimeTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/VerifyInstanceUptimeTask.groovy
index 82472a4be4..968551a198 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/VerifyInstanceUptimeTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/VerifyInstanceUptimeTask.groovy
@@ -23,7 +23,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.commands.InstanceUptimeCommand
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -31,7 +32,7 @@ import org.springframework.stereotype.Component
@Slf4j
@Component
-class VerifyInstanceUptimeTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class VerifyInstanceUptimeTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = 30000
long timeout = 600000
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/WaitForTerminatedInstancesTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/WaitForTerminatedInstancesTask.groovy
index eab97899f4..dd78ae0d17 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/WaitForTerminatedInstancesTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/instance/WaitForTerminatedInstancesTask.groovy
@@ -22,14 +22,15 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstance
import com.netflix.spinnaker.orca.clouddriver.pipeline.instance.TerminatingInstanceSupport
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Slf4j
@Component
-class WaitForTerminatedInstancesTask extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+class WaitForTerminatedInstancesTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
long backoffPeriod = 10000
long timeout = 3600000
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobForceCacheRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobForceCacheRefreshTask.groovy
index bd42448fb3..0e92f2f046 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobForceCacheRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobForceCacheRefreshTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DestroyJobForceCacheRefreshTask extends AbstractCloudProviderAwareTask implements Task {
+class DestroyJobForceCacheRefreshTask implements CloudProviderAware, Task {
static final String REFRESH_TYPE = "Job"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobTask.groovy
index 255352e138..b273e0f1f7 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/DestroyJobTask.groovy
@@ -20,14 +20,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DestroyJobTask extends AbstractCloudProviderAwareTask implements Task {
+class DestroyJobTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/RunJobTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/RunJobTask.groovy
index 6da312c2e8..5e0c6997e4 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/RunJobTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/RunJobTask.groovy
@@ -21,7 +21,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -32,7 +33,7 @@ import java.time.Duration
@Slf4j
@Component
-class RunJobTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class RunJobTask implements CloudProviderAware, RetryableTask {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/WaitOnJobCompletion.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/WaitOnJobCompletion.groovy
index f203f065bf..202b8b96e6 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/WaitOnJobCompletion.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/job/WaitOnJobCompletion.groovy
@@ -26,7 +26,8 @@ import com.netflix.spinnaker.orca.api.pipeline.OverridableTimeoutRetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoRestService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.slf4j.Logger
import org.slf4j.LoggerFactory
@@ -40,7 +41,7 @@ import java.time.format.DateTimeParseException
import java.util.concurrent.TimeUnit
@Component
-public class WaitOnJobCompletion extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+public class WaitOnJobCompletion implements CloudProviderAware, OverridableTimeoutRetryableTask {
private final Logger log = LoggerFactory.getLogger(getClass())
final long backoffPeriod = TimeUnit.SECONDS.toMillis(10)
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerForceRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerForceRefreshTask.groovy
index 31e587758b..1a5d42c6aa 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerForceRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerForceRefreshTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DeleteLoadBalancerForceRefreshTask extends AbstractCloudProviderAwareTask implements Task {
+class DeleteLoadBalancerForceRefreshTask implements CloudProviderAware, Task {
static final String REFRESH_TYPE = "LoadBalancer"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerTask.groovy
index 1cde78b0f4..11aabe02b6 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/DeleteLoadBalancerTask.groovy
@@ -20,7 +20,8 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -30,7 +31,7 @@ import javax.annotation.Nonnull
* Created by aglover on 9/26/14.
*/
@Component
-class DeleteLoadBalancerTask extends AbstractCloudProviderAwareTask implements Task {
+class DeleteLoadBalancerTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerForceRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerForceRefreshTask.groovy
index e22f213d9a..6fdc965cbc 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerForceRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerForceRefreshTask.groovy
@@ -25,7 +25,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheStatusService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -37,7 +38,7 @@ import java.util.concurrent.TimeUnit
@Slf4j
@Component
-public class UpsertLoadBalancerForceRefreshTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class UpsertLoadBalancerForceRefreshTask implements CloudProviderAware, RetryableTask {
static final String REFRESH_TYPE = "LoadBalancer"
static final int MAX_CHECK_FOR_PENDING = 3
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerTask.groovy
index 6916d4b8f2..1f60561a58 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancerTask.groovy
@@ -22,12 +22,13 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
-class UpsertLoadBalancerTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class UpsertLoadBalancerTask implements CloudProviderAware, RetryableTask {
static final String CLOUD_OPERATION_TYPE = "upsertLoadBalancer"
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancersTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancersTask.groovy
index fe38047efe..7ce499e964 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancersTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/loadbalancer/UpsertLoadBalancersTask.groovy
@@ -22,7 +22,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -30,7 +31,7 @@ import org.springframework.stereotype.Component
* Task that can create multiple load balancers
*/
@Component
-class UpsertLoadBalancersTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class UpsertLoadBalancersTask implements CloudProviderAware, RetryableTask {
static final String CLOUD_OPERATION_TYPE = "upsertLoadBalancer"
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/AbstractWaitForAppEngineServerGroupStopStartTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/AbstractWaitForAppEngineServerGroupStopStartTask.groovy
index 88428a3a91..816bbeb739 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/AbstractWaitForAppEngineServerGroupStopStartTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/AbstractWaitForAppEngineServerGroupStopStartTask.groovy
@@ -22,14 +22,15 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import retrofit.RetrofitError
@Slf4j
-abstract class AbstractWaitForAppEngineServerGroupStopStartTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+abstract class AbstractWaitForAppEngineServerGroupStopStartTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = 10000
long timeout = 1800000
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/UpsertAppEngineLoadBalancersTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/UpsertAppEngineLoadBalancersTask.groovy
index d27cc08096..3ef06fa259 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/UpsertAppEngineLoadBalancersTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/UpsertAppEngineLoadBalancersTask.groovy
@@ -25,12 +25,13 @@ import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
-class UpsertAppEngineLoadBalancersTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class UpsertAppEngineLoadBalancersTask implements CloudProviderAware, RetryableTask {
static final String CLOUD_OPERATION_TYPE = "upsertLoadBalancer"
static final String CLOUD_PROVIDER = "appengine"
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/scalingprocess/AbstractAwsScalingProcessTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/scalingprocess/AbstractAwsScalingProcessTask.groovy
index d563bfd5c5..4eafe8200d 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/scalingprocess/AbstractAwsScalingProcessTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/scalingprocess/AbstractAwsScalingProcessTask.groovy
@@ -16,21 +16,22 @@
package com.netflix.spinnaker.orca.clouddriver.tasks.providers.aws.scalingprocess
-import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.Task
+import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import javax.annotation.Nonnull
@Slf4j
-abstract class AbstractAwsScalingProcessTask extends AbstractCloudProviderAwareTask implements Task {
+abstract class AbstractAwsScalingProcessTask implements CloudProviderAware, Task {
@Autowired
KatoService katoService
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/DeleteScalingPolicyTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/DeleteScalingPolicyTask.groovy
index ad2491b27f..c61a1e71b5 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/DeleteScalingPolicyTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/DeleteScalingPolicyTask.groovy
@@ -23,13 +23,14 @@ import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DeleteScalingPolicyTask extends AbstractCloudProviderAwareTask implements Task {
+class DeleteScalingPolicyTask implements CloudProviderAware, Task {
private final OperationsRunner operationsRunner
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/UpsertScalingPolicyTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/UpsertScalingPolicyTask.groovy
index acbe652186..195d07f6c8 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/UpsertScalingPolicyTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/scalingpolicy/UpsertScalingPolicyTask.groovy
@@ -25,13 +25,14 @@ import java.util.concurrent.TimeUnit
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.stereotype.Component
import groovy.util.logging.Slf4j
@Component
@Slf4j
-class UpsertScalingPolicyTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class UpsertScalingPolicyTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = TimeUnit.SECONDS.toMillis(5)
long timeout = TimeUnit.SECONDS.toMillis(100)
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupForceRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupForceRefreshTask.groovy
index f98bc04c05..cc7f622c08 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupForceRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupForceRefreshTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DeleteSecurityGroupForceRefreshTask extends AbstractCloudProviderAwareTask implements Task {
+class DeleteSecurityGroupForceRefreshTask implements CloudProviderAware, Task {
static final String REFRESH_TYPE = "SecurityGroup"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupTask.groovy
index 9940424105..5e8201da1f 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/DeleteSecurityGroupTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class DeleteSecurityGroupTask extends AbstractCloudProviderAwareTask implements Task {
+class DeleteSecurityGroupTask implements CloudProviderAware, Task {
static final String CLOUD_OPERATION_TYPE = "deleteSecurityGroup"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/SecurityGroupForceCacheRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/SecurityGroupForceCacheRefreshTask.groovy
index d1ada1c235..d29d359309 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/SecurityGroupForceCacheRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/SecurityGroupForceCacheRefreshTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-public class SecurityGroupForceCacheRefreshTask extends AbstractCloudProviderAwareTask implements Task {
+public class SecurityGroupForceCacheRefreshTask implements CloudProviderAware, Task {
static final String REFRESH_TYPE = "SecurityGroup"
@Autowired
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/UpsertSecurityGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/UpsertSecurityGroupTask.groovy
index eb79ad3ef1..39ea01bcb0 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/UpsertSecurityGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/securitygroup/UpsertSecurityGroupTask.groovy
@@ -16,16 +16,18 @@
package com.netflix.spinnaker.orca.clouddriver.tasks.securitygroup
+import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
-class UpsertSecurityGroupTask extends AbstractCloudProviderAwareTask {
+class UpsertSecurityGroupTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractServerGroupTask.groovy
index a427d284d4..3c3d370c12 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractServerGroupTask.groovy
@@ -27,11 +27,12 @@ import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Locat
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location.Type
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper
import org.springframework.beans.factory.annotation.Autowired
-abstract class AbstractServerGroupTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+abstract class AbstractServerGroupTask implements CloudProviderAware, RetryableTask {
@Override
long getBackoffPeriod() {
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AddServerGroupEntityTagsTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AddServerGroupEntityTagsTask.groovy
index 518ac41af9..a5564d791f 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AddServerGroupEntityTagsTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AddServerGroupEntityTagsTask.groovy
@@ -25,14 +25,15 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.model.TaskId
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
@Slf4j
-class AddServerGroupEntityTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class AddServerGroupEntityTagsTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = TimeUnit.SECONDS.toMillis(30)
long timeout = TimeUnit.MINUTES.toMillis(15)
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CloneServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CloneServerGroupTask.groovy
index 657560702e..0591350618 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CloneServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CloneServerGroupTask.groovy
@@ -22,7 +22,8 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.clone.CloneDescriptionDecorator
import com.netflix.spinnaker.orca.clouddriver.utils.HealthHelper
import com.netflix.spinnaker.orca.kato.tasks.DeploymentDetailsAware
@@ -34,7 +35,7 @@ import javax.annotation.Nonnull
@Slf4j
@Component
-class CloneServerGroupTask extends AbstractCloudProviderAwareTask implements Task, DeploymentDetailsAware {
+class CloneServerGroupTask implements CloudProviderAware, Task, DeploymentDetailsAware {
@Autowired
Collection cloneDescriptionDecorators = []
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CreateServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CreateServerGroupTask.groovy
index 41b959c466..601724cafd 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CreateServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/CreateServerGroupTask.groovy
@@ -21,7 +21,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.HealthHelper
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -29,7 +30,7 @@ import org.springframework.stereotype.Component
@Slf4j
@Component
-class CreateServerGroupTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class CreateServerGroupTask implements CloudProviderAware, RetryableTask {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/ServerGroupCacheForceRefreshTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/ServerGroupCacheForceRefreshTask.groovy
index 31272f2906..c5357962bf 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/ServerGroupCacheForceRefreshTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/ServerGroupCacheForceRefreshTask.groovy
@@ -28,7 +28,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheStatusService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -37,7 +38,7 @@ import static com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus.SUC
@Component
@Slf4j
-class ServerGroupCacheForceRefreshTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class ServerGroupCacheForceRefreshTask implements CloudProviderAware, RetryableTask {
static final String REFRESH_TYPE = "ServerGroup"
private final CloudDriverCacheStatusService cacheStatusService
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertServerGroupTagsTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertServerGroupTagsTask.groovy
index d34a19ac09..2feb26d586 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertServerGroupTagsTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertServerGroupTagsTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class UpsertServerGroupTagsTask extends AbstractCloudProviderAwareTask implements Task {
+class UpsertServerGroupTagsTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDestroyedServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDestroyedServerGroupTask.groovy
index 1c4220d28d..a97a523ecc 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDestroyedServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDestroyedServerGroupTask.groovy
@@ -22,7 +22,8 @@ import com.netflix.spinnaker.orca.api.pipeline.RetryableTask
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.OortService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.clouddriver.utils.ClusterDescriptor
import com.netflix.spinnaker.orca.clouddriver.utils.ServerGroupDescriptor
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler
@@ -33,7 +34,7 @@ import retrofit.RetrofitError
@Slf4j
@Component
-class WaitForDestroyedServerGroupTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+class WaitForDestroyedServerGroupTask implements CloudProviderAware, RetryableTask {
long backoffPeriod = 10000
long timeout = 1800000
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/RestoreSnapshotTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/RestoreSnapshotTask.groovy
index 0bff0a8020..881ad7b2e6 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/RestoreSnapshotTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/RestoreSnapshotTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class RestoreSnapshotTask extends AbstractCloudProviderAwareTask implements Task {
+class RestoreSnapshotTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/SaveSnapshotTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/SaveSnapshotTask.groovy
index e2e2a2aeb3..9e6de87ddf 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/SaveSnapshotTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/SaveSnapshotTask.groovy
@@ -21,14 +21,15 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import javax.annotation.Nonnull
@Component
-class SaveSnapshotTask extends AbstractCloudProviderAwareTask implements Task {
+class SaveSnapshotTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/kato/tasks/DestroyAwsServerGroupTask.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/kato/tasks/DestroyAwsServerGroupTask.groovy
index 8827d68311..51ffdc664e 100644
--- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/kato/tasks/DestroyAwsServerGroupTask.groovy
+++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/kato/tasks/DestroyAwsServerGroupTask.groovy
@@ -23,7 +23,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
import com.netflix.spinnaker.orca.clouddriver.model.TaskId
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.kato.pipeline.support.TargetReferenceSupport
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -37,7 +38,7 @@ import static com.netflix.spinnaker.orca.kato.pipeline.DestroyAsgStage.DESTROY_A
*/
@Component
@Deprecated
-class DestroyAwsServerGroupTask extends AbstractCloudProviderAwareTask implements Task {
+class DestroyAwsServerGroupTask implements CloudProviderAware, Task {
@Autowired
KatoService kato
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/CleanupArtifactsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/CleanupArtifactsTask.java
index 6f53aa6b74..0f1cfa10e8 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/CleanupArtifactsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/CleanupArtifactsTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -33,7 +33,7 @@
import org.springframework.stereotype.Component;
@Component
-public class CleanupArtifactsTask extends AbstractCloudProviderAwareTask implements Task {
+public class CleanupArtifactsTask implements CloudProviderAware, Task {
public static final String TASK_NAME = "cleanupArtifacts";
@Autowired KatoService kato;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/FindArtifactsFromResourceTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/FindArtifactsFromResourceTask.java
index 9c8dff87f1..2e1e14faef 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/FindArtifactsFromResourceTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/artifacts/FindArtifactsFromResourceTask.java
@@ -24,7 +24,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.OortService;
import com.netflix.spinnaker.orca.clouddriver.model.Manifest;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.*;
import javax.annotation.Nonnull;
import lombok.extern.slf4j.Slf4j;
@@ -33,7 +33,7 @@
@Slf4j
@Component
-public class FindArtifactsFromResourceTask extends AbstractCloudProviderAwareTask implements Task {
+public class FindArtifactsFromResourceTask implements CloudProviderAware, Task {
public static final String TASK_NAME = "findArtifactsFromResource";
@Autowired OortService oortService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/DetermineRollbackCandidatesTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/DetermineRollbackCandidatesTask.java
index 69e876108a..123f483918 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/DetermineRollbackCandidatesTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/cluster/DetermineRollbackCandidatesTask.java
@@ -33,7 +33,7 @@
import com.netflix.spinnaker.orca.clouddriver.FeaturesService;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.RollbackServerGroupStage;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.rollback.PreviousImageRollbackSupport;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -69,8 +69,7 @@
* previous server group (if exists!)
*/
@Component
-public class DetermineRollbackCandidatesTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class DetermineRollbackCandidatesTask implements CloudProviderAware, RetryableTask {
private static final Logger logger =
LoggerFactory.getLogger(DetermineRollbackCandidatesTask.class);
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/DeleteEntityTagsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/DeleteEntityTagsTask.java
index 5e18fc070a..91b30c3837 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/DeleteEntityTagsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/DeleteEntityTagsTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -31,7 +31,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteEntityTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class DeleteEntityTagsTask implements CloudProviderAware, RetryableTask {
private final KatoService kato;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/UpsertEntityTagsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/UpsertEntityTagsTask.java
index 0ee0f8560b..011e40fd98 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/UpsertEntityTagsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/entitytags/UpsertEntityTagsTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -31,7 +31,7 @@
import org.springframework.stereotype.Component;
@Component
-public class UpsertEntityTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class UpsertEntityTagsTask implements CloudProviderAware, RetryableTask {
private final KatoService kato;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/DeleteImageTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/DeleteImageTask.java
index 9ee31eaa31..96f760463f 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/DeleteImageTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/DeleteImageTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.image.DeleteImageStage;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -36,7 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteImageTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class DeleteImageTask implements CloudProviderAware, RetryableTask {
private final KatoService katoService;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/FindImageFromTagsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/FindImageFromTagsTask.java
index 0d67bda992..8a5d7da805 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/FindImageFromTagsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/FindImageFromTagsTask.java
@@ -23,7 +23,7 @@
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -36,7 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class FindImageFromTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class FindImageFromTagsTask implements CloudProviderAware, RetryableTask {
@Autowired ObjectMapper objectMapper;
@Autowired List imageFinders;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/ImageForceCacheRefreshTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/ImageForceCacheRefreshTask.java
index 8dc9f9f016..13257f2e0e 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/ImageForceCacheRefreshTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/ImageForceCacheRefreshTask.java
@@ -21,14 +21,13 @@
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class ImageForceCacheRefreshTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class ImageForceCacheRefreshTask implements CloudProviderAware, RetryableTask {
static final String REFRESH_TYPE = "Image";
@Autowired CloudDriverCacheService cacheService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/MonitorDeleteImageTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/MonitorDeleteImageTask.java
index bd911b7923..6405d6297a 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/MonitorDeleteImageTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/MonitorDeleteImageTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService;
import com.netflix.spinnaker.orca.clouddriver.pipeline.image.DeleteImageStage;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -34,8 +34,7 @@
import retrofit.RetrofitError;
@Component
-public class MonitorDeleteImageTask extends AbstractCloudProviderAwareTask
- implements OverridableTimeoutRetryableTask {
+public class MonitorDeleteImageTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
private static final Logger log = LoggerFactory.getLogger(MonitorDeleteImageTask.class);
private final CloudDriverService cloudDriverService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/UpsertImageTagsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/UpsertImageTagsTask.java
index 69b46b8845..f6c309e164 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/UpsertImageTagsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/image/UpsertImageTagsTask.java
@@ -23,7 +23,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -36,7 +36,7 @@
import retrofit.RetrofitError;
@Component
-public class UpsertImageTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class UpsertImageTagsTask implements CloudProviderAware, RetryableTask {
private static final Logger log = LoggerFactory.getLogger(UpsertImageTagsTask.class);
@Autowired KatoService kato;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/job/UpdateJobProcessesTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/job/UpdateJobProcessesTask.java
index 97aafec71f..15997a1ecf 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/job/UpdateJobProcessesTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/job/UpdateJobProcessesTask.java
@@ -15,19 +15,20 @@
*/
package com.netflix.spinnaker.orca.clouddriver.tasks.job;
+import com.netflix.spinnaker.orca.api.pipeline.Task;
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.*;
import javax.annotation.Nonnull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class UpdateJobProcessesTask extends AbstractCloudProviderAwareTask {
+public class UpdateJobProcessesTask implements CloudProviderAware, Task {
private final KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchconfigurations/DeleteLaunchConfigurationTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchconfigurations/DeleteLaunchConfigurationTask.java
index 08e809b8c5..a4d0c76d70 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchconfigurations/DeleteLaunchConfigurationTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchconfigurations/DeleteLaunchConfigurationTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.launchconfigurations.DeleteLaunchConfigurationStage.DeleteLaunchConfigurationRequest;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -36,8 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteLaunchConfigurationTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class DeleteLaunchConfigurationTask implements CloudProviderAware, RetryableTask {
private final KatoService katoService;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchtemplates/DeleteLaunchTemplateTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchtemplates/DeleteLaunchTemplateTask.java
index 6eb04ccfec..2d9407e2cd 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchtemplates/DeleteLaunchTemplateTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/launchtemplates/DeleteLaunchTemplateTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.launchtemplates.DeleteLaunchTemplateStage.DeleteLaunchTemplateRequest;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -36,8 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteLaunchTemplateTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class DeleteLaunchTemplateTask implements CloudProviderAware, RetryableTask {
private final KatoService katoService;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeleteManifestTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeleteManifestTask.java
index 589622fe57..3248d33a3d 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeleteManifestTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeleteManifestTask.java
@@ -24,7 +24,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -32,7 +32,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteManifestTask extends AbstractCloudProviderAwareTask implements Task {
+public class DeleteManifestTask implements CloudProviderAware, Task {
@Autowired KatoService kato;
public static final String TASK_NAME = "deleteManifest";
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeployManifestTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeployManifestTask.java
index 58e871dffc..b0417a41f6 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeployManifestTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/DeployManifestTask.java
@@ -26,7 +26,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@@ -36,7 +36,7 @@
@Component
@NonnullByDefault
-public final class DeployManifestTask extends AbstractCloudProviderAwareTask implements Task {
+public final class DeployManifestTask implements CloudProviderAware, Task {
public static final String TASK_NAME = "deployManifest";
private final KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/GenericUpdateManifestTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/GenericUpdateManifestTask.java
index ca21d5e05c..14aad9bb89 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/GenericUpdateManifestTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/GenericUpdateManifestTask.java
@@ -24,7 +24,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -32,8 +32,7 @@
import org.springframework.stereotype.Component;
@Component
-public abstract class GenericUpdateManifestTask extends AbstractCloudProviderAwareTask
- implements Task {
+public abstract class GenericUpdateManifestTask implements CloudProviderAware, Task {
@Autowired KatoService kato;
protected abstract String taskName();
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/PatchManifestTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/PatchManifestTask.java
index 35a043a18c..2e9b0ae7c6 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/PatchManifestTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/PatchManifestTask.java
@@ -27,8 +27,8 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
import com.netflix.spinnaker.orca.clouddriver.tasks.manifest.PatchManifestContext.MergeStrategy;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.jackson.OrcaObjectMapper;
import java.util.HashMap;
import java.util.Map;
@@ -39,7 +39,7 @@
@Component
@NonnullByDefault
-public final class PatchManifestTask extends AbstractCloudProviderAwareTask implements Task {
+public final class PatchManifestTask implements CloudProviderAware, Task {
public static final String TASK_NAME = "patchManifest";
private static final ObjectMapper objectMapper = OrcaObjectMapper.getInstance();
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/ResolveTargetManifestTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/ResolveTargetManifestTask.java
index f6538215d1..063c8af637 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/ResolveTargetManifestTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/manifest/ResolveTargetManifestTask.java
@@ -26,7 +26,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.OortService;
import com.netflix.spinnaker.orca.clouddriver.model.ManifestCoordinates;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.io.IOException;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -36,7 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class ResolveTargetManifestTask extends AbstractCloudProviderAwareTask implements Task {
+public class ResolveTargetManifestTask implements CloudProviderAware, Task {
@Autowired OortService oortService;
@Autowired ObjectMapper objectMapper;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/DeployAppEngineConfigurationTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/DeployAppEngineConfigurationTask.java
index d8aa35371c..7cec8cf29e 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/DeployAppEngineConfigurationTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/appengine/DeployAppEngineConfigurationTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.pipeline.util.ArtifactUtils;
import java.util.Collections;
import java.util.HashMap;
@@ -37,8 +37,7 @@
@RequiredArgsConstructor
@Component
-public class DeployAppEngineConfigurationTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class DeployAppEngineConfigurationTask implements CloudProviderAware, RetryableTask {
private final ObjectMapper objectMapper;
private final KatoService kato;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/CloudFormationForceCacheRefreshTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/CloudFormationForceCacheRefreshTask.java
index 9aa390e85a..77c767d480 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/CloudFormationForceCacheRefreshTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/CloudFormationForceCacheRefreshTask.java
@@ -20,7 +20,7 @@
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -31,8 +31,8 @@
import retrofit.RetrofitError;
@Component
-public class CloudFormationForceCacheRefreshTask extends AbstractCloudProviderAwareTask
- implements OverridableTimeoutRetryableTask {
+public class CloudFormationForceCacheRefreshTask
+ implements CloudProviderAware, OverridableTimeoutRetryableTask {
static final String REFRESH_TYPE = "CloudFormation";
@Autowired CloudDriverCacheService cacheService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeleteCloudFormationChangeSetTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeleteCloudFormationChangeSetTask.java
index a52bbe466d..7693bf5a6c 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeleteCloudFormationChangeSetTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeleteCloudFormationChangeSetTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.*;
import javax.annotation.Nonnull;
import lombok.extern.slf4j.Slf4j;
@@ -31,8 +31,7 @@
@Slf4j
@Component
-public class DeleteCloudFormationChangeSetTask extends AbstractCloudProviderAwareTask
- implements Task {
+public class DeleteCloudFormationChangeSetTask implements CloudProviderAware, Task {
@Autowired KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeployCloudFormationTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeployCloudFormationTask.java
index b64816c843..1a5e81b02b 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeployCloudFormationTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/DeployCloudFormationTask.java
@@ -27,7 +27,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.OortService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.pipeline.util.ArtifactUtils;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -48,7 +48,7 @@
@Slf4j
@Component
-public class DeployCloudFormationTask extends AbstractCloudProviderAwareTask implements Task {
+public class DeployCloudFormationTask implements CloudProviderAware, Task {
@Autowired KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/ExecuteCloudFormationChangeSetTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/ExecuteCloudFormationChangeSetTask.java
index d34c4ee98b..68171b74a6 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/ExecuteCloudFormationChangeSetTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/cloudformation/ExecuteCloudFormationChangeSetTask.java
@@ -23,7 +23,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -37,8 +37,7 @@
@Slf4j
@Component
-public class ExecuteCloudFormationChangeSetTask extends AbstractCloudProviderAwareTask
- implements Task {
+public class ExecuteCloudFormationChangeSetTask implements CloudProviderAware, Task {
@Autowired KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionForceRefreshTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionForceRefreshTask.java
index 6469d50348..ac65fbc00b 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionForceRefreshTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionForceRefreshTask.java
@@ -21,7 +21,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.CloudDriverCacheService;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -29,7 +29,7 @@
import org.springframework.stereotype.Component;
@Component
-public class LambdaFunctionForceRefreshTask extends AbstractCloudProviderAwareTask implements Task {
+public class LambdaFunctionForceRefreshTask implements CloudProviderAware, Task {
static final String REFRESH_TYPE = "Function";
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionTask.java
index fe9be8efc3..50ff6e08ef 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/aws/lambda/LambdaFunctionTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -38,7 +38,7 @@
essentially just passes an arbitrary operation over to Clouddriver.
*/
@Component
-public class LambdaFunctionTask extends AbstractCloudProviderAwareTask implements Task {
+public class LambdaFunctionTask implements CloudProviderAware, Task {
@Autowired KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryDeployServiceTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryDeployServiceTask.java
index 3a7000e91c..cdd6382a26 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryDeployServiceTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryDeployServiceTask.java
@@ -18,14 +18,15 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
+import com.netflix.spinnaker.orca.api.pipeline.Task;
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
import com.netflix.spinnaker.orca.clouddriver.tasks.manifest.ManifestContext;
import com.netflix.spinnaker.orca.clouddriver.tasks.manifest.ManifestEvaluator;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;
@@ -36,7 +37,7 @@
@RequiredArgsConstructor
@Component
-public class CloudFoundryDeployServiceTask extends AbstractCloudProviderAwareTask {
+public class CloudFoundryDeployServiceTask implements CloudProviderAware, Task {
private final ObjectMapper mapper;
private final KatoService kato;
private final ManifestEvaluator manifestEvaluator;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryMonitorKatoServicesTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryMonitorKatoServicesTask.java
index d02d7eee00..480ad6c538 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryMonitorKatoServicesTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/cf/CloudFoundryMonitorKatoServicesTask.java
@@ -26,7 +26,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.Task;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import groovy.transform.CompileStatic;
import java.util.*;
import java.util.stream.Collectors;
@@ -36,8 +36,7 @@
@Component
@CompileStatic
-public class CloudFoundryMonitorKatoServicesTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class CloudFoundryMonitorKatoServicesTask implements CloudProviderAware, RetryableTask {
private KatoService kato;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/SetStatefulDiskTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/SetStatefulDiskTask.java
index 95a8c27b53..22290b4e0d 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/SetStatefulDiskTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/SetStatefulDiskTask.java
@@ -21,6 +21,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.netflix.spinnaker.orca.api.pipeline.Task;
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
@@ -28,14 +29,14 @@
import com.netflix.spinnaker.orca.clouddriver.pipeline.providers.gce.SetStatefulDiskStage.StageData;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class SetStatefulDiskTask extends AbstractCloudProviderAwareTask {
+public class SetStatefulDiskTask implements CloudProviderAware, Task {
private static final String KATO_OP_NAME = "setStatefulDisk";
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/StatefullyUpdateBootImageTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/StatefullyUpdateBootImageTask.java
index 1a1da7e5d7..b320a43c55 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/StatefullyUpdateBootImageTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/StatefullyUpdateBootImageTask.java
@@ -21,6 +21,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.netflix.spinnaker.orca.api.pipeline.Task;
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
@@ -28,7 +29,7 @@
import com.netflix.spinnaker.orca.clouddriver.pipeline.providers.gce.StatefullyUpdateBootImageStage.StageData;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -36,7 +37,7 @@
import org.springframework.stereotype.Component;
@Component
-public final class StatefullyUpdateBootImageTask extends AbstractCloudProviderAwareTask {
+public final class StatefullyUpdateBootImageTask implements CloudProviderAware, Task {
private static final String KATO_OP_NAME = "statefullyUpdateBootImage";
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/autoscaling/UpsertGceAutoscalingPolicyTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/autoscaling/UpsertGceAutoscalingPolicyTask.java
index 98d3f193a1..0fbb91e945 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/autoscaling/UpsertGceAutoscalingPolicyTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/providers/gce/autoscaling/UpsertGceAutoscalingPolicyTask.java
@@ -26,7 +26,7 @@
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupResolver;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -38,7 +38,7 @@
@Slf4j
@Component
-public class UpsertGceAutoscalingPolicyTask extends AbstractCloudProviderAwareTask implements Task {
+public class UpsertGceAutoscalingPolicyTask implements CloudProviderAware, Task {
@Autowired private KatoService katoService;
@Autowired private TargetServerGroupResolver resolver;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractBulkServerGroupTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractBulkServerGroupTask.java
index ae1375c783..32897232c5 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractBulkServerGroupTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/AbstractBulkServerGroupTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.Location;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper;
import com.netflix.spinnaker.orca.clouddriver.utils.OortHelper;
import java.util.*;
@@ -34,8 +34,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-public abstract class AbstractBulkServerGroupTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public abstract class AbstractBulkServerGroupTask implements CloudProviderAware, RetryableTask {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractBulkServerGroupTask.class);
@Autowired protected OortHelper oortHelper;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/BulkWaitForDestroyedServerGroupTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/BulkWaitForDestroyedServerGroupTask.java
index 448a709447..27e4e68080 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/BulkWaitForDestroyedServerGroupTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/BulkWaitForDestroyedServerGroupTask.java
@@ -22,7 +22,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.OortService;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper;
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler;
import java.io.IOException;
@@ -36,8 +36,7 @@
import retrofit.client.Response;
@Component
-public class BulkWaitForDestroyedServerGroupTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public class BulkWaitForDestroyedServerGroupTask implements CloudProviderAware, RetryableTask {
private static final Logger LOGGER =
LoggerFactory.getLogger(BulkWaitForDestroyedServerGroupTask.class);
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertDisruptionBudgetTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertDisruptionBudgetTask.java
index 4be5d0190a..5818b803df 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertDisruptionBudgetTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/UpsertDisruptionBudgetTask.java
@@ -16,19 +16,20 @@
package com.netflix.spinnaker.orca.clouddriver.tasks.servergroup;
+import com.netflix.spinnaker.orca.api.pipeline.Task;
import com.netflix.spinnaker.orca.api.pipeline.TaskResult;
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.*;
import javax.annotation.Nonnull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class UpsertDisruptionBudgetTask extends AbstractCloudProviderAwareTask {
+public class UpsertDisruptionBudgetTask implements CloudProviderAware, Task {
private final KatoService katoService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDisabledServerGroupTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDisabledServerGroupTask.java
index 7b6ea6c571..07fd93b813 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDisabledServerGroupTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servergroup/WaitForDisabledServerGroupTask.java
@@ -8,7 +8,7 @@
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService;
import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroup;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.clouddriver.utils.ServerGroupDescriptor;
import com.netflix.spinnaker.orca.retrofit.exceptions.RetrofitExceptionHandler;
import java.io.IOException;
@@ -23,8 +23,8 @@
@Component
@Slf4j
-public class WaitForDisabledServerGroupTask extends AbstractCloudProviderAwareTask
- implements RetryableTask, SkippableTask {
+public class WaitForDisabledServerGroupTask
+ implements CloudProviderAware, RetryableTask, SkippableTask {
private final CloudDriverService cloudDriverService;
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servicebroker/AbstractWaitForServiceTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servicebroker/AbstractWaitForServiceTask.java
index 671264a8fc..a379ffcf30 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servicebroker/AbstractWaitForServiceTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/servicebroker/AbstractWaitForServiceTask.java
@@ -21,12 +21,11 @@
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus;
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution;
import com.netflix.spinnaker.orca.clouddriver.OortService;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Map;
import javax.annotation.Nonnull;
-public abstract class AbstractWaitForServiceTask extends AbstractCloudProviderAwareTask
- implements RetryableTask {
+public abstract class AbstractWaitForServiceTask implements CloudProviderAware, RetryableTask {
protected OortService oortService;
public AbstractWaitForServiceTask(OortService oortService) {
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/DeleteSnapshotTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/DeleteSnapshotTask.java
index 9155ceddea..88252b654f 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/DeleteSnapshotTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/tasks/snapshot/DeleteSnapshotTask.java
@@ -25,7 +25,7 @@
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
import com.netflix.spinnaker.orca.clouddriver.pipeline.snapshot.DeleteSnapshotStage;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -36,7 +36,7 @@
import org.springframework.stereotype.Component;
@Component
-public class DeleteSnapshotTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class DeleteSnapshotTask implements CloudProviderAware, RetryableTask {
private final KatoService katoService;
@Autowired
diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/kato/tasks/rollingpush/CleanUpTagsTask.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/kato/tasks/rollingpush/CleanUpTagsTask.java
index cf458d4ead..3378008ad7 100644
--- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/kato/tasks/rollingpush/CleanUpTagsTask.java
+++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/kato/tasks/rollingpush/CleanUpTagsTask.java
@@ -24,7 +24,7 @@
import com.netflix.spinnaker.orca.clouddriver.CloudDriverService;
import com.netflix.spinnaker.orca.clouddriver.KatoService;
import com.netflix.spinnaker.orca.clouddriver.model.TaskId;
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask;
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware;
import com.netflix.spinnaker.orca.clouddriver.utils.MonikerHelper;
import com.netflix.spinnaker.orca.kato.pipeline.support.SourceResolver;
import com.netflix.spinnaker.orca.kato.pipeline.support.StageData;
@@ -38,7 +38,7 @@
import org.springframework.stereotype.Component;
@Component
-public class CleanUpTagsTask extends AbstractCloudProviderAwareTask implements RetryableTask {
+public class CleanUpTagsTask implements CloudProviderAware, RetryableTask {
private final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/CleanupCanaryTask.groovy b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/CleanupCanaryTask.groovy
index 921cc4cb90..5ed0acabfa 100644
--- a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/CleanupCanaryTask.groovy
+++ b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/CleanupCanaryTask.groovy
@@ -21,7 +21,8 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import groovy.transform.Canonical
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -31,7 +32,7 @@ import javax.annotation.Nonnull
@Component
@Slf4j
-class CleanupCanaryTask extends AbstractCloudProviderAwareTask implements Task {
+class CleanupCanaryTask implements CloudProviderAware, Task {
@Autowired KatoService katoService
diff --git a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/DisableCanaryTask.groovy b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/DisableCanaryTask.groovy
index 8f3d48f719..a7ec625f9e 100644
--- a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/DisableCanaryTask.groovy
+++ b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/DisableCanaryTask.groovy
@@ -21,7 +21,8 @@ import com.netflix.spinnaker.orca.api.pipeline.Task
import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.mine.MineService
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -32,7 +33,7 @@ import javax.annotation.Nonnull
@Component
@Slf4j
-class DisableCanaryTask extends AbstractCloudProviderAwareTask implements Task {
+class DisableCanaryTask implements CloudProviderAware, Task {
@Autowired MineService mineService
@Autowired KatoService katoService
diff --git a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorAcaTaskTask.groovy b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorAcaTaskTask.groovy
index 982221c4f7..3cd507d373 100644
--- a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorAcaTaskTask.groovy
+++ b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorAcaTaskTask.groovy
@@ -22,7 +22,8 @@ import java.util.concurrent.TimeUnit
import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.OverridableTimeoutRetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.mine.MineService
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -31,7 +32,7 @@ import retrofit.RetrofitError
@Component
@Slf4j
-class MonitorAcaTaskTask extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+class MonitorAcaTaskTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
long backoffPeriod = 10000
long timeout = TimeUnit.DAYS.toMillis(2)
diff --git a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorCanaryTask.groovy b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorCanaryTask.groovy
index e93411dfff..18b4961022 100644
--- a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorCanaryTask.groovy
+++ b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/MonitorCanaryTask.groovy
@@ -23,7 +23,8 @@ import com.netflix.spinnaker.orca.api.pipeline.models.ExecutionStatus
import com.netflix.spinnaker.orca.api.pipeline.OverridableTimeoutRetryableTask
import com.netflix.spinnaker.orca.api.pipeline.TaskResult
import com.netflix.spinnaker.orca.clouddriver.KatoService
-import com.netflix.spinnaker.orca.clouddriver.tasks.AbstractCloudProviderAwareTask
+import com.netflix.spinnaker.orca.clouddriver.utils.CloudProviderAware
+
import com.netflix.spinnaker.orca.mine.MineService
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired
@@ -32,7 +33,7 @@ import retrofit.RetrofitError
@Component
@Slf4j
-class MonitorCanaryTask extends AbstractCloudProviderAwareTask implements OverridableTimeoutRetryableTask {
+class MonitorCanaryTask implements CloudProviderAware, OverridableTimeoutRetryableTask {
long backoffPeriod = TimeUnit.MINUTES.toMillis(1)
long timeout = TimeUnit.DAYS.toMillis(2)