e03c5a43be
* Added to subnav and basic table implemented * Existing services become service fragments, and services tab aggregated beneath job route * Index page within jobs/job/services * Watchable services * Lintfixes * Links to clients and individual services set up * Child service route * Keyboard shortcuts on service page * Model that shows consul services as well, plus level and provider cols * lintfix * Level as query param * Watch job for service name changes too * Group level service fixtures established * Progress at task level and job-linked services * Task and group services on update * Fixture side-effect cleanup * Basic acceptance tests for job services * Testmodel cleanup * Disabled mirage logging * New cluster type specifically for services * Without explicit job-model binding * Trying to isolate a tostring error * Account for new tab in keyboardnav * More test isolation attempts * Remove skipped tests and link task to parent group by id ui: add service health viz to table (#14369) * ui: add service-status-bar * test: service-status-bar * refact: update component api for new data struct * ui: format service health struct * ui: add service health viz to table * temp: add placeholder to remind conditional watcher * test: write tests for transformation algorithm * refact: update transformation algo * ui: conditionally long poll checks endpoint * refact: add conditional logic for nomad provider refact: update service-fragment model to include owner info ui: differentiate between task and group-level in derived state comp test: add test to document behavior refact: update tests for api change refact: update integration test for API change chore: remove unsused vars chore: elvis operator to protect mirage refact: create refId instead of internalModel refact: update algo refact: update conditional template logic refact: update test for api change: chore: cant use if and not in hbs conditional
48 lines
1.3 KiB
Handlebars
48 lines
1.3 KiB
Handlebars
<tr
|
|
data-test-service-row
|
|
data-test-service-name={{@service.name}}
|
|
data-test-num-allocs={{@service.instances.length}}
|
|
data-test-service-provider={{@service.provider}}
|
|
data-test-service-level={{@service.level}}
|
|
{{on "click" (fn this.gotoService @service)}}
|
|
class={{if (eq @service.provider "nomad") "is-interactive"}}
|
|
>
|
|
<td>
|
|
{{#if (eq @service.provider "nomad")}}
|
|
<FlightIcon @name="nomad-color" />
|
|
{{else if (eq @service.provider "consul")}}
|
|
<FlightIcon @name="consul-color" />
|
|
{{/if}}
|
|
</td>
|
|
<td
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(action "gotoService" @service)
|
|
}}
|
|
>
|
|
{{#if (eq @service.provider "nomad")}}
|
|
<LinkTo class="is-primary" @route="jobs.job.services.service" @model={{@service}} @query={{hash level=@service.level}}>{{@service.name}}</LinkTo>
|
|
{{else}}
|
|
{{@service.name}}
|
|
{{/if}}
|
|
</td>
|
|
<td>
|
|
{{@service.level}}
|
|
</td>
|
|
<td>
|
|
<LinkTo @route="clients.client" @model={{@service.instances.0.node.id}}>{{@service.instances.0.node.shortId}}</LinkTo>
|
|
</td>
|
|
<td>
|
|
{{#each @service.tags as |tag|}}
|
|
<span class="tag">{{tag}}</span>
|
|
{{/each}}
|
|
</td>
|
|
<td>
|
|
{{#if (eq @service.provider "nomad")}}
|
|
{{@service.instances.length}} {{pluralize "allocation" @service.instances.length}}
|
|
{{else}}
|
|
--
|
|
{{/if}}
|
|
</td>
|
|
</tr>
|