Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI: Driver health checking #4294

Merged
merged 17 commits into from
May 25, 2018
Merged

Conversation

DingoEatingFuzz
Copy link
Contributor

@DingoEatingFuzz DingoEatingFuzz commented May 13, 2018

This adds a few things:

  1. Client nodes with unhealthy drivers get an icon on the clients list page
  2. Client nodes show the number of unhealthy drivers in the attributes strip on the detail page
  3. Allocations on the client detail page get an icon when they depend on a driver that is unhealthy
  4. The client detail page has a new node events section to list the last ten events for the node
  5. The client detail page has a new drivers section that shows all drivers, if they are detected on the node, if they are healthy on the node, and when they were last updated.
  6. The drivers on the client detail page can be expanded to show the health description as well as the driver attributes (e.g., version).
  7. Allocations on the task group page get an icon as well when they depend on an unhealthy driver
  8. Tasks on the allocation detail page get an icon when they depends on an unhealthy driver.

screen shot 2018-05-21 at 11 02 46 am

Allocations on the task group and client pages are denoted when they depend on an unhealthy driver

screen shot 2018-05-21 at 11 05 12 am

The client detail page now shows all drivers and their status, (i.e., detected and healthy)

screen shot 2018-05-21 at 11 13 47 am

Drivers can be expanded to show details including driver-specific attributes and a message regarding health

screen shot 2018-05-21 at 11 14 14 am

Client events include the subsystem the event is for and a message

classNames: ['accordion'],

key: 'id',
source: computed(() => []),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah not seen this, I've been doing it in init I think, nice!

if (!Ember.testing) {
this.set('_visibilityHandler', this.get('visibilityHandler').bind(this));
document.addEventListener('visibilitychange', this.get('_visibilityHandler'));
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this similar to that on click outside not cleaning up thing I had during testing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This had to do with requests canceling and resulting in runloop errors being thrown in tests when I was multitasking.

Copy link
Member

@alisdair alisdair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! 👍 I really like the list-accordion component design.

head=(component "list-accordion/accordion-head"
isOpen=item.isOpen
onOpen=(action "open" item)
onClose=(action "close" item))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could use (action (mut item.isOpen) true) and (action (mut item.isOpen) false) here instead, I think.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. I always forget about mut.

.reduce((all, drivers) => {
all.push(...drivers);
return all;
}, [])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If only we had Array.prototype.smoosh

if (this.get('config.isDev') && hash.HTTPAddr === '127.0.0.1:4646') {
hash.HTTPAddr = '127.0.0.1:4200';
}
// Transform the map-based Drivers object into an array-based ClientDriver fragment list
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment refers to ClientDriver, but I think the fragment model name is NodeDriver. Am I mistaken?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, yeah. We use Node and Client sorta but not really interchangeably. I try to keep all the data layers stuff using Node and all the routes and copy saying Client. Really easy to get wires crossed.

@DingoEatingFuzz DingoEatingFuzz merged commit d178825 into master May 25, 2018
@DingoEatingFuzz DingoEatingFuzz deleted the f-ui-driver-health-checking branch May 25, 2018 19:00
@github-actions
Copy link

github-actions bot commented Mar 3, 2023

I'm going to lock this pull request because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active contributions.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants