in updater/aws.go [300:323]
func (u *updater) waitUntilDrained(containerInstance string) error {
log.Printf("Waiting for container instance %q to drain", containerInstance)
list, err := u.ecs.ListTasks(&ecs.ListTasksInput{
Cluster: &u.cluster,
ContainerInstance: aws.String(containerInstance),
})
if err != nil {
return fmt.Errorf("failed to list tasks: %w", err)
}
taskARNs := list.TaskArns
if len(taskARNs) == 0 {
log.Printf("No tasks to drain")
return nil
}
return u.ecs.WaitUntilTasksStoppedWithContext(aws.BackgroundContext(), &ecs.DescribeTasksInput{
Cluster: &u.cluster,
Tasks: taskARNs,
},
request.WithWaiterMaxAttempts(waiterMaxAttempts),
request.WithWaiterDelay(request.ConstantWaiterDelay(waiterDelay)),
)
}