in discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala [66:81]
override def lookup(lookup: Lookup, resolveTimeout: FiniteDuration): Future[Resolved] =
Future.firstCompletedOf(
Seq(
after(resolveTimeout, using = system.scheduler)(
Future.failed(new TimeoutException(s"$lookup timed out after $resolveTimeout"))),
resolveTasks(ecsClient, cluster, httpClient).map(tasks =>
Resolved(
serviceName = lookup.serviceName,
addresses = for {
task <- tasks
container <- task.containers().asScala
networkInterface <- container.networkInterfaces().asScala
} yield {
val address = networkInterface.privateIpv4Address()
ResolvedTarget(host = address, port = None, address = Try(InetAddress.getByName(address)).toOption)
}))))