diff --git a/ui/app/components/lifecycle-chart.js b/ui/app/components/lifecycle-chart.js index a58e6b839..602fdd674 100644 --- a/ui/app/components/lifecycle-chart.js +++ b/ui/app/components/lifecycle-chart.js @@ -47,11 +47,6 @@ export default class LifecycleChart extends Component { phases.push({ name: 'Poststart', }); - - phases.push({ - name: 'Poststop', - isActive: lifecycles.poststops.some(stateActiveIterator), - }); } return phases; diff --git a/ui/app/styles/components/lifecycle-chart.scss b/ui/app/styles/components/lifecycle-chart.scss index aec38bd91..b983f75d5 100644 --- a/ui/app/styles/components/lifecycle-chart.scss +++ b/ui/app/styles/components/lifecycle-chart.scss @@ -33,7 +33,6 @@ position: absolute; bottom: 0; top: 0; - border-top: 2px solid transparent; .name { @@ -59,12 +58,12 @@ &.main { left: 25%; - right: 25%; + right: 0; } &.poststart { - left: 35%; - right: 25%; + left: 40%; + right: 0; } &.poststop { @@ -127,28 +126,20 @@ &.main { margin-left: 25%; - margin-right: 25%; + margin-right: 0; } &.prestart-ephemeral { margin-right: 75%; } - &.prestart-sidecar { - margin-right: 25%; - } - &.poststart-ephemeral, &.poststart-sidecar { - margin-left: 35%; - } - - &.poststart-sidecar { - margin-right: 25%; + margin-left: 40%; } &.poststart-ephemeral { - margin-right: 35%; + margin-right: 10%; } &.poststop { diff --git a/ui/app/templates/components/lifecycle-chart.hbs b/ui/app/templates/components/lifecycle-chart.hbs index 5cf17a9b1..f15141123 100644 --- a/ui/app/templates/components/lifecycle-chart.hbs +++ b/ui/app/templates/components/lifecycle-chart.hbs @@ -14,9 +14,6 @@ - - -
diff --git a/ui/mirage/factories/task.js b/ui/mirage/factories/task.js index 6f898aaae..6b6759c07 100644 --- a/ui/mirage/factories/task.js +++ b/ui/mirage/factories/task.js @@ -19,7 +19,7 @@ export default Factory.extend({ Resources: generateResources, Lifecycle: i => { - const cycle = i % 6; + const cycle = i % 5; if (cycle === 0) { return null; @@ -31,8 +31,6 @@ export default Factory.extend({ return { Hook: 'poststart', Sidecar: false }; } else if (cycle === 4) { return { Hook: 'poststart', Sidecar: true }; - } else if (cycle === 5) { - return { Hook: 'poststop' }; } }, }); diff --git a/ui/tests/acceptance/allocation-detail-test.js b/ui/tests/acceptance/allocation-detail-test.js index 67943f525..d4788d88e 100644 --- a/ui/tests/acceptance/allocation-detail-test.js +++ b/ui/tests/acceptance/allocation-detail-test.js @@ -96,13 +96,14 @@ module('Acceptance | allocation detail', function(hooks) { assert.ok(Allocation.lifecycleChart.isPresent); assert.equal(Allocation.lifecycleChart.title, 'Task Lifecycle Status'); - assert.equal(Allocation.lifecycleChart.phases.length, 4); + assert.equal(Allocation.lifecycleChart.phases.length, 3); assert.equal(Allocation.lifecycleChart.tasks.length, 6); await Allocation.lifecycleChart.tasks[0].visit(); const prestartEphemeralTask = server.db.taskStates .where({ allocationId: allocation.id }) + .sortBy('name') .find(taskState => { const task = server.db.tasks.findBy({ name: taskState.name }); return task.Lifecycle && task.Lifecycle.Hook === 'prestart' && !task.Lifecycle.Sidecar; diff --git a/ui/tests/acceptance/task-detail-test.js b/ui/tests/acceptance/task-detail-test.js index 32b9c11cd..7a9b4390a 100644 --- a/ui/tests/acceptance/task-detail-test.js +++ b/ui/tests/acceptance/task-detail-test.js @@ -37,8 +37,13 @@ module('Acceptance | task detail', function(hooks) { ); const lifecycle = server.db.tasks.where({ name: task.name })[0].Lifecycle; - const prestartString = lifecycle && lifecycle.Sidecar ? 'sidecar' : 'prestart'; - assert.equal(Task.lifecycle, lifecycle ? prestartString : 'main'); + + let lifecycleName = 'main'; + if (lifecycle && (lifecycle.Hook === 'prestart' || lifecycle.Hook === 'poststart')) { + lifecycleName = `${lifecycle.Hook}-${lifecycle.Sidecar ? 'sidecar' : 'ephemeral'}`; + } + + assert.equal(Task.lifecycle, lifecycleName); assert.equal(document.title, `Task ${task.name} - Nomad`); }); diff --git a/ui/tests/integration/components/lifecycle-chart-test.js b/ui/tests/integration/components/lifecycle-chart-test.js index 864f3fcfb..90d65abca 100644 --- a/ui/tests/integration/components/lifecycle-chart-test.js +++ b/ui/tests/integration/components/lifecycle-chart-test.js @@ -34,10 +34,6 @@ const tasks = [ lifecycleName: 'poststart-sidecar', name: 'poststart sidecar: 4', }, - { - lifecycleName: 'poststop', - name: 'poststop: 6', - }, ]; module('Integration | Component | lifecycle-chart', function(hooks) { @@ -52,7 +48,6 @@ module('Integration | Component | lifecycle-chart', function(hooks) { assert.equal(Chart.phases[0].name, 'Prestart'); assert.equal(Chart.phases[1].name, 'Main'); assert.equal(Chart.phases[2].name, 'Poststart'); - assert.equal(Chart.phases[3].name, 'Poststop'); Chart.phases.forEach(phase => assert.notOk(phase.isActive)); @@ -63,7 +58,6 @@ module('Integration | Component | lifecycle-chart', function(hooks) { 'main two: 3', 'poststart sidecar: 4', 'poststart ephemeral: 5', - 'poststop: 6', ]); assert.deepEqual(Chart.tasks.mapBy('lifecycle'), [ 'Prestart Task', @@ -72,7 +66,6 @@ module('Integration | Component | lifecycle-chart', function(hooks) { 'Main Task', 'Sidecar Task', 'Poststart Task', - 'Poststop Task', ]); assert.ok(Chart.tasks[0].isPrestartEphemeral); @@ -80,7 +73,6 @@ module('Integration | Component | lifecycle-chart', function(hooks) { assert.ok(Chart.tasks[2].isMain); assert.ok(Chart.tasks[4].isPoststartSidecar); assert.ok(Chart.tasks[5].isPoststartEphemeral); - assert.ok(Chart.tasks[6].isPoststop); Chart.tasks.forEach(task => { assert.notOk(task.isActive); @@ -102,10 +94,10 @@ module('Integration | Component | lifecycle-chart', function(hooks) { }); test('it renders all phases when there are any non-main tasks', async function(assert) { - this.set('tasks', [tasks[0], tasks[6]]); + this.set('tasks', [tasks[0], tasks[2]]); await render(hbs``); - assert.ok(Chart.phases.length, 4); + assert.equal(Chart.phases.length, 3); }); test('it reflects phase and task states when states are passed in', async function(assert) { @@ -149,8 +141,8 @@ module('Integration | Component | lifecycle-chart', function(hooks) { [ { testName: 'expected active phases', - runningTaskNames: ['prestart ephemeral', 'main one', 'poststop'], - activePhaseNames: ['Prestart', 'Main', 'Poststop'], + runningTaskNames: ['prestart ephemeral', 'main one'], + activePhaseNames: ['Prestart', 'Main'], }, { testName: 'sidecar task states don’t affect phase active states', diff --git a/ui/tests/pages/components/lifecycle-chart.js b/ui/tests/pages/components/lifecycle-chart.js index 47f1493e4..68781845d 100644 --- a/ui/tests/pages/components/lifecycle-chart.js +++ b/ui/tests/pages/components/lifecycle-chart.js @@ -23,7 +23,6 @@ export default { isPrestartSidecar: hasClass('prestart-sidecar'), isPoststartEphemeral: hasClass('poststart-ephemeral'), isPoststartSidecar: hasClass('poststart-sidecar'), - isPoststop: hasClass('poststop'), visit: clickable('a'), }),