github.com/ferranbt/nomad@v0.9.3-0.20190607002617-85c449b7667c/ui/app/templates/allocations/allocation/index.hbs (about)

     1  <section class="section">
     2    {{#if error}}
     3      <div data-test-inline-error class="notification is-danger">
     4        <div class="columns">
     5          <div class="column">
     6            <h3 data-test-inline-error-title class="title is-4">{{error.title}}</h3>
     7            <p data-test-inline-error-body>{{error.description}}</p>
     8          </div>
     9          <div class="column is-centered is-minimum">
    10            <button data-test-inline-error-close class="button is-danger" onclick={{action onDismiss}}>Okay</button>
    11          </div>
    12        </div>
    13      </div>
    14    {{/if}}
    15  
    16    <h1 data-test-title class="title with-headroom">
    17      Allocation {{model.name}}
    18      <span class="bumper-left tag {{model.statusClass}}">{{model.clientStatus}}</span>
    19      <span class="tag is-hollow is-small no-text-transform">{{model.id}}</span>
    20      {{#if model.isRunning}}
    21        {{two-step-button
    22          data-test-stop
    23          idleText="Stop"
    24          cancelText="Cancel"
    25          confirmText="Yes, Stop"
    26          confirmationMessage="Are you sure? This will reschedule the allocation on a different client."
    27          awaitingConfirmation=stopAllocation.isRunning
    28          disabled=(or stopAllocation.isRunning restartAllocation.isRunning)
    29          onConfirm=(perform stopAllocation)}}
    30        {{two-step-button
    31          data-test-restart
    32          idleText="Restart"
    33          cancelText="Cancel"
    34          confirmText="Yes, Restart"
    35          confirmationMessage="Are you sure? This will restart the allocation in-place."
    36          awaitingConfirmation=restartAllocation.isRunning
    37          disabled=(or stopAllocation.isRunning restartAllocation.isRunning)
    38          onConfirm=(perform restartAllocation)}}
    39      {{/if}}
    40    </h1>
    41  
    42    <div class="boxed-section is-small">
    43      <div data-test-allocation-details class="boxed-section-body inline-definitions">
    44        <span class="label">Allocation Details</span>
    45        <span class="pair job-link"><span class="term">Job</span>
    46          {{#link-to "jobs.job" model.job (query-params jobNamespace=model.job.namespace.id) data-test-job-link}}{{model.job.name}}{{/link-to}}
    47        </span>
    48        <span class="pair node-link"><span class="term">Client</span>
    49          {{#link-to "clients.client" model.node data-test-client-link}}{{model.node.shortId}}{{/link-to}}
    50        </span>
    51      </div>
    52    </div>
    53  
    54    <div class="boxed-section">
    55      <div class="boxed-section-head is-hollow">
    56        Resource Utilization
    57      </div>
    58      <div class="boxed-section-body">
    59        {{#if model.isRunning}}
    60          <div class="columns">
    61            <div class="column">
    62              {{primary-metric resource=model metric="cpu"}}
    63            </div>
    64            <div class="column">
    65              {{primary-metric resource=model metric="memory"}}
    66            </div>
    67          </div>
    68        {{else}}
    69          <div data-test-resource-error class="empty-message">
    70            <h3 data-test-resource-error-headline class="empty-message-headline">Allocation isn't running</h3>
    71            <p class="empty-message-body">Only running allocations utilize resources.</p>
    72          </div>
    73        {{/if}}
    74      </div>
    75    </div>
    76  
    77    <div class="boxed-section">
    78      <div class="boxed-section-head">
    79        Tasks
    80      </div>
    81      <div class="boxed-section-body {{if sortedStates.length "is-full-bleed"}}">
    82        {{#if sortedStates.length}}
    83          {{#list-table
    84            source=sortedStates
    85            sortProperty=sortProperty
    86            sortDescending=sortDescending
    87            class="is-striped" as |t|}}
    88            {{#t.head}}
    89              <th class="is-narrow"></th>
    90              {{#t.sort-by prop="name"}}Name{{/t.sort-by}}
    91              {{#t.sort-by prop="state"}}State{{/t.sort-by}}
    92              <th>Last Event</th>
    93              {{#t.sort-by prop="events.lastObject.time"}}Time{{/t.sort-by}}
    94              <th>Addresses</th>
    95              <th>CPU</th>
    96              <th>Memory</th>
    97            {{/t.head}}
    98            {{#t.body as |row|}}
    99              {{task-row
   100                data-test-task-row=row.model.name
   101                task=row.model
   102                onClick=(action "taskClick" row.model.allocation row.model)}}
   103            {{/t.body}}
   104          {{/list-table}}
   105        {{else}}
   106          <div data-test-empty-tasks-list class="empty-message">
   107            <h3 data-test-empty-tasks-list-headline class="empty-message-headline">No Tasks</h3>
   108            <p data-test-empty-tasks-list-body class="empty-message-body">Allocations will not have tasks until they are in a running state.</p>
   109          </div>
   110        {{/if}}
   111      </div>
   112    </div>
   113  
   114    {{#if model.hasRescheduleEvents}}
   115      <div class="boxed-section" data-test-reschedule-events>
   116        <div class="boxed-section-head is-hollow">
   117          Reschedule Events
   118        </div>
   119        <div class="boxed-section-body">
   120          {{reschedule-event-timeline allocation=model}}
   121        </div>
   122      </div>
   123    {{/if}}
   124  
   125    {{#if model.wasPreempted}}
   126      <div class="boxed-section is-warning" data-test-was-preempted>
   127        <div class="boxed-section-head">Preempted By</div>
   128        <div class="boxed-section-body">
   129          {{#if (not preempter)}}
   130            <div class="empty-message">
   131              <h3 class="empty-message-headline">Allocation is gone</h3>
   132              <p class="empty-message-body">This allocation has been stopped and garbage collected.</p>
   133            </div>
   134          {{else}}
   135            <div class="boxed-section is-small">
   136              <div class="boxed-section-body inline-definitions">
   137                <span class="pair">
   138                  <span data-test-allocation-status class="tag {{preempter.statusClass}}">
   139                    {{preempter.clientStatus}}
   140                  </span>
   141                </span>
   142                <span class="pair">
   143                  <span class="term" data-test-allocation-name>{{preempter.name}}</span>
   144                  {{#link-to "allocations.allocation" preempter data-test-allocation-id}}{{preempter.shortId}}{{/link-to}}
   145                </span>
   146                <span class="pair job-link"><span class="term">Job</span>
   147                  {{#link-to "jobs.job" preempter.job (query-params jobNamespace=preempter.job.namespace.id) data-test-job-link}}{{preempter.job.name}}{{/link-to}}
   148                </span>
   149                <span class="pair job-priority"><span class="term">Priority</span>
   150                  <span data-test-job-priority>{{preempter.job.priority}}</span>
   151                </span>
   152                <span class="pair node-link"><span class="term">Client</span>
   153                  {{#link-to "clients.client" preempter.node data-test-client-link}}{{preempter.node.shortId}}{{/link-to}}
   154                </span>
   155                <span class="pair"><span class="term">Reserved CPU</span>
   156                  <span data-test-allocation-cpu>{{preempter.resources.cpu}} MHz</span>
   157                </span>
   158                <span class="pair"><span class="term">Reserved Memory</span>
   159                  <span data-test-allocation-memory>{{preempter.resources.memory}} MiB</span>
   160                </span>
   161              </div>
   162            </div>
   163          {{/if}}
   164        </div>
   165      </div>
   166    {{/if}}
   167  
   168    {{#if (and model.preemptedAllocations.isFulfilled model.preemptedAllocations.length)}}
   169      <div class="boxed-section" data-test-preemptions>
   170        <div class="boxed-section-head">Preempted Allocations</div>
   171        <div class="boxed-section-body">
   172          {{#list-table
   173            source=model.preemptedAllocations
   174            class="allocations is-isolated" as |t|}}
   175            {{#t.head}}
   176              <th class="is-narrow"></th>
   177              <th>ID</th>
   178              <th>Task Group</th>
   179              <th>Created</th>
   180              <th>Modified</th>
   181              <th>Status</th>
   182              <th>Version</th>
   183              <th>Node</th>
   184              <th>CPU</th>
   185              <th>Memory</th>
   186            {{/t.head}}
   187            {{#t.body as |row|}}
   188              {{allocation-row allocation=row.model context="job" data-test-allocation=row.model.id}}
   189            {{/t.body}}
   190          {{/list-table}}
   191        </div>
   192      </div>
   193    {{/if}}
   194  </section>