Skip to content

Commit

Permalink
Change down to highest-priority composite status
Browse files Browse the repository at this point in the history
As pointed out by @nickethier, if a node was eligible before
it went down, downness should be displayed, not ineligibility.
  • Loading branch information
backspace committed Jan 29, 2021
1 parent f51d035 commit 6cbed10
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
4 changes: 3 additions & 1 deletion ui/app/models/node.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ export default class Node extends Model {
// Useful for coloring and sorting nodes
@computed('isDraining', 'isEligible', 'status')
get compositeStatus() {
if (this.isDraining) {
if (this.status === 'down') {
return 'down';
} else if (this.isDraining) {
return 'draining';
} else if (!this.isEligible) {
return 'ineligible';
Expand Down
25 changes: 17 additions & 8 deletions ui/tests/acceptance/clients-list-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,23 +99,29 @@ module('Acceptance | clients list', function(hooks) {
server.createList('agent', 1);

server.create('node', {
modifyIndex: 4,
modifyIndex: 5,
status: 'ready',
schedulingEligibility: 'eligible',
drain: false,
});
server.create('node', {
modifyIndex: 3,
modifyIndex: 4,
status: 'initializing',
schedulingEligibility: 'eligible',
drain: false,
});
server.create('node', {
modifyIndex: 2,
modifyIndex: 3,
status: 'down',
schedulingEligibility: 'eligible',
drain: false,
});
server.create('node', {
modifyIndex: 2,
status: 'down',
schedulingEligibility: 'ineligible',
drain: false,
});
server.create('node', {
modifyIndex: 1,
status: 'ready',
Expand All @@ -137,12 +143,13 @@ module('Acceptance | clients list', function(hooks) {

assert.equal(ClientsList.nodes[1].compositeStatus.text, 'initializing');
assert.equal(ClientsList.nodes[2].compositeStatus.text, 'down');
assert.equal(ClientsList.nodes[2].compositeStatus.text, 'down', 'down takes priority over ineligible');

assert.equal(ClientsList.nodes[3].compositeStatus.text, 'ineligible');
assert.ok(ClientsList.nodes[3].compositeStatus.isWarning, 'expected warning class');
assert.equal(ClientsList.nodes[4].compositeStatus.text, 'ineligible');
assert.ok(ClientsList.nodes[4].compositeStatus.isWarning, 'expected warning class');

assert.equal(ClientsList.nodes[4].compositeStatus.text, 'draining');
assert.ok(ClientsList.nodes[4].compositeStatus.isInfo, 'expected info class');
assert.equal(ClientsList.nodes[5].compositeStatus.text, 'draining');
assert.ok(ClientsList.nodes[5].compositeStatus.isInfo, 'expected info class');

await ClientsList.sortBy('compositeStatus');

Expand All @@ -152,13 +159,14 @@ module('Acceptance | clients list', function(hooks) {
'ineligible',
'draining',
'down',
'down',
]);

// Simulate a client state change arriving through polling
let readyClient = this.owner
.lookup('service:store')
.peekAll('node')
.findBy('modifyIndex', 4);
.findBy('modifyIndex', 5);
readyClient.set('schedulingEligibility', 'ineligible');

await settled();
Expand All @@ -169,6 +177,7 @@ module('Acceptance | clients list', function(hooks) {
'ineligible',
'draining',
'down',
'down',
]);
});

Expand Down

0 comments on commit 6cbed10

Please sign in to comment.