in online_archive/src/main/scala/VidispineMessageProcessor.scala [79:121]
private def addOrUpdateArchiveRecord(archivedRecord: Option[ArchivedRecord], filePath: String, uploadedPath: String, fileSize: Long,
itemId: Option[String], essenceVersion: Option[Int]):Future[Either[String, MessageProcessorReturnValue]] = {
val record = archivedRecord match {
case Some(rec) =>
MDC.put("correlationId", rec.correlationId)
logger.debug(s"actual archivehunter ID for $filePath is ${rec.archiveHunterID}")
rec.copy(
originalFileSize = fileSize,
uploadedPath = uploadedPath,
vidispineItemId = itemId,
vidispineVersionId = essenceVersion
)
case None =>
val correlationId = UUID.randomUUID().toString
val archiveHunterID = utils.ArchiveHunter.makeDocId(bucket = vidispineFunctions.mediaBucketName, uploadedPath)
MDC.put("correlationId", correlationId)
logger.debug(s"Provisional archivehunter ID for $uploadedPath is $archiveHunterID")
ArchivedRecord(None,
archiveHunterID,
archiveHunterIDValidated=false,
originalFilePath=filePath,
originalFileSize=fileSize,
uploadedBucket = vidispineFunctions.mediaBucketName,
uploadedPath = uploadedPath,
uploadedVersion = None,
vidispineItemId = itemId,
vidispineVersionId = essenceVersion,
None,
None,
None,
None,
None,
correlationId
)
}
logger.info(s"Updating record for ${record.originalFilePath} with vidispine ID ${itemId}, vidispine version ${essenceVersion}. ${if(!record.archiveHunterIDValidated) "ArchiveHunter ID validation is required."}")
archivedRecordDAO
.writeRecord(record)
.map(recId=>Right(record.copy(id=Some(recId)).asJson))
}