in discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsServiceDiscovery.scala [95:123]
private[this] def listTaskArns(
ecsClient: EcsAsyncClient,
cluster: String,
serviceName: String,
pageTaken: Option[String] = None,
accumulator: Seq[String] = Seq.empty)(implicit ec: ExecutionContext): Future[Seq[String]] =
for {
listTasksResponse <- ecsClient.listTasks(
ListTasksRequest
.builder()
.cluster(cluster)
.serviceName(serviceName)
.nextToken(pageTaken.orNull)
.desiredStatus(DesiredStatus.RUNNING)
.build()).asScala
accumulatedTasksArns = accumulator ++ listTasksResponse.taskArns().asScala
taskArns <- listTasksResponse.nextToken() match {
case null =>
Future.successful(accumulatedTasksArns)
case nextPageToken =>
listTaskArns(
ecsClient,
cluster,
serviceName,
Some(nextPageToken),
accumulatedTasksArns)
}
} yield taskArns