in riff-raff/app/resources/PrismLookup.scala [162:184]
def parseHosts(json: JsValue, entity: String = "instances"): Seq[Host] = {
val tryHosts = (json \ "data" \ entity).as[JsArray].value.map { jsHost =>
Try(jsHost.as[Host])
}
val errors = tryHosts.flatMap {
case f @ Failure(e) => Some(f)
case _ => None
}
if (errors.nonEmpty)
log.warn(
s"Encountered ${errors.size} (of ${tryHosts.size}) $entity records that could not be parsed in Prism response"
)
if (log.isDebugEnabled)
errors.foreach(e =>
log.debug("Couldn't parse instance from Prism data", e.exception)
)
tryHosts.toSeq.flatMap {
case Success(hosts) => Some(hosts)
case _ => None
}
}