@import data.Roles @import prism.Prism.Image @import prism.Prism.AWSAccount @import prism.RecipeUsage @import views.html.helper.CSRF @( recipe: Recipe, recentBakes: Iterable[Bake], recentCopies: Map[AmiId, Seq[Image]], accounts: Seq[AWSAccount], usage: prism.RecipeUsage, allRoles: Seq[RoleSummary], debugAvailable: Boolean, cloneForm: Form[_] )(implicit request: RequestHeader, flash: Flash, messages: play.api.i18n.Messages) @implicitFieldConstructor = @{ b3.inline.fieldConstructor() } @simpleLayout("AMIgo"){
Created @fragments.timestamp(recipe.createdAt, recipe.createdBy)
Modified @fragments.timestamp(recipe.modifiedAt, recipe.modifiedBy)
Build schedule: @recipe.bakeSchedule.map(_.quartzCronExpression).getOrElse("(none)")
Request encrypted copy: @if(recipe.encryptFor.nonEmpty){ @recipe.encryptFor.map(_.accountNumber).mkString(", ") }else{ None }
@recipe.description
@if(usage.instances.size + usage.launchConfigurations.size > 0) {This recipe is used by @usage.instances.size instance@if(usage.instances.size != 1){s} and @usage.launchConfigurations.size launch configuration@if(usage.launchConfigurations.size != 1){s}
} else {This recipe is not used
}@BaseImage.eolStatusString(recipe.baseImage)
Started | Build number | @if(recentCopies.nonEmpty) {Encrypted copy | }Status | AMI | @* Column for copy button *@Usages | AMIable | @for(bake <- recentBakes) {||||
---|---|---|---|---|---|---|---|---|---|---|
@fragments.timestamp(bake.startedAt, bake.startedBy) | @bake.buildNumber | @if(recentCopies.nonEmpty) {} | @bake.status | @if(bake.amiId.isDefined) {
@bake.amiId
|
@fragments.usagesColumn(recipe, RecipeUsage.amiUsages(usage, bake.amiId.get)) |
|
} else {
} | |||
|
@copy.state.capitalize |
@copy.imageId
|
@fragments.usagesColumn(recipe, RecipeUsage.amiUsages(usage, copy.imageId)) |
|