Files
nomad/ui/app/components/allocation-row.hbs

143 lines
3.7 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}
<td data-test-indicators class="is-narrow">
{{#if this.allocation.unhealthyDrivers.length}}
<span
data-test-icon="unhealthy-driver"
class="tooltip text-center"
role="tooltip"
aria-label="Allocation depends on unhealthy drivers"
>
<Hds::Icon @name="alert-triangle-fill" @color="warning" class="icon-vertical-bump-down" />
</span>
{{/if}}
{{#if this.allocation.nextAllocation}}
<span
data-test-icon="reschedule"
class="tooltip text-center"
role="tooltip"
aria-label="Allocation was rescheduled"
>
<Hds::Icon @name="history" @color="faint" />
</span>
{{/if}}
{{#if this.allocation.wasPreempted}}
<span
data-test-icon="preemption"
class="tooltip text-center"
role="tooltip"
aria-label="Allocation was preempted"
>
<Hds::Icon @name="cloud-lightning" @color="faint" />
</span>
{{/if}}
</td>
<td data-test-short-id>
<LinkTo
@route="allocations.allocation"
@model={{this.allocation.id}}
class="is-primary"
>
{{this.allocation.shortId}}
</LinkTo>
</td>
{{#if (eq this.context "job")}}
<td data-test-task-group>
<LinkTo
@route="jobs.job.task-group"
@models={{array
(format-job-id this.allocation.job.id)
this.allocation.taskGroupName
}}
>
{{this.allocation.taskGroupName}}
</LinkTo>
</td>
{{/if}}
<td data-test-create-time>
{{format-month-ts this.allocation.createTime}}
</td>
<td data-test-modify-time>
<span
class="tooltip"
aria-label="{{format-month-ts this.allocation.modifyTime}}"
>
{{moment-from-now this.allocation.modifyTime}}
</span>
</td>
<td data-test-client-status class="is-one-line">
<span class="color-swatch {{this.allocation.clientStatus}}"></span>
{{this.allocation.clientStatus}}
</td>
{{#if (eq this.context "volume")}}
<td data-test-client>
<Tooltip @text={{this.allocation.node.name}}>
<LinkTo @route="clients.client" @model={{this.allocation.node}}>
{{this.allocation.node.shortId}}
</LinkTo>
</Tooltip>
</td>
{{/if}}
{{#if (or (eq this.context "taskGroup") (eq this.context "job"))}}
<td data-test-job-version>
{{this.allocation.jobVersion}}
</td>
<td data-test-client>
<Tooltip @text={{this.allocation.node.name}}>
<LinkTo @route="clients.client" @model={{this.allocation.node}}>
{{this.allocation.node.shortId}}
</LinkTo>
</Tooltip>
</td>
{{else if (or (eq this.context "node") (eq this.context "volume"))}}
<td>
{{#if (or this.allocation.job.isPending this.allocation.job.isReloading)}}
...
{{else}}
<LinkTo
@route="jobs.job"
@model={{format-job-id this.allocation.job.id}}
data-test-job
>
{{this.allocation.job.name}}
</LinkTo>
<span class="is-faded" data-test-task-group>
/
{{this.allocation.taskGroup.name}}
</span>
{{/if}}
</td>
<td data-test-job-version class="is-1">
{{this.allocation.jobVersion}}
</td>
{{/if}}
{{#if (not (eq this.context "volume"))}}
<td data-test-volume>
{{if this.allocation.taskGroup.volumes.length "Yes"}}
</td>
{{/if}}
<td data-test-cpu class="is-1 has-text-centered">
<AllocationStat
@metric="cpu"
@allocation={{this.allocation}}
@statsTracker={{this.stats}}
@isLoading={{this.fetchStats.isRunning}}
@error={{this.statsError}}
/>
</td>
<td data-test-mem class="is-1 has-text-centered">
<AllocationStat
@metric="memory"
@allocation={{this.allocation}}
@statsTracker={{this.stats}}
@isLoading={{this.fetchStats.isRunning}}
@error={{this.statsError}}
/>
</td>
{{#if this.model.job.actions.length}}
<td class="job-actions-cell" />
{{/if}}