github.com/zoomfoo/nomad@v0.8.5-0.20180907175415-f28fd3a1a056/ui/app/templates/allocations/allocation/index.hbs (about)

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