Commit graph

384 commits

Author SHA1 Message Date
Michael Lange 93195f8e12 Only count the scheduled allocs on the topo viz node stats bar 2021-01-25 11:29:01 -08:00
Michael Lange 9b488adbf2 Filter out nodes that don't have NodeResources from the topo viz 2021-01-05 17:11:17 -08:00
Michael Lange e221eefdd2 Quietly ignore orphaned allocs in the topo viz 2020-12-17 11:18:43 -08:00
Buck Doyle 2d344179d3
Migrate preview deployments from Netlify to Vercel (#9471)
This adds:

* a script for building and deploying the Ember UI and Storybook to
  Vercel
* configuration for that deployment
* a header link to the UI to link to Storybook when built with
  STORYBOOK_LINK=true

It also removes a file used to configure Netlify redirects.

The Netlify setup had two “sites”: nomad-storybook and nomad-ui. I
attempted to replicate that here but ran into some platform limitations
with Vercel: two “projects” cannot share the same root directory without
also sharing the same vercel.json that lets us specify configuration
such as the rewrite needed to handle deep linking into the Ember UI. I
tried having Storybook use /ui/storybook as the root directory (and
adding a symbolically-linked package.json to bypass Vercel’s refusal
to build without it) but that produced broken Storybook deployments.

This instead combines the two projects into one
(nomad-storybook-and-ui), defaults to forwarding / to /ui/, and
adds the header link to the UI to navigate to Storybook.

Rather than have a complex build script in the Vercel configuration UI,
this delegates to a script in the repository.
2020-12-07 08:33:49 -06:00
Michael Lange f543137ec9 Revert "Temporarily remove poststop from the UI"
This reverts commit f8a505ea2f9def2a7ce7a93e6d0529e1b5da4894.
2020-11-12 09:16:52 -08:00
Buck Doyle 20ec481090
Add DAS subroute and copy button (#9201)
This continues iteration on the DAS UI by adding the ability to directly
navigate to a recommendation summary by (namespaced) slug and a copy
button for the direct navigation link.

It includes a change to CopyButton allowing it to take a block that’s
rendered within the button.

It also changes some instances of multi-relationship traversal to use
in-summary attributes, such as summary.jobNamespace instead of
summary.job.namespace.name.
2020-11-04 12:22:24 -06:00
Buck Doyle 6450abfe76
Change node id search to prefix-only (#9244)
This test has been periodically failing, like here:
https://app.circleci.com/pipelines/github/hashicorp/nomad/12879/workflows/40c0445c-b244-4a04-a5a3-d9685b656c94/jobs/114751/tests

The failure was because sometimes the first node contains the
beginning of the ”otherNode” id somewhere within its id. It seems
less useful to match within the node, so this changes id search to
only match at the beginning of the id.
2020-11-04 12:12:31 -06:00
Michael Lange dc6ec319c2
Merge pull request #9074 from Liraim/fix_download
ui: "View Raw File" download using JS instead simple link
2020-11-04 10:09:35 -08:00
Michael Lange 5f2ebf7a00 Replace visualViewport with the more compatible scrollX and scrollY 2020-11-02 13:25:50 -08:00
Michael Lange b5044250e6 Add tooltips to the topo viz 2020-11-02 13:25:33 -08:00
Vyacheslav Morov c6fc37cf29 Change to button.
Rewrite tests to check that proper urls was called.
2020-10-31 23:11:14 +03:00
Buck Doyle 39af5c709b
Fix Firefox positioning of chart resource label (#9209)
alignment-baseline appears to be ignored in Firefox, but dominant-baseline
works. This also moves the anchor into CSS.
2020-10-29 08:13:41 -05:00
Buck Doyle 31b4ed7a6d
Add DAS UI code from enterprise (#9192)
This is a few combined iterations on the DAS feature.
2020-10-29 07:46:42 -05:00
Michael Lange 2a1c820c1c Make alloc association lines conditional on alloc count relative to node count 2020-10-23 15:16:31 -07:00
Michael Lange e0157759a8 Redo column widths on the topology page.
Now the info panel has a fixed width and the TopoViz will display as a
single column if the TopoViz column is too narrow for two columns.
2020-10-23 14:17:03 -07:00
Michael Lange 7f2fba9b23 Reset inline styles on flex-masonry elements when columns is set to 1 2020-10-23 14:17:03 -07:00
Buck Doyle 70a0253f0d
Update loading spinner to be logo-based (#9106)
Thanks to @mikehobi, whose work here this is adapted from:
https://icons8.com/cssload/en/3d-loaders
2020-10-15 16:05:58 -05:00
Michael Lange 5c34e94529 Typo 2020-10-15 11:45:59 -07:00
Michael Lange a2b57c15eb Unit and integration tests for TopoViz component 2020-10-15 02:54:16 -07:00
Michael Lange c8ea019629 Test coverage for TopoViz::Datacenter 2020-10-15 02:54:16 -07:00
Michael Lange 8b96667a61 Remove temp reloading of nodes in the TopoViz component 2020-10-15 02:54:16 -07:00
Michael Lange 3c39895168 Update topo viz code to use new alloc/node resources pattern 2020-10-15 02:54:16 -07:00
Michael Lange b2b7d5e19e Test coverage for TopoViz::Node 2020-10-15 02:54:16 -07:00
Michael Lange f3aed88a10 Improved curves for allocation associations 2020-10-15 02:54:15 -07:00
Michael Lange ef12488d1c Fix a re-render bug with flexmasonry 2020-10-15 02:54:15 -07:00
Michael Lange 066502d408 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 1602d72789 Apply FlexMasonry to the TopoViz component 2020-10-15 02:54:15 -07:00
Michael Lange f27895c4c8 New FlexMasonry component implements a masonry layout using flexbox 2020-10-15 02:54:15 -07:00
Michael Lange d9083fdde6 Second attempt at a masonry layout 2020-10-15 02:54:15 -07:00
Michael Lange 6d99f96425 Connect the memory and cpu rectangles 2020-10-15 02:54:14 -07:00
Michael Lange 0ab6b31cab 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 7d75421a75 Make the alloc select render path more efficient by not needlessly recomputing data 2020-10-15 02:54:14 -07:00
Michael Lange 872ca3dd5c Add more variety to the node heights 2020-10-15 02:54:14 -07:00
Michael Lange 4c155b5da4 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 24d0481889 Guard against undefined denominators 2020-10-15 02:54:14 -07:00
Michael Lange 5bc4d1f1d5 Associate sibling allocations by drawing lines 2020-10-15 02:54:14 -07:00
Michael Lange cab4e618fc Add cluster details to the topology page 2020-10-15 02:54:13 -07:00
Michael Lange 831d27efd6 Fleshing out the first prototype of the topology visualization 2020-10-15 02:54:13 -07:00
Michael Lange 000c00e920 Start click interaction for topo viz allocs 2020-10-15 02:54:13 -07:00
Michael Lange b347141e0c 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 2a067d646d Scaffold topo viz components 2020-10-15 02:54:13 -07:00
Buck Doyle 517bc3c17b
Change htmlSafe prototype calls to imports (#9075) 2020-10-13 11:50:28 -05:00
Vyacheslav Morov 911b3b7f57 "View Raw File" download using JS instead simple link
Use fetch API to download file so we can:
 - send Token in headers
 - assign filename to download
2020-10-13 02:19:15 +03:00
Michael Lange 1a42742d40 Update job launches table to use the page size select pattern 2020-09-18 18:27:48 -07:00
Michael Lange 9ecb25632d Add job submit time to the job children list 2020-09-18 17:58:15 -07:00
Michael Lange fc31f80880 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 de3504a738 Add poststart and poststop lifecycle phases 2020-08-26 09:55:42 -05:00
Michael Lange 3227b3c342
Merge pull request #8593 from hashicorp/f-ui/scaling-events-chart
UI: Task group scaling timeline
2020-08-07 10:35:00 -07:00
Buck Doyle 9074d33f28
UI: Add truncation of rendered search results (#8571)
This closes #8549. Thanks to @optiz0r for the bug report. Having
the global search attempt to render every returned result is
obviously a mistake!
2020-08-05 15:58:44 -05:00
Michael Lange 3b59b52bca Compare scale events by their UID instead of reference equality 2020-08-05 12:02:23 -07:00
Michael Lange 033618c46e Safestr the annotation style property 2020-08-05 12:02:22 -07:00
Michael Lange 4c4e2e505f Unit test coverage for the ScaleEventsChart data domain logic 2020-08-05 12:02:22 -07:00
Michael Lange 792fa64101 Integration tests for the ScaleEventsChart component 2020-08-05 12:02:22 -07:00
Michael Lange 09f6bca470 New ScaleEventsChart component
Displays all scale events in the form of an annotated line chart. When
annotations are clicked, the timestamp, message, and meta propeties for
the event are displayed below the chart.
2020-08-05 12:02:22 -07:00
Michael Lange 21f3b7dfcc Add activeAnnotation property to line-chart 2020-08-05 12:02:22 -07:00
Michael Lange 2903d1f504 Stagger line chart annotations when they are too close 2020-08-05 12:02:22 -07:00
Michael Lange b332e186b2 Add curve options to line chart 2020-08-05 12:02:22 -07:00
Michael Lange a891e907f5 Test coverage for line chart annotations 2020-08-05 12:02:22 -07:00
Michael Lange 8445e22faf Add annotations to the line chart component 2020-08-05 12:02:22 -07:00
Michael Lange 299f2b6453 Make the default time series date format for line chart more useful 2020-08-05 12:02:21 -07:00
Michael Lange 868509de5f
Merge pull request #8563 from hashicorp/b-ui/missing-job-distribution-chart-texture
UI: Restore striped texture used in the job distribution bar
2020-07-30 08:20:48 -07:00
Buck Doyle 7596cfd5e7
Change job search navigation to use id (#8560)
This fixes #8548. It was a significant oversight to use the
name instead of the id!
2020-07-30 09:10:08 -05:00
Michael Lange 5dfa8f6350 Remove now superfluous svg-patterns.js component file 2020-07-29 22:55:16 -07:00
Michael Lange 35054459c2 New fluid height modifier for the json viewer 2020-07-29 19:07:24 -07:00
Buck Doyle 7bed453de3
Add acceptance test accessibility auditing and fixes (#8455)
This introduces ember-a11y-testing to acceptance tests via a helper
wrapper that allows us to globally ignore rules that we can address
separately. It also adds fixes for the aXe rules that were failing.
2020-07-28 12:59:14 -05:00
Michael Lange e7d414d9c2 Include the region query param on the View Raw File link in the task fs explorer 2020-07-22 13:46:38 -07:00
Buck Doyle 8a4dc0726d
Fix typo in exec button URL-generation (#8460)
This closes #8422, another bug facilitated by the difficulty
of automated testing when opening another window. Thanks to
@notnoop for narrowing this down.
2020-07-20 16:06:55 -05:00
Buck Doyle 40332963ef
Update to Ember 3.16/Data 3.12 (#8319)
This updates to Ember 3.16 but leaves Ember Data at 3.12 so we don’t need
to use the model fragments beta. It can be reviewed on a commit-by-commit
basis: blueprint updates, fixes for test failures, and the removal of
now-deprecated partials.

It’s not a true update to Octane as that would involve turning on template-only
components by default, which breaks various things. We can accomplish that
separately and then add the edition setting to package.json.
2020-07-09 11:37:00 -05:00
Michael Lange 970ccedd1f
Merge pull request #8314 from hashicorp/f-ui/scaling-ux
UI: Scaling UI UX Improvements
2020-07-01 09:21:08 -07:00
Michael Lange f786ee5eae Persist the log stream/mode setting to localStorage 2020-06-30 17:09:52 -07:00
Buck Doyle 3afd14e30d
Change back to released Ember Power Select (#8317)
Thanks to @cibernox’s isActive clarification in
cibernox/ember-power-select#1374, this replaces the use
of a hacked Power Select API with a deliberate blurring
of the trigger element, which is equivalent to setting
the element to inactive.
2020-06-30 15:23:02 -05:00
Michael Lange 7ad214f34a StepperInput UX improvements
- Click label to focus input
- Focusing input selects value
- Entering an invalid value reverts selection
- Entering a fractional number floors the value
2020-06-30 11:54:11 -07:00
Michael Lange 70cc9cb5c8 Add tooltips to scaling controls 2020-06-30 11:54:11 -07:00
Buck Doyle 196f27aec4
Add multiple substring highlights for search (#8287)
The fuzzy search highlighting was ignoring everything after the first
substring that was matched, this now highlights all substrings.
2020-06-25 15:26:52 -05:00
Michael Lange ff015d2997
Merge pull request #8281 from hashicorp/b-ui/fix-log-streaming
UI: Revert AbortController polyfill to use native AbortController on logs page
2020-06-25 09:26:49 -07:00
Buck Doyle bf7ed82def
Improve global search UX (#8249)
This updates the look of the search control, adds a hint about the slash
shortcut, adds highlighting of fuzzy search results, and addresses a few
edge case UX failures. It moves to using a fork of Ember Power Select
to handle an edge case where pressing escape would put the control
in an undesirable active-but-not-open state.
2020-06-25 08:51:52 -05:00
Michael Lange f6fa2c6088 Revert AbortController polyfill to use native AbortController 2020-06-24 20:46:30 -07:00
Buck Doyle b891dc88ff
Remove non-classic use of this.set (#8242)
This will fix a linting error introduced in 068ad06.
2020-06-22 13:23:28 -05:00
Buck Doyle ee7141a59a
Add phase 1 of global search (#8175)
This introduces a DataCaches service so recently-updated collections don’t need
to be requeried within a minute, or based on the current route. It only searches
jobs and nodes. There are known bugs that will be addressed in upcoming PRs.
2020-06-19 13:05:28 -05:00
Michael Lange 6259e3ae5d Integrate the stepper input with the task group page 2020-06-18 22:32:56 -07:00
Michael Lange ff3653ddf6 Style the StepperInput component 2020-06-18 22:08:28 -07:00
Michael Lange ba91a4ffe5 Barebones StepperInput component 2020-06-18 22:08:28 -07:00
Michael Lange 2e04719fbc Slow the debounce time. 2020-06-18 22:08:28 -07:00
Michael Lange c664f57361 Disable scale buttons when a deployment is running or ACL forbids it 2020-06-18 22:08:28 -07:00
Michael Lange 136b4ec354 Wire up the +/- buttons in task group rows to the job scale action 2020-06-18 22:08:28 -07:00
Michael Lange da76edcabd Code review feedback 2020-06-17 14:56:16 -07:00
Michael Lange 3c03ee5621 Guard the request animation frame with the existing requestFrame flag 2020-06-17 14:50:55 -07:00
Michael Lange 562a957666 Select all shortcut support for the streaming file component 2020-06-16 12:51:52 -07:00
Michael Lange 56e66e76e6 Redesign the server detail page to be inline with everything else 2020-06-16 10:23:36 -07:00
Michael Lange 129ccec82c New component version of the forbidden-message partial 2020-06-16 10:23:36 -07:00
Michael Lange c515a59b44 Preserve the log when switching log levels on monitor 2020-06-16 10:23:36 -07:00
Michael Lange cdc7db07c6 Refactor AgentMonitor levels handling to be simpler 2020-06-16 10:23:36 -07:00
Michael Lange 38af76e277 Reimplement synchronizeScrollPosition in a way that actually works 2020-06-16 10:23:36 -07:00
Michael Lange ca99ec774b Implement the log streaming portion of the AgentMonitor component 2020-06-16 10:23:36 -07:00
Michael Lange e0fbd88d26 Monitor component and query param interaction 2020-06-16 10:23:35 -07:00
Michael Lange 10e1371d34 Create new monitor route for clients 2020-06-16 10:23:35 -07:00
Michael Lange de82051d14 Data cannot be a field in the base class and a CP in the child classes 2020-06-15 11:37:40 -05:00
Buck Doyle c1cc51a057 Remove superfluous uses of Object.freeze
This is no longer needed!
https://guides.emberjs.com/release/upgrading/current-edition/native-classes/#toc_properties-and-fields
2020-06-15 10:15:11 -05:00
Buck Doyle 3de475f8e4 Convert field to overridable computed property
StatsTimeSeries defines description as a computed property,
which isn’t possible when this is a class field.
2020-06-15 10:14:36 -05:00
Buck Doyle a950ae661d Remove problem field
It appears this gets turned into a getter-only computed property
somehow, which causes problems when subclasses override it.
2020-06-15 10:14:35 -05:00