github.com/anuvu/nomad@v0.8.7-atom1/ui/app/templates/allocations/allocation/index.hbs (about)

     1  {{#global-header class="page-header"}}
     2    {{#each breadcrumbs as |breadcrumb index|}}
     3      <li class="{{if (eq (inc index) breadcrumbs.length) "is-active"}}">
     4        {{#link-to
     5          data-test-breadcrumb=breadcrumb.label
     6          params=breadcrumb.args}}
     7          {{breadcrumb.label}}
     8        {{/link-to}}
     9      </li>
    10    {{/each}}
    11  {{/global-header}}
    12  {{#gutter-menu class="page-body"}}
    13    <section class="section">
    14      <h1 data-test-title class="title">
    15        Allocation {{model.name}}
    16        <span class="bumper-left tag {{model.statusClass}}">{{model.clientStatus}}</span>
    17        <span class="tag is-hollow is-small no-text-transform">{{model.id}}</span>
    18      </h1>
    19  
    20      <div class="boxed-section is-small">
    21        <div data-test-allocation-details class="boxed-section-body inline-definitions">
    22          <span class="label">Allocation Details</span>
    23          <span class="pair job-link"><span class="term">Job</span>
    24            {{#link-to "jobs.job" model.job (query-params jobNamespace=model.job.namespace.id) data-test-job-link}}{{model.job.name}}{{/link-to}}
    25          </span>
    26          <span class="pair node-link"><span class="term">Client</span>
    27            {{#link-to "clients.client" model.node data-test-client-link}}{{model.node.shortId}}{{/link-to}}
    28          </span>
    29        </div>
    30      </div>
    31  
    32      <div class="boxed-section">
    33        <div class="boxed-section-head">
    34          Tasks
    35        </div>
    36        <div class="boxed-section-body is-full-bleed">
    37          {{#list-table
    38            source=sortedStates
    39            sortProperty=sortProperty
    40            sortDescending=sortDescending
    41            class="is-striped" as |t|}}
    42            {{#t.head}}
    43              <th class="is-narrow"></th>
    44              {{#t.sort-by prop="name"}}Name{{/t.sort-by}}
    45              {{#t.sort-by prop="state"}}State{{/t.sort-by}}
    46              <th>Last Event</th>
    47              {{#t.sort-by prop="events.lastObject.time"}}Time{{/t.sort-by}}
    48              <th>Addresses</th>
    49            {{/t.head}}
    50            {{#t.body as |row|}}
    51              <tr
    52                data-test-task-row={{row.model.task.name}}
    53                onclick={{action "taskClick" row.model.allocation row.model}}
    54                class="is-interactive">
    55                <td class="is-narrow">
    56                  {{#if (not row.model.driverStatus.healthy)}}
    57                    <span data-test-icon="unhealthy-driver" class="tooltip text-center" aria-label="{{row.model.driver}} is unhealthy">
    58                      {{x-icon "warning" class="is-warning"}}
    59                    </span>
    60                  {{/if}}
    61                </td>
    62                <td data-test-name>
    63                  {{#link-to "allocations.allocation.task" row.model.allocation row.model class="is-primary"}}
    64                    {{row.model.name}}
    65                  {{/link-to}}
    66                </td>
    67                <td data-test-state>{{row.model.state}}</td>
    68                <td data-test-message>
    69                  {{#if row.model.events.lastObject.message}}
    70                    {{row.model.events.lastObject.message}}
    71                  {{else}}
    72                    <em>No message</em>
    73                  {{/if}}
    74                </td>
    75                <td data-test-time>{{moment-format row.model.events.lastObject.time "MM/DD/YY HH:mm:ss"}}</td>
    76                <td data-test-ports>
    77                  <ul>
    78                    {{#with row.model.resources.networks.firstObject as |network|}}
    79                      {{#each network.reservedPorts as |port|}}
    80                        <li data-test-port>
    81                          <strong>{{port.Label}}:</strong>
    82                          <a href="http://{{network.ip}}:{{port.Value}}" target="_blank">{{network.ip}}:{{port.Value}}</a>
    83                        </li>
    84                      {{/each}}
    85                      {{#each network.dynamicPorts as |port|}}
    86                        <li>
    87                          <strong>{{port.Label}}:</strong>
    88                          <a href="http://{{network.ip}}:{{port.Value}}" target="_blank">{{network.ip}}:{{port.Value}}</a>
    89                        </li>
    90                      {{/each}}
    91                    {{/with}}
    92                  </ul>
    93                </td>
    94              </tr>
    95            {{/t.body}}
    96          {{/list-table}}
    97        </div>
    98      </div>
    99  
   100      {{#if model.hasRescheduleEvents}}
   101        <div class="boxed-section" data-test-reschedule-events>
   102          <div class="boxed-section-head is-hollow">
   103            Reschedule Events
   104          </div>
   105          <div class="boxed-section-body">
   106            {{reschedule-event-timeline allocation=model}}
   107          </div>
   108        </div>
   109      {{/if}}
   110    </section>
   111  {{/gutter-menu}}