Skip to content

Commit

Permalink
delete entity tags on Titus job deletion
Browse files Browse the repository at this point in the history
  • Loading branch information
anotherchrisberry authored and tomaslin committed Mar 26, 2018
1 parent cea4018 commit a943598
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@ package com.netflix.spinnaker.clouddriver.titus.deploy.ops
import com.netflix.spinnaker.clouddriver.data.task.Task
import com.netflix.spinnaker.clouddriver.data.task.TaskRepository
import com.netflix.spinnaker.clouddriver.orchestration.AtomicOperation
import com.netflix.spinnaker.clouddriver.orchestration.events.DeleteServerGroupEvent
import com.netflix.spinnaker.clouddriver.orchestration.events.OperationEvent
import com.netflix.spinnaker.clouddriver.titus.TitusClientProvider
import com.netflix.spinnaker.clouddriver.titus.TitusCloudProvider
import com.netflix.spinnaker.clouddriver.titus.client.model.TerminateJobRequest
import com.netflix.spinnaker.clouddriver.titus.deploy.description.DestroyTitusServerGroupDescription
import com.netflix.spinnaker.clouddriver.titus.client.TitusClient
Expand All @@ -32,6 +35,7 @@ class DestroyTitusServerGroupAtomicOperation implements AtomicOperation<Void> {
private static final String PHASE = "DESTROY_TITUS_SERVER_GROUP"
private final TitusClientProvider titusClientProvider
private final DestroyTitusServerGroupDescription description
private final Collection<DeleteServerGroupEvent> events = []

DestroyTitusServerGroupAtomicOperation(TitusClientProvider titusClientProvider,
DestroyTitusServerGroupDescription description) {
Expand All @@ -45,7 +49,10 @@ class DestroyTitusServerGroupAtomicOperation implements AtomicOperation<Void> {
TitusClient titusClient = titusClientProvider.getTitusClient(description.credentials, description.region)
Job job = titusClient.findJobByName(description.serverGroupName)
if (job) {
titusClient.terminateJob(new TerminateJobRequest().withJobId(job.id).withUser(description.user))
titusClient.terminateJob((TerminateJobRequest) new TerminateJobRequest().withJobId(job.id).withUser(description.user))
events << new DeleteServerGroupEvent(
TitusCloudProvider.ID, description.credentials.name, description.region, description.serverGroupName
)
task.updateStatus PHASE, "Successfully issued terminate job request to titus for ${job.id} which corresponds to ${description.serverGroupName}"
} else {
task.updateStatus PHASE, "No titus job found for ${description.serverGroupName}"
Expand All @@ -55,6 +62,11 @@ class DestroyTitusServerGroupAtomicOperation implements AtomicOperation<Void> {
null
}

@Override
Collection<OperationEvent> getEvents() {
return events
}

private static Task getTask() {
TaskRepository.threadLocalTask.get()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ public Job findJobByName(String jobName) {
.putFilteringCriteria("jobType", "SERVICE")
.putFilteringCriteria("attributes", "source:spinnaker,name:" + jobName)
.putFilteringCriteria("attributes.op", "and");
return getJobs(jobQuery).get(0);
List<Job> results = getJobs(jobQuery);
return results.isEmpty() ? null : results.get(0);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,9 @@ class DestroyTitusServerGroupAtomicOperationSpec extends Specification {

then:
titusClient.terminateJob(new TerminateJobRequest().withJobId('1234'))
atomicOperation.events.size() == 1
atomicOperation.events[0].accountId == 'test'
atomicOperation.events[0].region == 'us-east-1'
atomicOperation.events[0].name == 'api-test-v000'
}
}

0 comments on commit a943598

Please sign in to comment.