Commit Graph

1181 Commits

Author SHA1 Message Date
Michael Lange
f9dccf9c7b Adjust topo viz controller to new resource code 2020-10-15 02:54:16 -07:00
Michael Lange
b185d09f31 Update topo viz code to use new alloc/node resources pattern 2020-10-15 02:54:16 -07:00
Michael Lange
faaf697c9e Migrate to the new resources properties for allocs and nodes 2020-10-15 02:54:16 -07:00
Michael Lange
84f88ecf7e Test coverage for TopoViz::Node 2020-10-15 02:54:16 -07:00
Michael Lange
611b0b3e00 FlexMasonry integration tests 2020-10-15 02:54:15 -07:00
Michael Lange
639b3ffa70 More information about clients in the info panel 2020-10-15 02:54:15 -07:00
Michael Lange
90dbab198a Filter total alloc count by only scheduled allocs 2020-10-15 02:54:15 -07:00
Michael Lange
927343f36a Add icons to denote draining or ineligibility of clients 2020-10-15 02:54:15 -07:00
Michael Lange
de9124eea4 Label empty clients in the topo viz chart 2020-10-15 02:54:15 -07:00
Michael Lange
bb68a14cbc Improved curves for allocation associations 2020-10-15 02:54:15 -07:00
Michael Lange
a4c8ce4ee0 Fix a re-render bug with flexmasonry 2020-10-15 02:54:15 -07:00
Michael Lange
f5f964b7bf Make the topo viz denser when there are >50 nodes
By hiding node details and making nodes interactive instead, we can pack
more allocations on a screen.
2020-10-15 02:54:15 -07:00
Michael Lange
4e81ab8d3f Conditionally use the FlexMasonry layout for datacenters within TopoViz 2020-10-15 02:54:15 -07:00
Michael Lange
c5e84749ad Apply FlexMasonry to the TopoViz component 2020-10-15 02:54:15 -07:00
Michael Lange
c152ccb945 New FlexMasonry component implements a masonry layout using flexbox 2020-10-15 02:54:15 -07:00
Michael Lange
a9e29178bb Second attempt at a masonry layout 2020-10-15 02:54:15 -07:00
Michael Lange
be2d0fc201 A better loading screen for the topo viz while nodes load 2020-10-15 02:54:14 -07:00
Michael Lange
37cc9b7275 Connect the memory and cpu rectangles 2020-10-15 02:54:14 -07:00
Michael Lange
d13c065bbd Refactor topo viz to do as much computation upfront & use faster data structures
Now all data loading happens in the TopoViz component as well as
computation of resource proportions.

