in app/services/actors/creation/PostrunExecutor.scala [129:157]
protected def storePremiereVersionInfo(maybeOutput: Option[JythonOutput], entry: ProjectEntry) = maybeOutput match {
case Some(finalResult)=>
finalResult.newDataCache.get("premiere_version") match {
case Some(premiereVersion) =>
Try {
premiereVersion.toInt
} match {
case Success(premiereVersionNumber) =>
logger.info(s"${entry.id}: ${entry.projectTitle} - got premiere version $premiereVersion")
for {
files <- entry.associatedFiles(allVersions = false)
updates <- Future.sequence(files.map(f => {
val updatedFile = f.copy(maybePremiereVersion = Some(premiereVersionNumber))
updatedFile.save
}))
} yield updates
case Failure(err) =>
logger.error(s"${entry.id}: ${entry.projectTitle} - got premiere version '$premiereVersion' which does not convert to a number. This should not happen. Error was '${err.getMessage}'", err)
Future.failed(new RuntimeException("Could not get a valid premiere version, possibly a corrupted template"))
}
case None =>
logger.debug(s"${entry.projectTitle} (${entry.id.get} is not a premiere project")
Future(Seq())
}
case None=>
logger.warn(s"No postruns ran for ${entry.projectTitle} (${entry.id.get} so no metadata")
Future(Seq())
}