{{#global-header class="page-header"}} {{#each breadcrumbs as |breadcrumb|}} {{#link-to params=breadcrumb.args class="breadcrumb"}}{{breadcrumb.label}}{{/link-to}} {{/each}} {{/global-header}} {{#gutter-menu class="page-body" onNamespaceChange=(action "gotoJobs")}} {{partial "jobs/job/subnav"}}

{{model.name}} {{model.status}} {{#if model.periodic}} periodic {{else if model.parameterized}} parameterized {{/if}}

Type: {{model.type}} | Priority: {{model.priority}} {{#if (and model.namespace system.shouldShowNamespaces)}} | Namespace: {{model.namespace.name}} {{/if}}
Allocation Status {{taskGroups.length}}
{{#allocation-status-bar allocationContainer=model class="split-view" as |chart|}}
    {{#each chart.data as |datum index|}}
  1. {{datum.value}} {{datum.label}}
  2. {{/each}}
{{/allocation-status-bar}}
{{#if model.hasPlacementFailures}}
Placement Failures
{{#each model.taskGroups as |taskGroup|}} {{#if taskGroup.placementFailures}} {{#with taskGroup.placementFailures as |failures|}}

{{taskGroup.name}} {{inc failures.coalescedFailures}} unplaced

    {{#if (eq failures.nodesEvaluated 0)}}
  • No nodes were eligible for evaluation
  • {{/if}} {{#each-in failures.nodesAvailable as |datacenter available|}} {{#if (eq available 0)}}
  • No nodes are available in datacenter {{datacenter}}
  • {{/if}} {{/each-in}} {{#each-in failures.classFiltered as |class count|}}
  • Class {{class}} filtered {{count}} {{pluralize "node" count}}
  • {{/each-in}} {{#each-in failures.constraintFiltered as |constraint count|}}
  • Constraint {{constraint}} filtered {{count}} {{pluralize "node" count}}
  • {{/each-in}} {{#if failures.nodesExhausted}}
  • Resources exhausted on {{failures.nodesExhausted}} {{pluralize "node" failures.nodesExhausted}}
  • {{/if}} {{#each-in failures.classExhausted as |class count|}}
  • Class {{class}} exhausted on {{count}} {{pluralize "node" count}}
  • {{/each-in}} {{#each-in failures.dimensionExhausted as |dimension count|}}
  • Dimension {{dimension}} exhausted on {{count}} {{pluralize "node" count}}
  • {{/each-in}} {{#each-in failures.quotaExhausted as |quota dimension|}}
  • Quota limit hit {{dimension}}
  • {{/each-in}} {{#each-in failures.scores as |name score|}}
  • Score {{name}} = {{score}}
  • {{/each-in}}
{{/with}} {{/if}} {{/each}}
{{/if}} {{#if model.runningDeployment}}
Active Deployment {{model.runningDeployment.shortId}} {{#if model.runningDeployment.version.submitTime}} {{moment-from-now model.runningDeployment.version.submitTime}} {{/if}}
Running {{#if model.runningDeployment.requiresPromotion}} Deployment is running but requires promotion {{/if}}
{{#job-deployment-details deployment=model.runningDeployment as |d|}} {{d.metrics}} {{#if isShowingDeploymentDetails}} {{d.taskGroups}} {{d.allocations}} {{/if}} {{/job-deployment-details}}
{{/if}}
Task Groups
{{#list-pagination source=sortedTaskGroups sortProperty=sortProperty sortDescending=sortDescending as |p|}} {{#list-table source=p.list sortProperty=sortProperty sortDescending=sortDescending as |t|}} {{#t.head}} {{#t.sort-by prop="name"}}Name{{/t.sort-by}} {{#t.sort-by prop="count"}}Count{{/t.sort-by}} {{#t.sort-by prop="queuedOrStartingAllocs" class="is-3"}}Allocation Status{{/t.sort-by}} {{#t.sort-by prop="reservedCPU"}}Reserved CPU{{/t.sort-by}} {{#t.sort-by prop="reservedMemory"}}Reserved Memory{{/t.sort-by}} {{#t.sort-by prop="reservedEphemeralDisk"}}Reserved Disk{{/t.sort-by}} {{/t.head}} {{#t.body as |row|}} {{task-group-row taskGroup=row.model onClick=(action "gotoTaskGroup" row.model)}} {{/t.body}} {{/list-table}} {{/list-pagination}}
Evaluations
{{#list-table source=sortedEvaluations as |t|}} {{#t.head}} ID Priority Triggered By Status Placement Failures {{/t.head}} {{#t.body as |row|}} {{row.model.shortId}} {{row.model.priority}} {{row.model.triggeredBy}} {{row.model.status}} {{#if (eq row.model.status "blocked")}} N/A - In Progress {{else if row.model.hasPlacementFailures}} True {{else}} False {{/if}} {{/t.body}} {{/list-table}}
{{/gutter-menu}}