Commit Graph

232 Commits

Author SHA1 Message Date
Buck Doyle
06baadd01e 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
f1acc77806 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
b965e6a84b 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
62d859a552 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
3872b0be23 Always lower case headers now 2020-05-21 10:35:40 -07:00
Michael Lange
57bad784ed Show the number of allocations in the the goto links on plugin detail 2020-05-20 14:22:47 -07:00
Michael Lange
2aeb1eca66 Test coverage for the plugin allocations page 2020-05-19 19:22:12 -07:00
Michael Lange
c90354179c Test coverage for the limited alloc tables and goto links 2020-05-19 18:01:42 -07:00
Michael Lange
f760027ccf Test coverage for node only view of the plugin detail page 2020-05-18 17:23:54 -07:00
Michael Lange
3da88c6925 Test coverage for the node-only change to the list view 2020-05-18 15:30:00 -07:00
Buck Doyle
8c3a210839 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
8fb57c408c Add assertions for title-area buttons (#7836)
This closes #7452.
2020-05-11 11:29:30 -05:00
Mahmood Ali
521eed273b 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
804029c9a2 The active namespace is now shared between jobs and storage 2020-05-08 17:35:27 -07:00
Michael Lange
c5b1fd3aa7 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
79327c9d96 Introduce shallow to plugin factories to speed up tests 2020-05-07 17:29:42 -07:00
Michael Lange
dc8c125202 Searchable plugins 2020-05-07 17:25:24 -07:00
Michael Lange
a4ea5b16e5 Searchable volumes 2020-05-07 16:57:51 -07:00
Michael Lange
877cadffc9 Acceptance test for PluginDetail 2020-05-06 17:36:45 -07:00
Michael Lange
e984bbcd27 Test coverage for the plugins list page 2020-05-06 17:21:48 -07:00
Michael Lange
83baebc841 Add constraints table to the volume detail page 2020-05-06 17:21:42 -07:00
Jasmine Dahilig
c10ac6394f 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
Buck Doyle
90ec5e6457 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
f32780355d 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
61a15ba223 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
6021ea6d25 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
c64467320e Test coverage for the volume detail page 2020-04-04 17:13:40 -07:00
Michael Lange
5a84d731c0 Add page size select tests to volumes list tests 2020-04-04 09:58:34 -07:00
Michael Lange
283e112d96 Acceptance tests for the volumes list page 2020-04-03 19:28:12 -07:00
Michael Lange
98cbe43c9b 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
4a92a27db7 ui: explicit reference to window.localStorage 2020-04-03 14:31:19 -04:00
Buck Doyle
c75657774a Remove redundant step assertion 2020-04-03 12:54:47 -05:00
Buck Doyle
dd1b2dc37d Remove redundant pause 2020-04-03 12:53:57 -05:00
Buck Doyle
2afe4441b4 Remove redundant assertions
These are more things that are already covered elsewhere.
2020-04-03 12:52:39 -05:00
Buck Doyle
4fa139a2fd 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
f1d9e878a7 Remove intermediate storage variable 2020-04-03 12:27:03 -05:00
Buck Doyle
4fccaaa2e3 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
b7999b31fb Add space 2020-04-03 12:21:44 -05:00
Buck Doyle
a3645e2ce7 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
cad5261ec1 ui: send authentication ws handshake
Have the UI send the authentication websocket handshake message.
2020-04-03 11:49:22 -04:00
Michael Lange
990e723c2e 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
c99214441f Factor page select tests into their own behavior 2020-04-02 12:50:36 -07:00
Michael Lange
5cc55b79e0 Acceptance tests for the page size selector on the jobs list view 2020-04-02 12:50:35 -07:00
Buck Doyle
502d2734ce 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
21b8986139 Tests for the new volumes facet 2020-03-30 17:33:46 -07:00
Michael Lange
508404ccba 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
27df92a967 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
Michael Lange
6024b9c1b6 Correct a test and a dependent key 2020-02-14 16:44:28 -08:00
Michael Lange
88c2af2f8d Add assertion for the volume k/v pairs in task rows 2020-02-13 17:11:39 -08:00
Michael Lange
060e84135c Refactor task row info test to use 'as' 2020-02-13 17:11:38 -08:00