Commit Graph

18330 Commits

Author SHA1 Message Date
Drew Bailey
7fc495e30e Oss license support for ent builds (#8054)
* changes necessary to support oss licesning shims

revert nomad fmt changes

update test to work with enterprise changes

update tests to work with new ent enforcements

make check

update cas test to use scheduler algorithm

back out preemption changes

add comments

* remove unused method
2020-05-27 13:46:52 -04:00
Michael Lange
5453e84ca3 Merge pull request #8056 from hashicorp/f-ui/remove-jquery
UI: Remove jQuery
2020-05-27 10:04:55 -07:00
Michael Lange
e40f10bf9b Disable and remove the jquery integration 2020-05-27 09:16:36 -07:00
Michael Lange
d4e15451a8 Merge pull request #8055 from hashicorp/f-ui/remove-jquery-from-templates
UI: Remove jQuery from the rest of application code
2020-05-27 09:15:01 -07:00
Mahmood Ali
6a1be11f78 Merge pull request #8059 from hashicorp/tests-log-output
tests: log to stderr directly
2020-05-27 09:20:02 -04:00
Mahmood Ali
8396fb63c6 tests: log to stderr directly
Go 1.14 now streams t.Log output as it happens [1], so we no longer need
to maintain our log STDOUT helper.

I preserved the interface, so `testlog` still takes in a `*testing.T`
though unused. Changing it requires so too many changes that I didn't
want to make quite yet.

[1] https://golang.org/doc/go1.14#go-test
2020-05-27 08:42:29 -04:00
Michael Lange
97e26b82e4 Remove test code 2020-05-26 14:54:59 -07:00
Michael Lange
07ce413ce8 Remove jquery from the window resize helper 2020-05-26 14:35:57 -07:00
Michael Lange
4bb24ac8f0 Remove jquery from the lazy-click helper 2020-05-26 14:31:15 -07:00
Michael Lange
756069c9a2 Remove jquery from gauge chart 2020-05-26 14:13:29 -07:00
Michael Lange
718114cb98 Remove jquery from the distribution bar chart 2020-05-26 14:11:08 -07:00
Michael Lange
6ffa836a64 Remove jquery from line-chart 2020-05-26 14:05:45 -07:00
Buck Doyle
6e7c180277 Remove minor version from audit comparison action (#8048)
Making this less specific means we can benefit from updates
to the action without needing to change the workflow, such
as the bug fix in backspace/ember-test-audit-comparison-action@a87d252,
which addresses the incorrect duration delta here:
https://github.com/hashicorp/nomad/pull/7964#issuecomment-632351171
2020-05-26 15:34:12 -05:00
Mahmood Ali
4335b0d31a Merge pull request #8049 from hashicorp/test-goroutine-cleanup
Cleanup goroutines in tests
2020-05-26 16:01:42 -04: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
Jimmy Merritello
31fd0fd21f Merge pull request #8052 from hashicorp/jm.add-carousel-item
Add Case Study Carousel Item
2020-05-26 13:59:58 -05:00
Mahmood Ali
fb22b97062 {volume|deployment}watcher: check for nil batcher 2020-05-26 14:54:27 -04:00
Mahmood Ali
72ce1573b0 deploymentwatcher: no batcher when disabling
When disabling deploymentwatcher (at the end of a test), avoid starting a
new update batcher with its new goroutine.
2020-05-26 14:44:47 -04:00
Drew Bailey
6db087e77d Merge pull request #8051 from hashicorp/revert-7922-disable-future-commands
Revert "disable license cli commands"
2020-05-26 13:00:58 -04:00
Drew Bailey
43ab5cd7ed Revert "disable license cli commands" 2020-05-26 12:39:39 -04:00
Jimmy Merritello
9741abefe0 Add Carousel Item 2020-05-26 11:39:26 -05:00
Mahmood Ali
d6c75e301e cleanup driver eventor goroutines
This fixes few cases where driver eventor goroutines are leaked during
normal operations, but especially so in tests.

This change makes few modifications:

First, it switches drivers to use `Context`s to manage shutdown events.
Previously, it relied on callers invoking `.Shutdown()` function that is
specific to internal drivers only and require casting.  Using `Contexts`
provide a consistent idiomatic way to manage lifecycle for both internal
and external drivers.

Also, I discovered few places where we don't clean up a temporary driver
instance in the plugin catalog code, where we dispense a driver to
inspect and validate the schema config without properly cleaning it up.
2020-05-26 11:04:04 -04:00
Seth Hoenig
41f9ec5643 Merge pull request #8044 from hashicorp/d-use-hashi-hclfmt
build: use hashicorp hclfmt
2020-05-26 09:58:07 -05: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
Seth Hoenig
bc72de5d49 Merge pull request #8018 from hashicorp/b-sidecar-task-resources-npe
api: canonicalize connect components
2020-05-26 09:19:02 -05:00
Mahmood Ali
29eca948ad terminate leader goroutines on shutdown
Ensure that nomad steps down (and terminate leader goroutines) on
shutdown, when the server is the leader.

Without this change, `monitorLeadership` may handle `shutdownCh` event
and exit early before handling the raft `leaderCh` event and end up
leaking leadership goroutines.
2020-05-26 10:18:10 -04:00
Mahmood Ali
4a7f4b22cf fix a trace logline 2020-05-26 10:18:09 -04:00
Mahmood Ali
2bdbed0974 refactor: context is first parameter
By convention, go functions take `context.Context` as the first
argument.
2020-05-26 10:18:09 -04:00
Mahmood Ali
ada9a6a844 volumewatcher: no batcher when disabling
When disabling volumewatcher (at the end of a test), avoid starting a
new update batcher with its new goroutine.
2020-05-26 10:18:09 -04:00
G
3f47a67f88 docs: static port incorrectly declared as a string (#8046)
static attribute of the port stanza is supposed to be an integer but is incorrectly declared as a string in the example.
2020-05-26 08:51:16 -04:00
Seth Hoenig
051e387d0c build: use hashicorp hclfmt
We have been using fatih/hclfmt which is long abandoned. Instead, switch
to HashiCorp's own hclfmt implementation. There are some trivial changes in
behavior around whitespace.
2020-05-24 18:31:57 -05:00
Tim Gross
cc7e4b226b csi: skip unit tests on unsupported platforms (#8033)
Some of the unit tests for CSI require platform-specific APIs that aren't
available on macOS. We can safely skip these tests.
2020-05-21 13:56:50 -04:00
Tim Gross
262cafcdff docs: add missing fields to driver Capabilities (#8037)
Adds `NetIsolationModes`, `MustInitiateNetwork`, and `MountConfigs` fields to
the driver `Capabilities` internals documentation.
2020-05-21 13:56:40 -04:00
Michael Lange
06720bdf8e Replace nulls with empty strings to have an empty response body 2020-05-21 10:35:41 -07: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
115923d890 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
3872b0be23 Always lower case headers now 2020-05-21 10:35:40 -07:00
Michael Lange
c792478224 Don't double query params for findQuery 2020-05-21 10:35:40 -07:00
Michael Lange
e49d4e5a81 Adjust header case, which changed with the migration to fetch 2020-05-21 10:35:40 -07:00
Michael Lange
505510915b Replace XHRToken with AbortController 2020-05-21 10:35:39 -07:00
Michael Lange
dc06b460e4 Use the AbortController provided by the fetch polyfill 2020-05-21 10:35:39 -07:00
Michael Lange
8332ed11e2 Instrument jquery ajax method to see if it is getting called anywhere 2020-05-21 10:35:39 -07:00
Michael Lange
2818655b96 Force the use of fetch despite jquery still being integrated 2020-05-21 10:35:39 -07:00
Buck Doyle
07fb795fa1 Add test-timing comparison for UI PRs (#7929)
This runs ember-test-audit for UI PRs to compare how long
the tests take for the base vs the PR. It posts or updates
a comparison of times and test count.

It’s somewhat slow to report back as it runs the test suite
three times to even out variability in a shared environment.
If we end up being unhappy with that slowness, we could try
running the repetitions in parallel as well, but that would
involve more changes to ember-test-audit.
2020-05-21 11:41:13 -05:00
Michael Lange
4b54536086 Merge pull request #8024 from hashicorp/f-ui/csi-plugin-allocations
UI: CSI Plugin Allocations Page
2020-05-21 09:16:45 -07:00
Tim Gross
8860b72bc3 volumes: return better error messages for unsupported task drivers (#8030)
When an allocation runs for a task driver that can't support volume mounts,
the mounting will fail in a way that can be hard to understand. With host
volumes this usually means failing silently, whereas with CSI the operator
gets inscrutable internals exposed in the `nomad alloc status`.

This changeset adds a MountConfig field to the task driver Capabilities
response. We validate this when the `csi_hook` or `volume_hook` fires and
return a user-friendly error.

Note that we don't currently have a way to get driver capabilities up to the
server, except through attributes. Validating this when the user initially
submits the jobspec would be even better than what we're doing here (and could
be useful for all our other capabilities), but that's out of scope for this
changeset.

Also note that the MountConfig enum starts with "supports all" in order to
support community plugins in a backwards compatible way, rather than cutting
them off from volume mounting unexpectedly.
2020-05-21 09:18:02 -04:00
Michael Lange
5302c08b9b Prevent sticky query params for plugin alloc filtering 2020-05-20 14:34:16 -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
Tim Gross
b3a33e0d46 csi: don't pass volume claim releases thru GC eval (#8021)
Following the new volumewatcher in #7794 and performance improvements
to it that landed afterwards, there's no particular reason we should
be threading claim releases through the GC eval rather than writing an
empty `CSIVolumeClaimRequest` with the mode set to
`CSIVolumeClaimRelease`, just as the GC evaluation would do.

Also, by batching up these raft messages, we can reduce the amount of
raft writes by 1 and cross-server RPCs by 1 per volume we release
claims on.
2020-05-20 15:22:51 -04:00
Tim Gross
db4c88f71b stats_hook: log normal shutdown condition as debug, not error (#8028)
The `stats_hook` writes an Error log every time an allocation becomes
terminal. This is a normal condition, not an error. A real error
condition like a failure to collect the stats is logged later. It just
creates log noise, and this is a particularly bad operator experience
for heavy batch workloads.
2020-05-20 10:28:30 -04:00