Commit graph

224 commits

Author SHA1 Message Date
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
Michael Lange 44a961f4f8 Test coverage for the task detail volumes table 2020-02-13 17:11:35 -08:00
Michael Lange 895d74c503 Test coverage for change in resource rows 2020-02-13 17:11:30 -08:00
Michael Lange c0f1aff963 Fix flaky host volumes test 2020-02-13 17:11:28 -08:00
Michael Lange 18cf59b22f Test coverage for the host volumes table 2020-02-13 17:11:25 -08:00
Michael Lange 0f41bfafad Update existing tests 2020-01-23 16:34:33 -08:00
Michael Lange bfa34d5273 Update the underlying node model when toggling eligibility in mirage 2020-01-23 16:34:12 -08:00
Michael Lange 85066eee07 Mock the drain endpoint 2020-01-23 16:34:08 -08:00
Michael Lange 94955c8b08 Mock the eligibility endpoint in mirage 2020-01-23 16:34:06 -08:00
Buck Doyle 66ab14144a
ui: Change Run Job availability based on ACLs (#5944)
This builds on API changes in #6017 and #6021 to conditionally turn off the
“Run Job” button based on the current token’s capabilities, or the capabilities
of the anonymous policy if no token is present.

If you try to visit the job-run route directly, it redirects to the job list.
2020-01-20 14:57:01 -06:00
Buck Doyle 5da134d074
UI: Change Mirage data to be stable in development (#6389)
This sets a default-but-query-configurable Faker seed in development,
via faker-seed. It also changes uses of Math.random to use Faker’s
randomness so auto-generated data remains stable in development.
2019-10-03 09:13:08 -05:00
Buck Doyle 75aa2e36ee
UI: Change factories to be more dynamic (#6387)
I noticed while working on #6166 that some of the factory properties
that used Faker’s randomisation features are using their output
rather than a function that would call the randomiser. This means that
the randomisation happens once and the value is used for every model
generated by the factory. This wraps the randomiser calls in functions
so different models can have different values.
2019-09-30 09:44:22 -05:00
Buck Doyle 8950626c55
UI: Update Mirage to 1.1.2 (#6166) 2019-09-26 13:47:07 -05:00
Mahmood Ali 16f7a3f31b ui: protect against nil services
Protect against case where an alloc has no services and avoid
dereferencing null.

Here, we ensure that the model and test serializers mimic the API by
having nil TaskGroup.Services instead of an empty array.
2019-09-16 16:50:30 -04:00
Buck Doyle b5e5798e54
UI: add Consul Connect features (#6108) 2019-09-04 09:39:56 -05:00
Buck Doyle 49b9dd5b9b
UI: Add creation time to evaluations table (#6050) 2019-08-22 08:11:24 -05:00
Michael Lange 74c9b1ac60
Merge pull request #5871 from hashicorp/f-ui/alloc-fs
UI: Allocation file system explorer
2019-08-20 10:18:23 -07:00
Michael Lange 1e620953e4 Remove the temporary allocationFileExplorer mirage scenario 2019-08-20 09:40:49 -07:00
Buck Doyle ed652051d4
Add ability to control Mirage logging via query (#6105)
This lets us turn Mirage logging on without editing any
files, which makes it easier to switch between branches.
2019-08-20 08:36:08 -05:00
Michael Lange 836e7426b8 Encode characters in file paths to ensure proper URIs 2019-08-14 12:54:11 -07:00
Michael Lange 8cb6a20f8f Include all client fs endpoints in the hosts block 2019-08-07 17:34:41 -07:00
Michael Lange 02c9ab1582 Add additional troublesome characters to the alloc-file name factory 2019-08-07 15:29:57 -07:00
Michael Lange e84604fcdb Update factory-based fs tests to sort properly 2019-07-31 01:41:00 -07:00
Michael Lange 6f519c9037 Add file mocks to every mirage scenario 2019-07-30 17:25:50 -07:00
Michael Lange e347d76c24 Refactor existing fs tests to use new mirage factories 2019-07-30 17:25:46 -07:00
Michael Lange 6325c78b1e cat, stream, and readat mocks for alloc fs 2019-07-30 17:25:44 -07:00
Michael Lange e6d1314254 Use the alloc file factory for the fs stat and fs ls end points 2019-07-30 17:25:43 -07:00
Michael Lange c8977c18ba Mirage factory for file system fixtures 2019-07-30 17:25:42 -07:00
Buck Doyle 595eb480ba
UI: Add allocation directory rendering (#5873)
This lets users navigate the allocation filesystem. It doesn’t
support viewing actual files yet.
2019-07-02 16:42:38 -05:00
Michael Lange af6daf34d2 Give the allTheThings scenario a better name 2019-06-19 17:18:43 -07:00
Michael Lange 6201003f3f New Mirage scenario for puppeteer script to use 2019-06-19 17:18:40 -07:00
Michael Lange 8d31474fdc Support task restarting in the allocation adapter 2019-05-21 09:24:17 -07:00
Michael Lange 000bfce30f Add preemption properties to Mirage allocation factory 2019-04-22 16:40:07 -07:00
Michael Lange 6988dc1b5c Introduce the concept of 'shallow' job models in Mirage 2019-04-11 20:08:09 -07:00
Michael Lange 243adeb165 Reduce the number of task groups and task events that are made 2019-04-11 18:15:35 -07:00
Michael Lange fa90590462 Update everything to work with the mirage backwards incompat 2019-04-10 14:54:37 -07:00
Michael Lange b6b2fd2114 Address the copy/copyable deprecation 2019-04-10 14:54:35 -07:00
Michael Lange 4464c473e5
Add nodeClass to the node model 2019-04-10 10:34:10 -05:00
Michael Lange aa0cbadb30 Improve mirage modeling of allocations
Pending allocations never have tasks
2018-11-09 17:11:47 -08:00
Michael Lange 4e21366714
Merge pull request #4852 from hashicorp/b-ui-dispatched-job-page
UI: Show the correct template for dispatched jobs
2018-11-09 14:36:35 -08:00
Michael Lange 8e18903996 Show the correct template for parameterized job children 2018-11-07 21:04:27 -08:00
Michael Lange 5057574c69 Correctly mark parameterized children as parameterized: true 2018-11-07 17:07:40 -08:00
Michael Lange 174dc02025 Improve client stat simulation and add a chance for requests to error 2018-11-01 22:11:56 -07:00
Michael Lange f86347bc62 Always return valid dates for timestamps 2018-09-19 16:33:18 -07:00
Michael Lange f15e3ba0c2 Test coverage for NodeStatsTracker 2018-09-11 16:27:06 -07:00
Michael Lange 3c2e7b7dd3
Merge pull request #4616 from hashicorp/f-ui-promote-canary
UI: Promote canary
2018-08-30 09:48:31 -07:00
Michael Lange 62e9cf268b Test coverage for the promote canary feature 2018-08-30 09:38:29 -07:00
Michael Lange b5b4a979f9 Test coverage for the job-editor component
Most of this was ported over from the existing job run acceptance tests
2018-08-23 09:00:14 -07:00
Michael Lange 3cee992a97 Test coverage for scheduler dry-run addition to the plan page 2018-08-20 16:44:37 -07:00
Michael Lange f53fb08144 Rework job parse mirage request to get the job ID out of the payload 2018-08-16 17:22:22 -07:00
Michael Lange 75124fdc9e Use the job name as the job id
This has bit me more than once. It's best just to make Mirage consistent
with the API even if it currently means indeterminate job ids
2018-08-15 17:00:08 -07:00
Michael Lange 2239e3c8d7 Support parse, plan, and run endpoints in mirage 2018-08-15 16:59:42 -07:00
Michael Lange 104e5196a6 Acceptance tests for the region switcher 2018-08-10 12:52:05 -07:00
Michael Lange 94d321ef4f Properly model regions in Mirage 2018-08-09 19:57:21 -07:00
Michael Lange ebd5123b77 Bare minimum Mirage support for regions 2018-08-09 18:22:37 -07:00
Michael Lange 578403b193 Add createTime to the allocation model 2018-08-06 10:53:13 -07:00
Michael Lange dad24eef86 Test coverage for the expanded feature set of the latest-deployment component 2018-07-30 15:31:31 -07:00
Michael Lange 60a4e3de7a Support the /job/:id/deployment endpoint in mirage 2018-07-30 15:24:31 -07:00
Michael Lange ab54583878 Use the JobID as the Version ID for mirage job versions 2018-07-27 16:32:43 -07:00
Michael Lange 22f5bedd58 Codify common mirage scenarios and make it easy to switch between 2018-07-10 10:06:11 -07:00
Michael Lange 686061cc9a Acceptance test for jobs from different namespaces on a single client 2018-07-06 10:50:22 -07:00
Michael Lange b9d590349e Dasherize task names in factory
This is to avoid test failures due to url encoding mismatches
2018-06-13 15:04:31 -07:00
Michael Lange 37a8fb2af2 Add new property to factory 2018-06-06 17:34:50 -07:00
Michael Lange 5eac0a53f6 New traits for node states 2018-05-30 11:27:21 -07:00
Michael Lange 65edf31ec9 Acceptance testing for node drain information 2018-05-30 11:27:21 -07:00
Michael Lange 65d696f038
Merge pull request #4294 from hashicorp/f-ui-driver-health-checking
UI: Driver health checking
2018-05-25 12:00:11 -07:00
Michael Lange 8b09108f9c Display driver attributes without the superfluous driver and driver name section 2018-05-25 10:15:25 -07:00
Michael Lange 3f781743e4 NodeEvent and NodeDriver modeling in Mirage 2018-05-25 10:15:24 -07:00
Michael Lange 861690482f Remodel task-group-deployment-summary to property use PlacedCanaries 2018-05-23 13:12:52 -07:00
Michael Lange feec8aa5e7 Integration tests for the various reschedule events timeline permutations 2018-05-04 19:36:55 -07:00
Michael Lange d6d7a90c99 Acceptance tests for allocation rescheduling 2018-05-04 19:36:54 -07:00
Michael Lange d59802aa6e Mirage modeling for rescheduling 2018-05-04 19:36:54 -07:00
Michael Lange 0c1c66776b
Merge pull request #4195 from hashicorp/b-ui-retry-stats-requests
UI: Retry stats requests
2018-04-24 14:13:34 -07:00
Michael Lange 71ca73c19b Test coverage for alloc stats retrying 2018-04-20 18:11:32 -07:00
Michael Lange d7daf86067 Move resource generation helper to a common place 2018-04-20 18:10:41 -07:00
Michael Lange 82ca110cd0 New tests for stop job action 2018-04-19 14:22:04 -07:00
Michael Lange 1f300eb4fb Make sure jobs and task groups have no spaces
Faker hacker nouns can sometimes be two words.
2018-04-17 10:28:58 -07:00
Michael Lange 84141e9d1f Read the task event message from the DisplayMessage prop 2018-03-28 12:52:02 -07:00
Michael Lange fc5c4ff093 The initial index value should be 1, not 0 2018-03-21 13:28:56 -07:00
Michael Lange 7768e14380 Correctly wire up job relationships 2018-03-13 16:34:01 -07:00
Josh Soref 026f885087 spelling: rolling 2018-03-11 18:52:29 +00:00
Josh Soref 4708460e8f spelling: appropriate 2018-03-11 17:39:47 +00:00
Michael Lange 23e7a7924f Only show the placement failures section if there is a blocked eval 2018-03-08 14:14:55 -08:00
Michael Lange 29f1d9948e
Merge pull request #3936 from hashicorp/f-ui-polling
UI: Live updating views
2018-03-08 13:27:02 -08:00
Michael Lange 145b153889 Wire up the job summary 2018-03-08 10:40:31 -08:00
Michael Lange 4b581dc04d Address headers and ID bugs 2018-03-02 16:28:39 -08:00
Michael Lange 788d410d6b Watchable request helper for Mirage 2018-03-02 16:21:37 -08:00
Michael Lange 553c69cc32 Fix existing tests 2018-03-02 16:21:36 -08:00
Michael Lange a18771278f
Merge pull request #3908 from hashicorp/f-ui-route-client-requests-through-server
UI: Take advantage of client request tunneling
2018-03-02 15:58:27 -08:00
Michael Lange 470b8131bd Get client stats through the server agent 2018-02-26 12:23:47 -08:00
Michael Lange 2fcd9b3cb6 Refactor node meta table
- Use existing serializer and components
- Add acceptance test
- Add empty state
2018-02-06 18:56:49 -08:00
Michael Lange 9f9597c50c Integration test for periodic job force launch 2018-02-06 10:53:53 -08:00
Michael Lange d932c79b24 Job part children tests 2018-02-06 10:53:52 -08:00
Michael Lange d8aafcfc7c Update job factory to use traits for specifying job type 2018-02-06 10:53:52 -08:00
John Cowen 98bd72a44e Remove vaultError, failedSibling and messagePassthru
1. `vaultError` and `failedSibling` are safe to remove see
https://github.com/hashicorp/nomad/blob/64e9cf9/nomad/structs/structs.go#L3979-L3986
2018-01-26 13:37:20 +00:00
Michael Schurter 9fcda9c5aa Make example service name make sense
Switch from global-redis-check for the example job's service name to
redis-cache. The former name is really confusing and someone finally
called us out on it:

https://groups.google.com/d/msg/nomad-tool/3RTh6CyYkWk/vEe_Sj7lAAAJ

Also specifically mention that the `service.name` parameter is what is
advertised in Consul.
2018-01-17 14:08:30 -08:00
Michael Lange c408b4ecc4 Run prettier on all files
Since prettier updated, some files have out of date formatting.
2018-01-17 09:04:00 -08:00
Michael Lange eb91e88038 Upgrade Ember CLI Mirage to 0.4.1 2018-01-17 09:02:04 -08:00
Michael Lange 54cb23c577 Use ModifyTime instead of ModifyIndex 2017-12-06 10:17:12 -08:00
Michael Lange 956e967ffd Acceptance tests for evaluations 2017-11-29 20:12:45 -08:00
Michael Lange f3acc8bd6d Fixes an off by one bug in the ipv6 generator function
Sigh.
2017-11-29 20:12:13 -08:00
Michael Lange d663f7ea70 Mirage magic for evaluations 2017-11-29 20:12:13 -08:00
Michael Lange f747cc79e4 Revert "UI Placement failures""
This reverts commits
141ecd8d9170f56c8302b5c776532e6d287a40e3
d2d838c2de08aac716a9431d9720b5c12bb19ba1
8099db433641429816e8479c6d23116269f744c0
86262b3ceff607627a9c9e0e25eb81b9b5ee739c
eb4104ec528982e0ee6ae9a05fb0460e53139f3f
0e0e23e238017815bdb6dcfbc056275b3deaacca
6d45658d77fb4c40760a63cced71b74757356e48
b52a8176e85b9c6f13ec012f7fce2ec3df1c8751
2017-11-29 20:03:39 -08:00
Michael Lange 961926880a Acceptance tests for evaluations 2017-11-29 19:46:28 -08:00
Michael Lange 84c9fb20f3 Fixes an off by one bug in the ipv6 generator function
Sigh.
2017-11-29 19:46:27 -08:00
Michael Lange 2ed76e50e3 Mirage magic for evaluations 2017-11-29 16:30:33 -08:00
Michael Lange bf082d4fcd Fixes intermittent test failures 2017-11-21 11:22:42 -08:00
Michael Lange 061de462c6 Integration tests for the task-log component 2017-11-21 11:22:42 -08:00
Michael Lange 1e1a697841 Acceptance tests for task logs 2017-11-21 11:22:42 -08:00
Michael Lange 95ee30cc31 Crude log mocking
This will need to get better for testing the offset stitching
logic in the polling case.
2017-11-21 11:22:42 -08:00
Michael Lange 71bc408f6c Remold the allocation detail and task detail pages
Now that there is a task detail page, some of the content from
the allocation detail page is better suited there.
2017-11-14 11:08:51 -08:00
Michael Lange 7abf621441 On namespace change on a job detail page, redirect to /jobs
And reload jobs for the new namespace.
2017-10-23 17:42:36 -07:00
Michael Lange 39e917f654 Update job factories and mock endpoints to handle namespaces correctly 2017-10-23 17:42:36 -07:00
Michael Lange 8c6c54ff07 Add job version to allocation tables 2017-10-18 12:29:33 -07:00
Michael Lange 77cf33472f Make ModifyIndex the default sort property for alloc tables 2017-10-18 11:45:02 -07:00
Michael Lange e9579b0977 Make sure token policy ids are unique
When they aren't unique, length checks will fail
2017-10-16 13:27:52 -07:00
Michael Lange 85f66ffa94 Use /acl/token/self instead of /acl/token/:accessor_id 2017-10-16 13:27:52 -07:00
Michael Lange 21a9d9c4e5 Mirage factories for tokens and policies 2017-10-16 13:27:51 -07:00
Michael Lange 5c1d103253 Sync the active namespace as a query param on the jobs list page 2017-10-11 14:06:46 -07:00
Michael Lange 61b988fbb8 Gracefully handle the 501 case
Enterprise endpoints return a 501 in the open source build. 5xx
errors throw by default, so handle this one since it's expected
for things such as namespaces.
2017-10-11 14:06:46 -07:00
Michael Lange 2340504da8 Replace simple dropdown namespace switcher with ember-power-select 2017-10-11 13:45:03 -07:00
Michael Lange bf8d9f05b1 Mock namespaces in mirage 2017-10-11 13:45:03 -07:00
Michael Lange 4481e04d43 New namespaces model 2017-10-11 13:45:03 -07:00
Alex Dadgar e5ec915ac3 sync 2017-09-19 10:08:23 -05:00