in riff-raff/app/controllers/PreviewController.scala [59:110]
def showTasks(previewId: String) = authAction.async { implicit request =>
val maybeResult = coordinator.getPreviewResult(UUID.fromString(previewId))
maybeResult match {
case Some(result) if result.future.isCompleted =>
result.future
.map { preview =>
preview.graph match {
case Valid(taskGraph) =>
val deploymentKeys = taskGraph.toList.map(_._1)
val totalKeyCount = preview.parameters.selector match {
case All => Some(deploymentKeys.size)
case _ => None
}
logger.info(s"Deployment keys: $deploymentKeys")
val form = DeployParameterForm.form.fill(
DeployParameterForm(
preview.parameters.build.projectName,
preview.parameters.build.id,
preview.parameters.stage.name,
"n/a",
deploymentKeys,
totalKeyCount,
updateStrategy = preview.parameters.updateStrategy
)
)
Ok(
views.html.preview.yaml
.showTasks(taskGraph, form, deploymentKeys)
)
case Invalid(errors) =>
Ok(
views.html.validation
.validationErrors(config, menu)(request, errors)
)
}
}
.recover { case NonFatal(t) =>
Ok(views.html.errorContent(t, "Preview failed"))
}
case Some(result) =>
Future.successful(
Ok(
views.html.preview.yaml
.loading(request, result.duration.getStandardSeconds)
)
)
case None =>
Future.successful(
NotFound(s"Preview with ID $previewId doesn't exist.")
)
}
}