in hq/app/services/CacheService.scala [193:216]
def logCacheDataStatus[A](cacheName: String, data: Seq[(AwsAccount, Either[FailedAttempt, A])]): Unit = {
val (successful, failed) = data.partition { case (_, result) => result.isRight }
if (failed.isEmpty) {
logger.info(s"$cacheName updated: All ${data.size} accounts successful")
} else {
val failedAccountsDetails = failed.flatMap {
case (account, Left(failedAttempt)) =>
Some(s"${account.name}: ${failedAttempt.logMessage}")
case _ => None
}.mkString(", ")
val logMessage = s"$cacheName updated: ${successful.size}/${data.size} accounts succeeded. Failed accounts: $failedAccountsDetails"
failed.flatMap {
case (_, Left(failedAttempt)) =>
failedAttempt.firstException
case _ => None
}.headOption match {
case None =>
logger.warn(logMessage)
case Some(exampleCausedBy) =>
logger.warn(s"$logMessage - see stacktrace for an example cause", exampleCausedBy)
}
}
}