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
f1fec7430f
Test coverage for the task group row scale actions
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
3b7b5f9649
Add canScale ability for jobs
2020-06-18 22:08:28 -07:00
Michael Lange
689dd92aa8
Mirage updates for task group scaling and scaling post endpoint
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
aebc896ff6
New scale action for jobs (and a convenience task group method)
2020-06-18 22:08:27 -07:00
Michael Lange
57f4e9a62e
Create new AbortController with each tick of the ec task loops
...
This was a disturbing discovery. Requests in watch loops would recycle
AbortControllers meaning once any request was aborted, all requests
forever after were skipped. I noticed it with deployments and job
summary on the job detail page.
I suspect this regression occurred when jQuery was removed. This needs
test coverage still to make sure it doesn't happen again.
2020-06-18 22:08:27 -07:00
Michael Lange
64cfa62c71
Make sure buttons in a button bar have a very visible focus state
2020-06-18 22:08:27 -07:00
Michael Lange
c583c00088
Add the elements of the manual scaling actions to the task-group-row component
2020-06-18 22:08:27 -07:00
Michael Lange
1182e76383
Add the min/max and policy y/n of a task group to the details ribbon
2020-06-18 22:08:27 -07:00
Michael Lange
76c6a9d89f
Prevent inline definition key/value pairs from breaking the key and value onto separate lines
2020-06-18 22:08:27 -07:00
Michael Lange
2739da75d6
Additional button-bar treatments for use in a table row
2020-06-18 22:08:27 -07:00
Michael Lange
dfcfdf0293
Extend button-bar support to buttons
2020-06-18 22:08:27 -07:00
Michael Lange
b4b00282dd
When an icon is intended as text, it shouldn't have pointer events
...
This prevents the svg from being a target in click events.
2020-06-18 22:08:27 -07:00
Michael Lange
f9819105c3
New xsmall button size
2020-06-18 22:08:27 -07:00
Michael Lange
c5bf7fc7a7
LazyClick should also get interrupted by buttons
2020-06-18 22:08:26 -07:00
Michael Lange
d8c2853d65
Model the scaling properties of a task group as a fragment
2020-06-18 22:08:26 -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
c62db754a3
Server monitor page
2020-06-16 10:23:36 -07:00
Michael Lange
f745ce4269
Test coverage for new features of the server detail page
2020-06-16 10:23:36 -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
3381c835b1
Add nested monitor route to servers/server
2020-06-16 10:23:36 -07:00
Michael Lange
e6928cb01d
Refactor the servers/server pages to match the subnav style of nested pages
2020-06-16 10:23:36 -07:00
Michael Lange
bb499bba72
Show a helpful forbidden message when monitor access is not authorized
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
58df659fdb
Ability for agent:read
2020-06-16 10:23:36 -07:00
Michael Lange
c080def72e
Test coverage for the client monitor page
2020-06-16 10:23:36 -07:00
Michael Lange
cfee0f74a4
Test coverage for the AgentMonitor component
2020-06-16 10:23:36 -07:00
Michael Lange
1abbce97ac
Temporary helpers for ember-power-select
...
These are based on the source code for selectChoose. I would have liked
to have used selectChoose, but the implementation has two await
settled()s in it which prevented me from writing the tests I needed to
write.
These new extension helpers separate selectChoose into two pieces so
logic can be placed between the two async actions.
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
6cb83c6297
Inline-block the buttons to remove weird text-flow spacing
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
Buck Doyle
97c5a85ee6
Remove stray commented-out line
2020-06-16 08:36:39 -05: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
a4be011141
Rename clashing property
2020-06-15 10:14:36 -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
782bc3b7c0
Rename clashing action
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
Buck Doyle
cd11cd290c
Add manually-converted classes
...
I don’t know why the codemod ignored these files 🧐
2020-06-15 10:14:26 -05:00
Buck Doyle
577e85b007
Fix query parameters structures
...
I’d think the codemod would handle this if it’s a requirement
but apparently not, is it a bug?
2020-06-15 09:52:31 -05:00
Michael Lange
c4e29f8afa
Change URL-generation for job-updating
...
The id-processing in the WatchableNamespaceIds adapter was
happening twice; this removes urlForUpdate record so it
only happens once. @DingoEatingFuzz figured it out! 🥳
2020-06-15 09:51:15 -05:00
Michael Lange
16ed5451d2
Change with-namespace-ids mixin to a base class
...
This is a merge of 5d9fce5.
2020-06-15 09:47:15 -05:00
Buck Doyle
c56726abd1
Remove unnecessary fetch-setting
...
Originally this was failing because it only had a getter.
I tried replacing it with a computed property and that
succeeded, but since we have already stopped using
jQuery, we might as well remove it.
2020-06-15 09:41:57 -05:00
Buck Doyle
6efc64818b
Add fixes for ESLint getter-return
...
…I GUESS
2020-06-10 16:18:56 -05:00
Buck Doyle
89136cbf6a
Add massaged results of class codemod
...
Manual interventions:
• decorators on the same line for service and controller
injections and most computed property macros
• preserving import order when possible, both per-line
and intra-line
• moving new imports to the bottom
• removal of classic decorator for trivial cases
• conversion of init to constructor when appropriate
2020-06-10 16:18:42 -05:00
Buck Doyle
1cca7abcab
Add Ember ESLint plugin ( #8134 )
...
This is extracted from #8094 , where I have run into some snags. Since
these ESLint fixes aren’t actually connected to the Ember 3.16 update
but involve changes to many files, we might as well address them
separately. Where possible I fixed the problems but in cases where
a fix seemed too involved, I added per-line or -file exceptions.
2020-06-09 16:03:28 -05:00
Michael Lange
d53b8e48e1
Remove vendored xterm.js files
2020-06-03 09:25:19 -07:00
Buck Doyle
2998deac50
Convert to angle bracket invocation ( #8075 )
...
This is mostly a direct application of the ember-angle-brackets-codemod.
I manually restored newlines in multi-line component invocations, usually
preserving file line length except for now-non-positional link-to @route.
I needed to rename task to taskState in some cases to avoid Ember
Concurrency naming conflicts.
2020-06-01 14:03:56 -05:00
Buck Doyle
9c0f85d7b6
UI: add filesystem browsing for allocations ( #7951 )
...
This partially addresses #7799 .
Task state filesystems are contained within a subdirectory of their
parent allocation, so almost everything that existed for browsing task
state filesystems was applicable to browsing allocations, just without
the task name prepended to the path. I aimed to push this differential
handling into as few contained places as possible.
The tests also have significant overlap, so this includes an extracted
behavior to run the same tests for allocations and task states.
2020-06-01 08:15:59 -05:00
Michael Lange
30ad9b6c63
Disable and remove the jquery integration
2020-05-27 09:16:36 -07:00
Michael Lange
c395b83f5a
Remove test code
2020-05-26 14:54:59 -07:00
Michael Lange
e436d01b01
Remove jquery from the window resize helper
2020-05-26 14:35:57 -07:00
Michael Lange
083e82e6b7
Remove jquery from the lazy-click helper
2020-05-26 14:31:15 -07:00
Michael Lange
d84df5dbe6
Remove jquery from gauge chart
2020-05-26 14:13:29 -07:00
Michael Lange
849c22845f
Remove jquery from the distribution bar chart
2020-05-26 14:11:08 -07:00
Michael Lange
71308334d5
Remove jquery from line-chart
2020-05-26 14:05:45 -07:00
Michael Lange
3f40b3e3cd
Merge pull request #8035 from hashicorp/f-ui/ember-fetch
...
UI: Replace jQuery with fetch within Ember Data
2020-05-26 12:32:03 -07:00
Buck Doyle
222b36ced3
UI: use lazy-loading for Xterm.js ( #7964 )
...
This updates Xterm.js to 4.6.0, which includes support for reverse-wraparound
mode, so we no longer need to use a vendored dependency, which closes #7461 .
The interface for accessing the buffer that’s used for test assertions changed.
With the dependency now accessed conventionally, we can have it load only when
it’s needed by an exec popup window, which closes #7516 . That saves us
≈60kb compressed in the dependency bundle!
2020-05-26 09:56:25 -05:00
Michael Lange
262c558e1c
Replace nulls with empty strings to have an empty response body
2020-05-21 10:35:41 -07:00
Michael Lange
6274282948
Fix latent race condition in client detail test
...
Adding this settled makes this test pass now that Ember Data is using
fetch instead of jquery. The test was presumably always incorrect but
never flaked.
2020-05-21 10:35:40 -07:00
Michael Lange
1f82e19e2d
Type-check the ForbiddenError rather than ducktype it
...
Going off of the error message being "Forbidden" was brittle to begin
with and no longer works with Fetch due to the error message coming from
jquery underpinnings that were unobserved by Ember Data's attempted
recreation.
2020-05-21 10:35:40 -07:00
Michael Lange
388bb138c2
Always lower case headers now
2020-05-21 10:35:40 -07:00
Michael Lange
e1f3086ba3
Don't double query params for findQuery
2020-05-21 10:35:40 -07:00
Michael Lange
07a604033f
Adjust header case, which changed with the migration to fetch
2020-05-21 10:35:40 -07:00
Michael Lange
de73b9539d
Replace XHRToken with AbortController
2020-05-21 10:35:39 -07:00
Michael Lange
20f209c4fb
Use the AbortController provided by the fetch polyfill
2020-05-21 10:35:39 -07:00
Michael Lange
899d8266f4
Instrument jquery ajax method to see if it is getting called anywhere
2020-05-21 10:35:39 -07:00
Michael Lange
d5e8c1ca8c
Force the use of fetch despite jquery still being integrated
2020-05-21 10:35:39 -07:00
Michael Lange
e263d2821e
Prevent sticky query params for plugin alloc filtering
2020-05-20 14:34:16 -07:00
Michael Lange
4588f2b5a3
Show the number of allocations in the the goto links on plugin detail
2020-05-20 14:22:47 -07:00
Michael Lange
360a0dfc08
Test coverage for the plugin allocations page
2020-05-19 19:22:12 -07:00
Michael Lange
e57d33a6b1
Test coverage for the limited alloc tables and goto links
2020-05-19 18:01:42 -07:00
Michael Lange
f683529b29
Limit the length of the alloc tables on the plugin overview page
2020-05-19 17:30:00 -07:00
Michael Lange
993cbe6bdb
Add a title to the plugin/allocations page
...
Typically these filterable list views don't have titles beyond the
breadcrumbs, but since this page has no search bar, the title really
helps balance it out.
2020-05-19 17:29:05 -07:00
Michael Lange
98933e12a0
Expose existing qp serialization util as a helper
2020-05-19 17:28:23 -07:00
Michael Lange
e611b6fcb9
Add filtering to the plugin allocations page
2020-05-18 23:55:52 -07:00
Michael Lange
02ca35e718
Scaffold the plugin allocations page
2020-05-18 23:36:12 -07:00
Michael Lange
3c6983370c
Add a subnav to the plugin page
2020-05-18 23:24:02 -07:00
Michael Lange
05da9a51b7
Fix scrunched availability chart bug on double chart layout
2020-05-18 22:48:55 -07:00
Michael Lange
c68b737fb5
Add plugin/allocations route
2020-05-18 22:48:23 -07:00
Michael Lange
22cc9bec74
Work around a mirage bug
2020-05-18 17:23:55 -07:00
Michael Lange
49724673d4
Test coverage for node only view of the plugin detail page
2020-05-18 17:23:54 -07:00
Michael Lange
eabac917f1
Test coverage for the node-only change to the list view
2020-05-18 15:30:00 -07:00
Michael Lange
af5ac78eba
Add availability gauges to the plugin page object
2020-05-18 15:30:00 -07:00
Michael Lange
19916dc028
Handle node-only views
2020-05-18 15:30:00 -07:00
Buck Doyle
86cf076a3c
Remove Ember server from Storybook startup ( #7980 )
...
The presence of Storybook’s preview-head.html file in the repository
is a constant annoyance: it’s only needed for Storybook and it changes
all the time, producing a lot of Git noise. By making it a separate
step to have the Ember CLI server running before starting Storybook,
we no longer need to have preview-head in the repository. It needed to
be present because there was a race condition where it was sometimes
not generated in time for the Storybook parallel startup.
2020-05-15 13:53:31 -05:00
Michael Lange
fb48f3de39
Merge pull request #7971 from hashicorp/b-ui/plugin-extend-watchable
...
UI: Make the Plugin adapter extend Watchable
2020-05-15 09:15:59 -07:00
Michael Lange
b8cbc34675
Make the Plugin adapter extend Watchable
2020-05-14 14:37:07 -07:00
Michael Lange
9de6165510
Protect against making watch requests using adapters that don't extend Watchable
2020-05-14 14:36:38 -07:00
Nomad Release bot
189a378549
Generate files for 0.11.2 release
2020-05-14 20:49:42 +00:00
Buck Doyle
588164ef44
Change exec URL-generation to use Ember get ( #7963 )
...
This fixes a bug in #7815 where you can’t open an exec window from
the allocation overview because accessing `allocation.job.plainId`
fails across the proxied relationship.
2020-05-14 14:09:09 -05:00
Michael Lange
dc36b40201
Merge pull request #7942 from hashicorp/b-ui/csi-alloc-relationships
...
UI: CSI Bug, Imperatively load controller/node plugin allocations
2020-05-13 10:20:09 -07:00
Michael Lange
0d9b9f5976
Test coverage for the gauge chart
2020-05-13 08:36:05 -07:00
Michael Lange
070f1003e2
Adjust gauge chart stories
2020-05-13 08:36:05 -07:00
Michael Lange
72ca69811c
Add gauge charts to the plugin detail page to measure availability
2020-05-13 08:36:05 -07:00
Michael Lange
fd27e83ba5
Bottom aligned columns variant
2020-05-13 08:36:05 -07:00
Michael Lange
ef4e7ad401
Add gauge chart stories
2020-05-13 08:36:05 -07:00
Michael Lange
42e107851c
Style the gauge chart component
2020-05-13 08:36:05 -07:00
Michael Lange
60d9dd47f3
Treat null and undefined equally
2020-05-13 08:36:04 -07:00
Michael Lange
61a693c656
Refactor metrics styles to allow for standalone metrics
2020-05-13 08:36:04 -07:00
Michael Lange
3d7e3e6b9c
Gauge chart component
2020-05-13 08:36:04 -07:00
Michael Lange
89afc9ccae
Test coverage for the plugin-allocation-row
2020-05-12 21:30:33 -07:00
Michael Lange
ea7b8b1a11
Don't double load freshly loaded allocations
2020-05-12 21:30:33 -07:00
Michael Lange
de74239430
Properly manage the lifecycle of allocations for storage nodes and controllers
2020-05-12 21:30:33 -07:00
Michael Lange
c84070fc42
Key allocation rows to prevent unnecessary re-renders
2020-05-12 21:30:32 -07:00
Buck Doyle
c46d5517bb
Add ACL-checking to turn off exec button ( #7919 )
...
This closes #7453 . It adds an abstraction to handle the common
needs of ability-determination.
2020-05-11 14:43:17 -05:00
Buck Doyle
5956e2e322
Add assertions for title-area buttons ( #7836 )
...
This closes #7452 .
2020-05-11 11:29:30 -05:00
Mahmood Ali
faecf3a760
Add tests for running allocation client count ( #7906 )
...
* Add tests for running allocation client count
* remove redundant assertions
2020-05-11 12:28:31 -04:00
Michael Lange
5e6a89836b
The active namespace is now shared between jobs and storage
2020-05-08 17:35:27 -07:00
Michael Lange
b3fe5b4f75
Changing namespaces now situationally redirects to jobs or volumes
...
Changing namespaces can be done anywhere in the app even though many
Nomad resources aren't namespace-sensitive (e.g., clients, plugins).
A user changing namespaces is an intent to reset context, "now I want
to begin a task that relates to Namespace X". Where that task begins
used to always be the Jobs list, since it was the only namespace
sensitive resource. Now with CSI Volumes, "square 1" is Volumes if the
namespace is changed from a storage page.
2020-05-08 17:35:27 -07:00
Michael Lange
ee2d1eeb39
Introduce shallow to plugin factories to speed up tests
2020-05-07 17:29:42 -07:00
Michael Lange
7610493445
Searchable plugins
2020-05-07 17:25:24 -07:00
Michael Lange
be9d9176b1
Searchable volumes
2020-05-07 16:57:51 -07:00
Michael Lange
11a42b6075
Acceptance test for PluginDetail
2020-05-06 17:36:45 -07:00
Michael Lange
f3bae3b535
Don't wrap between icons and health text
2020-05-06 17:22:42 -07:00
Michael Lange
38c03f180b
Use lazyClick to avoid multiple transitionToRoutes being in flight as once
2020-05-06 17:22:42 -07:00
Michael Lange
2369254a3e
Refactor AllocationRow qualifyAllocation
...
There was a missing edge case where a job is pending. I took the moment
to also refactor the code to use async/await which cleaned up the
promise chaining.
2020-05-06 17:22:42 -07:00
Michael Lange
f9882d42e6
Plugin detail page object
2020-05-06 17:21:49 -07:00
Michael Lange
517db723cd
Sort allocations on the plugin detail page
2020-05-06 17:21:49 -07:00
Michael Lange
41c4746aaf
Test coverage for the plugins list page
2020-05-06 17:21:48 -07:00
Michael Lange
e98095bcbd
Page object for Plugins List
2020-05-06 17:21:48 -07:00
Michael Lange
59bb9a516e
Correct the table headers for dates on the volume page
2020-05-06 17:21:48 -07:00
Michael Lange
665ba3b2f7
Add a nodes table as well
2020-05-06 17:21:48 -07:00
Michael Lange
105e7203cf
Set color in addition to fill for the icon class
...
Structure icons have fill set to currentColor hardcored in their markup.
This mean setting fill to a color in CSS does nothing, but setting color
now does.
2020-05-06 17:21:47 -07:00
Michael Lange
4ec53234d1
Add icons to the plugin alloc row component
2020-05-06 17:21:47 -07:00
Michael Lange
874556704d
Use the correct plugin property for the breadcrumb
2020-05-06 17:21:47 -07:00
Michael Lange
778e7fdb07
New PluginAllocationRow derivative of AllocationRow
2020-05-06 17:21:46 -07:00
Michael Lange
7c56fcaecb
Emulate belongsTo relationship in storage fragments
2020-05-06 17:21:46 -07:00
Michael Lange
6f84c685b6
Add short option to date formatters
2020-05-06 17:21:46 -07:00
Michael Lange
210f6cdb00
Update storage controller mirage code to accommodate EDMF's lack of relationships
2020-05-06 17:21:46 -07:00
Michael Lange
ca6849ebaa
Refactor AllocationRow to use AllocationStat
2020-05-06 17:21:45 -07:00
Michael Lange
f55133e76e
Separate AllocationStat component for containing the multiple states a stat tracker can be in
2020-05-06 17:21:45 -07:00
Michael Lange
d94177085e
Setup the plugin detail page
2020-05-06 17:21:45 -07:00
Michael Lange
ffcaef6b22
Model out the rest of the CSI Plugin properties
2020-05-06 17:21:44 -07:00
Michael Lange
b3f140fee6
Plugins table on the plugins list page
2020-05-06 17:21:44 -07:00
Michael Lange
bf35d92224
Clean up the csi volume page
2020-05-06 17:21:44 -07:00
Michael Lange
7d524ac341
Set up routes, controllers, and template basics for the plugins page
2020-05-06 17:21:43 -07:00
Michael Lange
dba9a25a13
Add a subnav to the volumes page
2020-05-06 17:21:43 -07:00
Michael Lange
1b47885bdb
Update plugin model and serializer to match final API
2020-05-06 17:21:42 -07:00
Michael Lange
343d4e0b81
Add constraints table to the volume detail page
2020-05-06 17:21:42 -07:00
Buck Doyle
95c938b75b
Migrate page objects away from jQuery ( #7843 )
...
This is part of #7834’s jQuery removal goal. It addresses a couple of jQuery-related deprecation warnings and also uses “native events mode” for ember-cli-page-object, which is needed so it doesn’t have to use jQuery via the Ember global.
2020-05-06 15:14:12 -05:00
Buck Doyle
0b2fc7532d
UI: Remove Ember Freestyle ( #7839 )
...
This completes the migration to Storybook by replacing the colour palette and typeface components that I left out.
2020-05-06 15:11:15 -05:00
Michael Lange
034eeb1ddb
Merge pull request #7855 from hashicorp/b-ui/alloc-wrong-reserved-resources
...
UI: Make allocation reference own task group instead of job's task group when job versions don't match
2020-05-06 10:08:37 -07:00
Mahmood Ali
24e0c7f081
ui: only count running allocations in client view
...
In the client view list, only show running allocations count for each
client, rather than include already completed tasks.
This is done for two reasons:
First, consitency with the CLI: `nomad node status --allocs` only
shows running allocs.
Second, and more importantly, the count is useful to estimate how loaded
the clients are. Allocs that have completed (but not GCed yet) have
very little value to operators.
2020-05-05 21:31:58 -04:00
Michael Lange
260da00852
Add embedded task group to allocation to reference when allocation is historical
2020-05-01 14:30:02 -07:00
Michael Lange
91b97e0170
Stabilize job and allocation job versions in fixtures
2020-05-01 14:29:24 -07:00
Michael Lange
9a857a7042
Comment why the allocation has to be reloaded
2020-05-01 14:27:53 -07:00
Jasmine Dahilig
a9004faa11
UI: Add representations for task lifecycles ( #7659 )
...
This adds details about task lifecycles to allocations, task groups,
and tasks. It includes a live-updating timeline-like chart on allocations.
2020-04-30 08:15:19 -05:00
Michael Lange
21ef3633be
Make the no connection error on the logs page dismissable
2020-04-29 17:36:17 -07:00
Michael Lange
e74cd16252
Fix race condition where stdout and stderr requests can cause a no connection error
...
This would happen because a no connection error happens after the second request fails, but
that's because it's assumed the second request is to a server node. However, if a user clicks
stderr fast enough, the first and second requests are both to the client node. This changes
the logic to check if the request is to the server before deeming log streaming a total failure.
2020-04-29 17:36:17 -07:00
Michael Lange
aafbeaba75
Clicking stdout/stderr when already on that tab is now a noop
2020-04-29 17:36:16 -07:00
Michael Lange
7452a9a57d
Abort log fetch request when failing over from client to server
...
Typically a failover means that the client can't be reached. However, if
the client does eventually return after the timeout period, the log will
stream indefinitely. This fixes that using an API that wasn't broadly
available at the time this was first written.
2020-04-29 17:34:49 -07:00
Michael Lange
9ba563c48e
Always pass credential in fetch requests, but also treat options reasonably
...
Now options can be provided without also having to remember to pass
credentials. This is convenient for abort controller signals.
2020-04-29 17:34:49 -07:00
Buck Doyle
d4708860f0
UI: Fix exec popup link for job id ≠ name ( #7815 )
...
This closes #7814 . It makes URL-generation more central and changes
the exec URL to include job id instead of name.
2020-04-29 07:54:04 -05:00
Buck Doyle
438aec636a
UI: update exec styles to match conventions ( #7811 )
2020-04-28 08:33:07 -05:00
Michael Lange
0dac605902
Merge pull request #7689 from hashicorp/ui/plumb-proxy-config-to-proxy
...
UI Plumb proxy config to proxy
2020-04-22 19:31:27 -07:00
Buck Doyle
6da959f0ed
UI: Update ember-fetch to 6.7.2 ( #7713 )
...
This gets rid of this warning in the console:
Browserslist: caniuse-lite is outdated. Please run next command `yarn upgrade`
2020-04-22 09:10:55 -05:00
Buck Doyle
0c2acb01b9
Remove superseded note
...
This closes #7465 .
2020-04-21 19:52:45 -07:00
Michael Lange
82dc694c70
Disable the proxy when Mirage is enabled
...
This is to prevent max socket connection errors that can stop
the live reload server from responding.
2020-04-21 19:52:44 -07:00
Michael Lange
7a4852d44b
Use existing ember proxy config within our custom proxy
2020-04-21 19:52:43 -07:00
Michael Lange
a34363efd3
Remove now superfluous lint-staged arguments
2020-04-09 20:46:32 -07:00
Michael Lange
45eb6fd7f3
Upgrade Husky
2020-04-09 20:45:37 -07:00
Michael Lange
03d4afe9e0
Upgrade lint-staged
...
Version 10 fixes an issue where if lint-staged fails while linting
a partially staged file, all unstaged changes will be removed from
the working tree. Now when this happens, unstaged changes will be
in the stash.
2020-04-09 20:41:35 -07:00
dependabot[bot]
f565841782
build(deps): bump acorn from 5.7.3 to 5.7.4 in /ui ( #7346 )
...
Bumps [acorn](https://github.com/acornjs/acorn ) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases )
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-04-07 10:50:21 -04:00
Michael Lange
35d4b48644
Merge pull request #7577 from hashicorp/f-ui/csi-beta-label
...
UI: Change CSI to Storage and mark it as beta
2020-04-06 13:21:11 -07:00
Buck Doyle
f10906e006
UI: add exec handling for dead jobs/task states ( #7637 )
...
This closes #7456 . It hides the terminal when the job is dead and
displays an error when trying to open an exec session for a task
that isn’t running. There’s a skipped test for the latter behaviour
that I’ll have to come back for.
2020-04-06 14:08:22 -05:00
Buck Doyle
fc7de8b153
UI: add live-updating to exec sidebar ( #7499 )
...
This closes #7454 . It makes use of the existing watchable tools to
allow the exec popup sidebar to be live-updating. It also adds
alphabetic sorting of task groups and tasks.
2020-04-06 13:52:42 -05:00
Michael Lange
bf9887083b
Merge pull request #7630 from hashicorp/f-ui/csi-acceptance-tests
...
UI: CSI Acceptance Tests
2020-04-06 09:37:45 -07:00
Mahmood Ali
23be53a366
Merge pull request #7612 from hashicorp/b-auth-alloc-exec-ws
...
Authenticate alloc/exec websocket requests
2020-04-06 09:24:51 -04:00
Michael Lange
2955d356e7
Test coverage for the volume detail page
2020-04-04 17:13:40 -07:00
Michael Lange
25f4f5a61d
Sort allocation tables by modify index
2020-04-04 17:11:58 -07:00
Michael Lange
a1d2e585a1
Update breadcrumb to match side menu
2020-04-04 17:11:29 -07:00
Michael Lange
6b798518b9
Fix the allocations page compoent to support multiple prop keys
...
It was designed to be used this way, but allocationFor has never
worked as intended 🤦
2020-04-04 10:56:12 -07:00
Michael Lange
76bead58a3
Add page size select tests to volumes list tests
2020-04-04 09:58:34 -07:00
Michael Lange
e8e41c5757
Acceptance tests for the volumes list page
2020-04-03 19:28:12 -07:00
Michael Lange
0d90d082bc
Page object for volumes list
2020-04-03 19:28:11 -07:00
Michael Lange
59427662d0
Handle namespaces in the mirage handler for volumes
2020-04-03 19:28:10 -07:00
Michael Lange
fb44f76800
Correctly handle the namespace query param and forbidden state
2020-04-03 19:28:09 -07:00
Michael Lange
280fa5d53b
Annotate volume row and make the tr clickable
2020-04-03 19:27:44 -07:00
Michael Lange
62aa943a95
Filter out volumes that don't match the chosen namespace
2020-04-03 19:27:11 -07:00
Michael Lange
62b7a07189
Sort alphabetically, A first
2020-04-03 19:26:26 -07:00
Michael Lange
1729d41509
Merge pull request #7574 from hashicorp/f-ui/configurable-page-sizes
...
UI Configurable Page Sizes
2020-04-03 16:06:17 -07:00
Mahmood Ali
340f9a5e91
ui: explicit reference to window.localStorage
2020-04-03 14:31:19 -04:00
Buck Doyle
2940aa14e5
Remove redundant step assertion
2020-04-03 12:54:47 -05:00
Buck Doyle
b9a2d20445
Remove redundant pause
2020-04-03 12:53:57 -05:00
Buck Doyle
e6ecd2bf4f
Remove redundant assertions
...
These are more things that are already covered elsewhere.
2020-04-03 12:52:39 -05:00
Buck Doyle
4de1255a31
Remove redundant assertions from token exec test
...
This only needs to check that the token is sent, the rest of
the assertions were covered by the previous test.
2020-04-03 12:35:51 -05:00
Buck Doyle
cb6f110b97
Remove intermediate storage variable
2020-04-03 12:27:03 -05:00
Buck Doyle
b12f97bb81
Change to setting token directly
...
Most tests bypass setting the token via the UI, instead choosing
to set it in localStorage directly, because the acceptance tests
for the token UI are sufficient to exercise that part of the UI,
so this speeds up the test a bit.
2020-04-03 12:26:25 -05:00
Buck Doyle
0ec5e95f46
Add space
2020-04-03 12:21:44 -05:00
Buck Doyle
fbe40a5d36
UI: add handling for exec command-editing keys ( #7601 )
...
This is a minimal implementation that closes #7463 . It doesn’t include
true support for moving around within the command to edit using arrow
keys because it gets too complex when managing wrapping at the edge of
the terminal. Instead, arrow keys are ignored. It also ignores ^A and
^E, which are cursor manipulations that pose similar problems to arrow
keys. It does support ^U, which deletes the entire command.
It also allows a command to be pasted, which was previously unsupported.
This is accomplished by migrating from Xterm.js’s onKey handler to
onData, which is recommended here:
https://github.com/xtermjs/xterm.js/issues/2673#issuecomment-574897733
onData is a higher-level handler that issues events with the final
interpreted data instead of the individual key events. That means the
processing in this PR has changed from inspecting DOM key events to
inspecting their ASCII equivalents, which I’ve extracted into a utility
dictionary for use in tests and implementation.
One consequence of ignoring most control characters is that if you paste
a string that includes a control character, that character will be
stripped. It’s somewhat strange for compound sequences like arrow keys;
if you run copy('/bin/b' + '\x1b[D' + 'ash') in a Javascript console and
paste what’s on the clipboard, you get "/bin/b[Dash". That’s because
the left arrow key, as in that centre portion of the string,
is represented by the escape character and a coded sequence. Stripping
the control character leaves the coded sequence as part of the paste.
That seems like an acceptable compromise vs either ignoring any pasted
string with control characters (confusing UX) or trying to interpret and
strip all such compound control sequences (difficult to be exhaustive).
2020-04-03 12:14:47 -05:00
Mahmood Ali
cec76a4f66
ui: send authentication ws handshake
...
Have the UI send the authentication websocket handshake message.
2020-04-03 11:49:22 -04:00
Michael Lange
edea9faf22
Refactor page-size-select page object into a reusable component
2020-04-02 15:52:44 -07:00
Michael Lange
49019bd967
Make table foot fields consistent at all breakpoints
...
This effectively overrides Bulma's default field layout tweaks
at different breakpoints. This includes going from flex to block
and different font-sizes.
2020-04-02 13:41:41 -07:00
Michael Lange
b1d5a77e76
Remove extranneous order property
...
The "default" order values as set by Bulma are different for different
breakpoints. Since this wasn't considering breakpoints, it resulted
in the unexpected reordering of pagination elements as different page
widths. Turns out removing this property gives us what we want.
2020-04-02 13:27:29 -07:00
Michael Lange
81e7296447
Apply the page size select behavior to the other pages with the page size selector
2020-04-02 12:50:37 -07:00
Michael Lange
f08fd23d00
Factor page select tests into their own behavior
2020-04-02 12:50:36 -07:00
Michael Lange
70eb558b65
Acceptance tests for the page size selector on the jobs list view
2020-04-02 12:50:35 -07:00
Michael Lange
e0110e1757
Repeat new pagination pattern throughout the app
2020-04-02 12:50:34 -07:00
Michael Lange
8dc54a6164
Reset current page when changing page size
2020-04-02 12:50:33 -07:00
Michael Lange
3d02f61455
Replace crusty lt and gt with chevron icons
2020-04-02 12:50:32 -07:00
Michael Lange
546751a9b4
Style the page size selector
2020-04-02 12:50:31 -07:00
Michael Lange
53954d1bc3
Add page size select to the jobs list page
2020-04-02 12:50:30 -07:00
Michael Lange
06524fe5a7
Page size select component
2020-04-02 12:50:29 -07:00
Michael Lange
3fc1874c0e
New service for storing user settings
2020-04-02 12:50:28 -07:00
Buck Doyle
3bc13a715e
UI: Fix confirmation position for right-aligned TSBs ( #7590 )
...
Without this, the confirmation text was extending beyond the
edge of the page.
2020-04-02 11:58:29 -05:00
Michael Lange
d91de05fc1
Fix flaky serializer test
2020-04-01 14:54:05 -07:00
Michael Lange
3a3a7f5fb4
Add new gutter menu tag pattern to Storybook
2020-04-01 10:57:33 -07:00
Michael Lange
37a1a32209
Move beta to a tag
2020-04-01 10:49:47 -07:00
Buck Doyle
eba07dabe5
CI: add xUnit reporting for UI tests ( #7585 )
...
This surfaces test failures more clearly on CircleCI by adding
testem-multi-reporter to report both via the default TAP reporter
as well as an xUnit reporter whose output is stored as an artefact.
2020-04-01 11:19:44 -05:00
Buck Doyle
eaf64849f6
UI: Add localStorage persistence of exec command ( #7563 )
...
This closes #7469 . Trivial thanks to localStorageProperty! 🥳
2020-04-01 08:08:42 -05:00
Michael Lange
28ba7e8075
Change CSI to Storage and mark it as beta
2020-03-31 18:21:55 -07:00
Buck Doyle
d70c3fbb3e
UI: Add exec loading template ( #7566 )
...
This closes #7460 . Before this, there was an incongruous flash
of the non-exec UI during loading.
2020-03-31 13:59:43 -05:00
Buck Doyle
61164b856e
UI: Change exec button to not show on dead jobs ( #7548 )
...
I still want to add acceptance tests for the existence
of these buttons but this change makes the exec button
for jobs behave similarly to the others.
2020-03-31 13:11:26 -05:00
Michael Lange
6eaf79f928
Tests for the new volumes facet
2020-03-30 17:33:46 -07:00
Michael Lange
b8ce8c436f
Account for an empty string node class
2020-03-30 17:33:45 -07:00
Michael Lange
01341530e7
Add a volume facet to the clients list page
2020-03-30 17:33:44 -07:00
Michael Lange
fdd2f8df37
Use new text encoder for stream frames
...
This pattern was introduced with Exec and fixes the multibyte encoding
issue that the native window.atob has.
2020-03-30 12:50:43 -07:00
Michael Lange
2711eb032c
Merge pull request #7470 from kybin/kybin-patch-1
...
UI: decode unicode properly in log page
2020-03-30 12:06:51 -07:00
Michael Lange
2db4f5519a
Guard against a null value for the HostVolumes hash
...
When a node has no host volumes, the API response will
have a null value for the HostVolumes attribute, which
in turn becomes a null value instead of an empty array
in the store. This protects against that, ensuring host
volumes is always an array.
2020-03-26 09:54:59 -07:00
Buck Doyle
8932686aa6
UI: Fix check for Mirage presence setting up sockets ( #7497 )
...
Without this, exec UI doesn’t work at all in the binary. I made an
unfortunate error in not copying the environment check from
app/utils/fetch.js.
2020-03-25 13:23:23 -05:00
Buck Doyle
398db02449
UI: Change determination of exec sidebar active tasks ( #7491 )
...
This closes #7476 . The decomposition of computed properties
is necessary to avoid nested aggregate dependent keys; the
previous dependent key of `taskGroup` will be inadequate
when the sidebar becomes live-updating.
2020-03-25 12:08:33 -05:00
Michael Lange
1bd6a69067
UI: Support for CSI ( #7446 )
...
Closes #7197 #7199
Note: Test coverage is limited to adapter and serializer unit tests. All
acceptance tests have been stubbed and all features have been manually
tested end-to-end.
This represents Phase 1 of #6993 which is the core workflow of CSI in
the UI. It includes a couple new pages for viewing all external volumes
as well as the allocations associated with each. It also updates
existing volume related views on job and allocation pages to handle both
Host Volumes and CSI Volumes.
2020-03-25 07:51:26 -05:00
Buck Doyle
674da96a59
UI: add exec terminal ( #6697 )
...
This connects Xterm.js to a Nomad exec websocket so people
can interact on clients via live sessions. There are buttons on
job, allocation, task group, and task detail pages that open a
popup that lets them edit their shell command and start a
session.
More is to come, as recorded in issues.
2020-03-24 18:22:16 -05:00
kim yongbin
4378db612b
UI: decode unicode properly in log page
2020-03-25 01:03:39 +09:00
Michael Lange
bc87d0a440
Remove the question mark from the Volume th
...
This makes it consistent with other volume columns across the app.
2020-02-14 16:56:51 -08:00
Michael Lange
fe685f897f
Correct a test and a dependent key
2020-02-14 16:44:28 -08:00
Michael Lange
c7c37250c8
Improve the node serializer tests
2020-02-13 17:42:41 -08:00
Michael Lange
53c2086a08
Add assertion for the volume k/v pairs in task rows
2020-02-13 17:11:39 -08:00
Michael Lange
b47ce637ed
Refactor task row info test to use 'as'
2020-02-13 17:11:38 -08:00
Michael Lange
41fad6b649
Test coverage for the volume table on the task group page
2020-02-13 17:11:37 -08:00
Michael Lange
44a961f4f8
Test coverage for the task detail volumes table
2020-02-13 17:11:35 -08:00
Michael Lange
0e6c81d3ef
Add volume table to the task detail page
2020-02-13 17:11:34 -08:00
Michael Lange
e4dcd9c2a4
Add volume requirements table to the task group page
2020-02-13 17:11:33 -08:00
Michael Lange
3fbd267263
Add volumes column to the task row component
2020-02-13 17:11:32 -08:00
Michael Lange
9186f75c6a
Fix a bug where the NodeListStub API response would override existing HostVolumes in the store
2020-02-13 17:11:31 -08:00
Michael Lange
895d74c503
Test coverage for change in resource rows
2020-02-13 17:11:30 -08:00
Michael Lange
c57993f0a5
Add volume to the client row
2020-02-13 17:11:29 -08:00
Michael Lange
c0f1aff963
Fix flaky host volumes test
2020-02-13 17:11:28 -08:00
Michael Lange
b3452cc33c
Add volume column to allocation row
2020-02-13 17:11:27 -08:00
Michael Lange
61a3b4919f
Add volume column to task group row
2020-02-13 17:11:26 -08:00
Michael Lange
18cf59b22f
Test coverage for the host volumes table
2020-02-13 17:11:25 -08:00
Michael Lange
1e40837731
Add a Host Volumes table to the client detail page
2020-02-13 17:11:24 -08:00
Michael Lange
849c996887
Data layer for Host Volumes in the UI
2020-02-13 17:11:22 -08:00
Michael Lange
ccefc46912
Merge pull request #7099 from hashicorp/b-ui/mobile-styles-not-full-width
...
UI: Override the max-width on mobile to avoid losing space due to non-existent gutter menu
2020-02-07 14:27:50 -08:00
Michael Lange
1431343d18
Override the max-width on mobile to avoid losing space due to non-existent gutter menu
2020-02-07 14:22:00 -08:00
Michael Lange
c7543ee020
Explicit transparent bg on popover actions
2020-02-07 14:17:13 -08:00
Michael Lange
8a9b60f011
Call out the 'down' status too, since it's a pretty bad one
2020-01-31 12:56:15 -08:00
Michael Lange
38d23b5ba8
Add an animation for the initializing state
2020-01-31 12:56:11 -08:00
Michael Lange
f00a50a55b
Redo the node-status-light CSS to be icon-based
2020-01-31 12:56:08 -08:00
Michael Lange
536a597a92
New node initializing icon
2020-01-31 12:56:05 -08:00
Michael Lange
9dbdbc23dd
Assign icons to node statuses
2020-01-31 12:56:02 -08:00
Michael Lange
89532e27e3
Add an icon inside the node status light
2020-01-31 12:55:59 -08:00
Michael Lange
0f8ea7d37a
Allow for an icon within the node status light
2020-01-31 12:55:55 -08:00
Michael Lange
31b83b1c70
Acceptance test for disabled node write controls
2020-01-31 09:41:37 -08:00
Michael Lange
5c4c05824a
Account for disabled ACLs in ability tests
2020-01-31 09:41:36 -08:00
Michael Lange
59897f9716
Handle the case where ACLs aren't enabled in abilities
2020-01-31 09:41:36 -08:00
Michael Lange
175f80da16
Fix token referencing from the token controller, as well as resetting
2020-01-31 09:41:35 -08:00
Michael Lange
9438330329
Add an explanatory tooltip to the unauthorized node drain popover
2020-01-31 09:41:33 -08:00
Michael Lange
4eac743262
Update disabled 'Run Job' button to use standard disabled style
2020-01-31 09:41:32 -08:00
Michael Lange
eb7d34df6b
Disable options for popover and drain-popover
2020-01-30 21:29:29 -08:00
Michael Lange
1599b8b5fc
Disabled button styles
2020-01-30 21:29:28 -08:00
Michael Lange
cdd7a4fdb7
New disabled buttons story
2020-01-30 21:29:26 -08:00
Michael Lange
7c796a33a9
Refetch all ACL things when the token changes
2020-01-30 21:29:24 -08:00
Michael Lange
c7af942652
Enable the eligibility toggle conditionally based on acls
2020-01-30 21:29:22 -08:00
Michael Lange
2dac1d6705
Refactor ability tests to use a setup hook for ability lookup
2020-01-30 21:29:21 -08:00
Michael Lange
1fae4083eb
Add an ability for client permissions
2020-01-30 21:29:19 -08:00
Michael Lange
d7a3c15530
Replace custom parse-duration implementation with an existing lib
2020-01-23 16:34:38 -08:00
Michael Lange
c0d57149ca
Update client detail test given change to the compositeStatus property
2020-01-23 16:34:38 -08:00
Michael Lange
75987840bb
Tweak vertical spacing of headings
2020-01-23 16:34:37 -08:00
Michael Lange
b4ab7b02ba
Remove superfluous information from the client details ribbon
2020-01-23 16:34:36 -08:00
Michael Lange
7c6bf3b09c
Increase the size and spacing of the toggle component
2020-01-23 16:34:35 -08:00
Michael Lange
41eaec2d9b
Use qunit-dom where applicable
2020-01-23 16:34:35 -08:00
Michael Lange
c7b7789bd4
Stack the popover menu under the subnav
2020-01-23 16:34:34 -08:00
Michael Lange
1dd1298626
New test coverage for the drain capabilities
2020-01-23 16:34:34 -08:00
Michael Lange
0f41bfafad
Update existing tests
2020-01-23 16:34:33 -08:00
Michael Lange
5e95633481
PopoverMenu integration tests
2020-01-23 16:34:32 -08:00
Michael Lange
3b534bbdf9
Integration tests for the toggle component
2020-01-23 16:34:32 -08:00
Michael Lange
bc555f7758
Update the client detail page object
2020-01-23 16:34:31 -08:00
Michael Lange
8deea899c1
Model the notification pattern as a page object component
2020-01-23 16:34:30 -08:00
Michael Lange
7edbf5ff58
Clear all notifications when resetting the controller
2020-01-23 16:34:29 -08:00
Michael Lange
ae85882ca7
Switch drain popover checkboxes for toggles
2020-01-23 16:34:29 -08:00
Michael Lange
54d33f9ad7
Toggle bugs: focus and multiline alignment
2020-01-23 16:34:28 -08:00
Michael Lange
76bfed5f25
Swap the eligiblity checkbox out for a toggle
2020-01-23 16:34:27 -08:00
Michael Lange
95e6068d5d
New toggle component
2020-01-23 16:34:27 -08:00
Michael Lange
faa15bc581
Force drain button in the drain info box
2020-01-23 16:34:26 -08:00
Michael Lange
82a62089b3
Make outline buttons have a solid white background
2020-01-23 16:34:25 -08:00
Michael Lange
80642b8868
Modifiers to the two-step-button
2020-01-23 16:34:25 -08:00
Michael Lange
7097591281
Drain stop and update and notifications
2020-01-23 16:34:24 -08:00
Michael Lange
9c9c6b08c3
Drain complete notification
2020-01-23 16:34:24 -08:00
Michael Lange
8b19a19908
Fill out the metrics and time since values in the drain summary
2020-01-23 16:34:23 -08:00