Allocation selection state is also managed centrally uses a dedicated
structure indexed by group key (job id and task group name). This way
allocations don't need to be scanned at the node level, which is O(n) at
the best (assuming no ember overhead on recomputes).
2020-10-15 02:54:14 -07:00
Michael Lange
9991dc63bb Make the alloc select render path more efficient by not needlessly recomputing data 2020-10-15 02:54:14 -07:00
Michael Lange
e9626ceb82 Add more variety to the node heights 2020-10-15 02:54:14 -07:00
Michael Lange
2704c3e4b8 CSS Grid based masonry layout
TBH, it's buggy and I don't like it.
2020-10-15 02:54:14 -07:00
Michael Lange
3cd464d03c Updated alloc and cluster details on topo page 2020-10-15 02:54:14 -07:00
Michael Lange
290f7d8fb4 Guard against undefined denominators 2020-10-15 02:54:14 -07:00
Michael Lange
f56f631676 Associate sibling allocations by drawing lines 2020-10-15 02:54:14 -07:00
Michael Lange
f5c3d0e0a7 Super rough allocation details, needs some style love 2020-10-15 02:54:14 -07:00
Michael Lange
c2b7f7c073 Add cluster details to the topology page 2020-10-15 02:54:13 -07:00
Michael Lange
0b3a78b9ef Touch up topo viz interactions 2020-10-15 02:54:13 -07:00
Michael Lange
36df145da5 Fleshing out the first prototype of the topology visualization 2020-10-15 02:54:13 -07:00
Michael Lange
b3ddd1f897 Start click interaction for topo viz allocs 2020-10-15 02:54:13 -07:00
Michael Lange
773404a47f Prototype of the topo viz
- Plot all datacenters
- For each datacenter, plot all nodes
- For each node, plot all allocations by memory and cpu
- For empty nodes, highlight the emptiness
- When hovering over allocations, give them visual focus
2020-10-15 02:54:13 -07:00
Michael Lange
a003a8a987 Quick window resize modifier 2020-10-15 02:54:13 -07:00
Michael Lange
6d9f59f87d Scaffold topo viz components 2020-10-15 02:54:13 -07:00
Michael Lange
1e9e2a1c8b Small cluster example scenario for the topo viz 2020-10-15 02:54:13 -07:00
Michael Lange
753bfbf1e7 Scaffold a new topology page 2020-10-15 02:54:12 -07:00
Buck Doyle
74c14dfe55 Change htmlSafe prototype calls to imports (#9075) 2020-10-13 11:50:28 -05:00
Michael Lange
ccf022ec8b Acceptance test coverage for the submit time sorting on the periodic and parameterized detail pages 2020-09-19 12:37:38 -07:00
Michael Lange
7477e972f8 Update job launches table to use the page size select pattern 2020-09-18 18:27:48 -07:00
Michael Lange
ec5b2c9f43 Sort periodic and parameterized job detail pages by most recently submitted 2020-09-18 18:03:23 -07:00
Michael Lange
bf1c879447 Add job submit time to the job children list 2020-09-18 17:58:15 -07:00
Buck Doyle
9b5c428a62 Add handling for allocation-less exec URL (#8856)
This closes #8769. This new-window-opening code is not possible
to properly exercise within Ember’s testing facilities 😞
2020-09-15 14:48:29 -05:00
Michael Lange
3147d5c649 Sort keys when converting objects to arrays for stable model fragments 2020-09-04 19:44:21 -07:00
Michael Lange
f8a505ea2f Temporarily remove poststop from the UI
Since poststart and poststop are shipping separately, we can't ship them
both in the UI at the same time.
2020-08-31 19:32:38 -07:00
Buck Doyle
766c2dce80 Merge branch 'master' into f-ui/poststart-poststop 2020-08-28 10:15:18 -05:00
Buck Doyle
0c9b2e417b Add exec heartbeat keepalive (#8759)
This closes #8727, thanks to @jfcantu for the suggestion.
The CLI implementation of exec already has a 10-second
heartbeat so this mirrors that:
https://github.com/hashicorp/nomad/blob/v0.12.3/api/allocations.go#L161-L173
2020-08-28 10:13:33 -05:00
Buck Doyle
0d885bec09 Remove prestart tasks table
My suggestion is that this table isn’t sufficiently useful to
keep around with the combinatoric explosion of other lifecycle
phases. The logic was that someone might wonder “why isn’t my
main task starting?” and this table would show that the prestart
tasks hadn’t yet completed. One might wonder the same about
any task that has prerequisites, so should a poststart task have
a table that shows main tasks? And so on.

Since the route hierarchy guarantees that one has already passed
through a template that shows the lifecycle chart before one
can reach the template where this table is displayed, I believe
this table is redundant. It also conveys information in a more
abstract way than the chart, which is dense and more easily
understood, to me.
2020-08-26 09:58:44 -05:00
Buck Doyle
14bfb9a53c Add poststart and poststop lifecycle phases 2020-08-26 09:55:42 -05:00
Buck Doyle
5eddb14a33 Add component accessibility auditing and fixes (#8679)
This continues #8455 by adding accessibility audits to component integration
tests and fixing associated errors. It adds audits to existing tests rather than
adding separate ones to facilitate auditing the various permutations a
component’s rendering can go through.

It also adds linting to ensure audits happen in component tests. This
necessitated consolidating test files that were scattered.
2020-08-25 10:56:02 -05:00
Michael Lange
3c8a7d3daf Always show the scaling events accordion 2020-08-24 10:34:34 -07:00
Buck Doyle
6f08becdae Add common serialiser abstractions (#8634)
This extracts some common API-idiosyncracy-handling patterns from model serialisers into properties that are processed by the application serialiser:

* arrayNullOverrides converts a null property value to an empty array
* mapToArray converts a map to an array of maps, using the original map keys as Name properties on the array maps
* separateNanos splits nanosecond-containing timestamps into millisecond timestamps and separate nanosecond properties
2020-08-20 12:14:49 -05:00