[ui] Allocation route services table: show task-level services (#14199)
Adds service fragments to allocations and union taskGroup and task services
This commit is contained in:
parent
09e275ccba
commit
fcf2c40c60
|
@ -0,0 +1,3 @@
|
||||||
|
```release-note:feature
|
||||||
|
[ui] Services table: Display task-level services in addition to group-level services.
|
||||||
|
```
|
|
@ -11,6 +11,7 @@ import { lazyClick } from 'nomad-ui/helpers/lazy-click';
|
||||||
import { watchRecord } from 'nomad-ui/utils/properties/watch';
|
import { watchRecord } from 'nomad-ui/utils/properties/watch';
|
||||||
import messageForError from 'nomad-ui/utils/message-from-adapter-error';
|
import messageForError from 'nomad-ui/utils/message-from-adapter-error';
|
||||||
import classic from 'ember-classic-decorator';
|
import classic from 'ember-classic-decorator';
|
||||||
|
import { union } from '@ember/object/computed';
|
||||||
|
|
||||||
@classic
|
@classic
|
||||||
export default class IndexController extends Controller.extend(Sortable) {
|
export default class IndexController extends Controller.extend(Sortable) {
|
||||||
|
@ -46,11 +47,26 @@ export default class IndexController extends Controller.extend(Sortable) {
|
||||||
return (this.get('model.allocatedResources.ports') || []).sortBy('label');
|
return (this.get('model.allocatedResources.ports') || []).sortBy('label');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@computed('model.states.@each.task')
|
||||||
|
get tasks() {
|
||||||
|
return this.get('model.states').mapBy('task') || [];
|
||||||
|
}
|
||||||
|
|
||||||
|
@computed('tasks.@each.services')
|
||||||
|
get taskServices() {
|
||||||
|
return this.get('tasks')
|
||||||
|
.map((t) => (t && t.get('services') || []).toArray())
|
||||||
|
.flat()
|
||||||
|
.compact();
|
||||||
|
}
|
||||||
|
|
||||||
@computed('model.taskGroup.services.@each.name')
|
@computed('model.taskGroup.services.@each.name')
|
||||||
get services() {
|
get groupServices() {
|
||||||
return (this.get('model.taskGroup.services') || []).sortBy('name');
|
return (this.get('model.taskGroup.services') || []).sortBy('name');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@union('taskServices', 'groupServices') services;
|
||||||
|
|
||||||
onDismiss() {
|
onDismiss() {
|
||||||
this.set('error', null);
|
this.set('error', null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ export default class Task extends Fragment {
|
||||||
@attr('number') reservedCPU;
|
@attr('number') reservedCPU;
|
||||||
@attr('number') reservedDisk;
|
@attr('number') reservedDisk;
|
||||||
@attr('number') reservedEphemeralDisk;
|
@attr('number') reservedEphemeralDisk;
|
||||||
|
@fragmentArray('service') services;
|
||||||
|
|
||||||
@fragmentArray('volume-mount', { defaultValue: () => [] }) volumeMounts;
|
@fragmentArray('volume-mount', { defaultValue: () => [] }) volumeMounts;
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,7 @@ module('Acceptance | regions (many)', function (hooks) {
|
||||||
const newRegion = server.db.regions[1].id;
|
const newRegion = server.db.regions[1].id;
|
||||||
|
|
||||||
await Allocation.visit({ id: server.db.allocations[0].id });
|
await Allocation.visit({ id: server.db.allocations[0].id });
|
||||||
|
await this.pauseTest();
|
||||||
|
|
||||||
await selectChoose('[data-test-region-switcher-parent]', newRegion);
|
await selectChoose('[data-test-region-switcher-parent]', newRegion);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue