James Phillips
48cfe6ff5f
Fixes crash where body was optional for PQ endpoint (it is not).
...
Fixes #3791
2018-01-10 09:33:49 -08:00
Dmytro Kostiuchenko
1a10b08e82
Add gRPC health-check #3073
2018-01-04 16:42:30 -05:00
Diptanu Choudhury
294151c1ad
Using labels
2017-12-21 20:30:29 -08:00
Diptanu Choudhury
006eab2394
Added telemetry around Catalog APIs
2017-12-21 16:35:12 -08:00
James Phillips
5b88b8df38
Updates the checked in web assets.
2017-12-20 19:51:04 -08:00
James Phillips
6412d8d9aa
Updates the built-in web assets.
2017-12-20 17:48:51 -08:00
James Phillips
7a46d9c1e3
Wraps HTTP mux to ban all non-printable characters from paths.
2017-12-20 15:47:53 -08:00
James Phillips
2edc11b44c
Updates the built-in web UI assets.
2017-12-20 13:43:52 -08:00
James Phillips
da6a4635b0
Fixes a `go fmt` cleanup.
2017-12-20 13:43:38 -08:00
Kyle Havlovitz
11a0c9cc58
Fix vet error
2017-12-18 18:04:42 -08:00
Kyle Havlovitz
77dc52f430
Move autopilot initializing to oss file
2017-12-18 18:02:44 -08:00
Kyle Havlovitz
039e7f1880
Move autopilot setup to a separate file
2017-12-18 16:55:51 -08:00
Kyle Havlovitz
d08ab9fd19
Make some final tweaks to autopilot package
2017-12-18 12:26:47 -08:00
Kyle Havlovitz
a86d11ec0a
Merge pull request #3737 from hashicorp/autopilot-refactor
...
Move autopilot to a standalone package
2017-12-15 14:09:40 -08:00
James Phillips
06f980061e
Merge pull request #3728 from weiwei04/fix_globalRPC_goroutine_leak
...
fix globalRPC goroutine leak
2017-12-14 17:54:19 -08:00
James Phillips
f491a55e47
Merge pull request #3642 from yfouquet/master
...
[Fix] Service tags not added to health checks
2017-12-14 13:59:39 -08:00
James Phillips
ca3f9024ac
Works around mapstructure behavior to enable sessions with no checks.
...
Fixes #3732
2017-12-14 09:07:56 -08:00
Kyle Havlovitz
324c2ecb53
Expose IsPotentialVoter for advanced autopilot logic
2017-12-13 17:53:51 -08:00
James Phillips
98e837167e
Changes maps to merge vs. overwrite when processing configs.
...
Fixes #3716
2017-12-13 16:06:01 -08:00
Kyle Havlovitz
12bf61c851
Merge branch 'master' into autopilot-refactor
2017-12-13 11:54:32 -08:00
Kyle Havlovitz
d6b266c045
A few last autopilot adjustments
2017-12-13 11:19:17 -08:00
Kyle Havlovitz
2310687c1d
More autopilot reorganizing
2017-12-13 10:57:37 -08:00
James Phillips
46742a5041
Adds TODOs referencing #3744 .
2017-12-13 10:52:06 -08:00
James Phillips
2892f91d0b
Copies the autopilot settings from the runtime config.
...
Fixes #3730
2017-12-13 10:32:05 -08:00
Kyle Havlovitz
b92f895c23
More refactoring to make autopilot consul-agnostic
2017-12-12 17:46:28 -08:00
Yoann Fouquet
986148cfe5
[Fix] Service tags not added to health checks
...
Since commit 9685bdcd0b
, service tags are added to the health checks.
Otherwise, when adding a service, tags are not added to its check.
In updateSyncState, we compare the checks of the local agent with the checks of the catalog.
It appears that the service tags are different (missing in one case), and so the check is synchronized.
That increase the ModifyIndex periodically when nothing changes.
Fixed it by adding serviceTags to the check.
Note that the issue appeared in version 0.8.2.
Looks related to #3259 .
2017-12-12 13:39:37 +01:00
Kyle Havlovitz
de28555671
Move autopilot to a standalone package
2017-12-11 16:45:33 -08:00
James Phillips
d12e81860f
Moves Serf helper into lib to fix import cycle in consul-enterprise.
2017-12-07 16:57:58 -08:00
James Phillips
5065f3d82e
Turns of intent queue warnings and enables dynamic queue sizing.
2017-12-07 16:27:06 -08:00
Wei Wei
cc9648c957
fix globalRPC goroutine leak
...
Signed-off-by: Wei Wei <weiwei.inf@gmail.com>
2017-12-05 11:53:30 +08:00
James Phillips
3e46544085
Creates a registration mechanism for snapshot and restore.
2017-11-29 18:36:53 -08:00
James Phillips
f53f521072
Begins split out of snapshots from the main FSM class.
2017-11-29 18:36:53 -08:00
James Phillips
c8e763667f
Creates a registration mechanism for FSM commands.
2017-11-29 18:36:53 -08:00
James Phillips
78292662d7
Moves the FSM into its own package.
...
This will help make it clearer what happens when we add some registration
plumbing for the different operations and snapshots.
2017-11-29 18:36:53 -08:00
James Phillips
e810697e06
Resolves an FSM snapshot TODO.
...
This adds checks for sink write calls before we continue the refactor, which
will resolve the other TODO comment we deleted as part of this change.
2017-11-29 18:36:53 -08:00
James Phillips
aa61159b74
Creates a registration mechanism for schemas.
...
This also splits out the registration into the table-specific source
files.
2017-11-29 18:36:52 -08:00
James Phillips
93ff33b1be
Creates a registration mechanism for RPC endpoints.
2017-11-29 18:36:52 -08:00
James Phillips
68f100c8df
Creates HTTP endpoint registry.
2017-11-29 18:36:52 -08:00
James Phillips
679775418f
Moves coordinate disabled logic down into endpoints.
...
Similar rationale to the previous change for ACLs.
2017-11-29 18:36:52 -08:00
James Phillips
29367cd5ae
Moves ACL disabled response logic down into endpoints.
...
This lets us make the registration of endpoints less fancy, on the
road to adding a registration mechanism.
2017-11-29 18:36:52 -08:00
James Phillips
44d824a58f
Renames "segments" to "segment" to be consistent with other files.
2017-11-29 18:36:52 -08:00
James Phillips
8bf1f57737
Renames stubs to be more consistent.
2017-11-29 18:36:52 -08:00
James Phillips
8abd2050fa
Sheds monotonic time info so tombstone GC bins work properly.
2017-11-29 10:34:24 -08:00
James Phillips
de57a9ef51
Gives back the lock before writing to the expire channel.
...
The lock isn't needed after we clean up the expire bin, and as seen
in #3700 we can get into a deadlock waiting to place the expire index
into the channel while holding this lock.
Fixes #3700
2017-11-19 16:24:16 -08:00
James Phillips
34c13925d4
Skips files with unknown extensions when not forcing a format.
...
Fixes #3685
2017-11-10 18:06:07 -08:00
James Phillips
1e49c157c5
Adds a snapshot agent stub to the config structure.
...
Fixes #3678
2017-11-10 13:50:45 -08:00
James Phillips
990fbbb86b
Cleans up check logging.
...
There were places where we still didn't have the script vs. args sorted
correctly so changed all the logging to be just based on check IDs and
also made everything uniform.
Also removed some annoying debug logging, and moved some of the large output
logging to TRACE level.
Closes #3602
2017-11-10 12:48:44 -08:00
James Phillips
f19ba41144
Moves the LAN event handler after the router is created.
...
Fixes #3680
2017-11-10 12:26:48 -08:00
James Phillips
17737ee030
Revert "Adds a small sleep to make sure we are in the next GC bucket."
2017-11-08 22:18:37 -08:00
James Phillips
24475048e2
Adds a sleep to make sure we are in the next GC bucket, ups time.
...
Fixes #3670
2017-11-08 22:02:40 -08:00
James Phillips
c57884fffe
Skips the tombstone GC test in Travis for now.
...
Related to #3670
2017-11-08 20:14:20 -08:00
James Phillips
cd935ebe6c
Adds missing os import.
2017-11-08 20:02:22 -08:00
James Phillips
f6b7dcbcf6
Removes bogus getPort() in favor of freeport.
2017-11-08 19:55:50 -08:00
James Phillips
8579225c27
Skips IPv6 test in Travis.
2017-11-08 18:28:45 -08:00
James Phillips
2937656f8e
Adds a longer retry period for the AE deferred output test.
...
There's some justification in the comments about this and a TODO to
improve this later.
Fixes #3668
2017-11-08 18:10:13 -08:00
James Phillips
7b966e2d26
Tightens timing up and reorders GC test to be less flaky.
2017-11-08 15:09:29 -08:00
James Phillips
7c6ab5e783
Doubles the GC timing.
2017-11-08 15:01:11 -08:00
James Phillips
8de7c77482
Opens up test timing a little more.
2017-11-08 14:01:19 -08:00
James Phillips
c46612f691
Shifts off a gran boundary to help make test less flaky.
2017-11-08 13:57:17 -08:00
James Phillips
f31856c1b7
Opens up the tombstone GC test timing.
2017-11-08 13:43:39 -08:00
James Phillips
93f68555d0
Adds enable_agent_tls_for_checks configuration option which allows ( #3661 )
...
HTTP health checks for services requiring 2-way TLS to be checked
using the agent's credentials.
2017-11-07 18:22:09 -08:00
James Phillips
85e678fbdd
Saves the cycled server list after a failed ping when rebalancing. ( #3662 )
...
Fixes #3463
2017-11-07 18:13:23 -08:00
James Phillips
099b143838
Double-books the HTTP metrics w/ and w/o the "consul" prefix.
...
Fixes #3654
2017-11-07 16:32:45 -08:00
James Phillips
4a2cafe525
Adds HTTP/2 support to Consul's HTTPS server. ( #3657 )
...
* Refactors the HTTP listen path to create servers in the same spot.
* Adds HTTP/2 support to Consul's HTTPS server.
* Vendors Go HTTP/2 library and associated deps.
2017-11-07 15:06:59 -08:00
James Phillips
aa199ab6ba
Makes the metrics ACL test call the right endpoint.
...
This also required setting up a proper in-mem sink so we don't get
metrics-related errors.
Fixes #3655
2017-11-06 21:50:04 -08:00
Preetha Appan
b15d8db851
Sets tty in docker client back to true, as a potential fix for docker exec weirdness
2017-11-05 09:44:55 -06:00
Kyle Havlovitz
d3dd2b1402
Move check definition to a sub-struct
2017-11-01 14:54:46 -07:00
Kyle Havlovitz
dbab3cd5f6
Merge branch 'master' into esm-changes
2017-11-01 11:37:48 -07:00
Kyle Havlovitz
c4375d5a47
Merge pull request #3622 from hashicorp/coordinate-node-endpoint
...
agent: add /v1/coordianate/node/:node endpoint
2017-11-01 11:35:50 -07:00
Kyle Havlovitz
021b2849c5
Remove redundant lines from coordinate test
2017-11-01 11:25:33 -07:00
Kyle Havlovitz
b0536a96cc
Fill out the tests around coordinate/node functionality
2017-10-31 15:36:44 -07:00
Frank Schröder
874e350b2f
config: add -config-format option ( #3626 )
...
* config: refactor ReadPath(s) methods without side-effects
Return the sources instead of modifying the state.
* config: clean data dir before every test
* config: add tests for config-file and config-dir
* config: add -config-format option
Starting with Consul 1.0 all config files must have a '.json' or '.hcl'
extension to make it unambigous how the data should be parsed. Some
automation tools generate temporary files by appending a random string
to the generated file which obfuscates the extension and prevents the
file type detection.
This patch adds a -config-format option which can be used to override
the auto-detection behavior by forcing all config files or all files
within a config directory independent of their extension to be
interpreted as of this format.
Fixes #3620
2017-10-31 17:30:01 -05:00
Frank Schröder
a052255f86
vendor: update go-discover ( #3634 )
...
* vendor: update go-discover
Pull in providers:
* Aliyun (Alibaba Cloud)
* Digital Ocean
* OpenStack (os)
* Scaleway
* doc: use ... instead of xxx
* doc: strip trailing whitespace
* doc: add docs for aliyun, digitalocean, os and scaleway
* agent: fix test
2017-10-31 17:03:54 -05:00
Kyle Havlovitz
1e3b0d441b
Factor out registerNodes function
2017-10-31 13:34:49 -07:00
James Phillips
6bf55d16a2
Relaxes Autopilot promotion logic. ( #3623 )
...
* Relaxes Autopilot promotion logic.
When we defaulted the Raft protocol version to 3 in #3477 we made
the numPeers() routine more strict to only count voters (this is
more conservative and more correct). This had the side effect of
breaking rolling updates because it's at odds with the Autopilot
non-voter promotion logic.
That logic used to wait to only promote to maintain an odd quorum
of servers. During a rolling update (add one new server, wait, and
then kill an old server) the dead server cleanup would still count
the old server as a peer, which is conservative and the right thing
to do, and no longer count the non-voter. This would wait to promote,
so you could get into a stalemate. It is safer to promote early than
remove early, so by promoting as soon as possible we have chosen
that as the solution here.
Fixes #3611
* Gets rid of unnecessary extra not-a-voter check.
2017-10-31 15:16:56 -05:00
Frank Schroeder
c72e6bdb37
docker: fix failing test
2017-10-31 09:26:34 +01:00
Frank Schroeder
7c0e5036a8
docker: render errors with %v since they can be nil
2017-10-31 09:19:20 +01:00
Kyle Havlovitz
a1d14019dd
Add tests around coordinate update endpoint
2017-10-26 20:12:54 -07:00
Kyle Havlovitz
2392545adc
Merge branch 'coordinate-node-endpoint' of github.com:hashicorp/consul into esm-changes
2017-10-26 19:20:24 -07:00
Kyle Havlovitz
5589eadcf5
Added Coordinate.Node rpc endpoint and client api method
2017-10-26 19:16:40 -07:00
Frank Schroeder
ca9aac746f
agent: add /v1/coordianate/node/:node endpoint
...
This patch adds a /v1/coordinate/node/:node endpoint to get the network
coordinates for a single node in the network.
Since Consul Enterprise supports network segments it is still possible
to receive mutiple entries for a single node - one per segment.
2017-10-26 14:24:42 +02:00
Frank Schroeder
b4d8c26194
docker: add comment about "connection reset by peer" error
2017-10-26 12:14:19 +02:00
Frank Schroeder
164ec3ec39
docker: stop previous check on replace
2017-10-26 12:03:07 +02:00
Frank Schroeder
e774b46f82
docker: close idle connections on stop
2017-10-26 12:02:39 +02:00
Frank Schroeder
94726ef105
docker: do not alloc a tty since this is not interactive
2017-10-26 11:56:54 +02:00
Frank Schroeder
a1b47d99c1
docker: make sure to log the error when we fall through
2017-10-26 11:56:36 +02:00
Frank Schroeder
51a18c2557
docker: ignore "connection reset by peer"
...
The Docker agent closes the connection during read after we have
read the body. This causes a "connection reset by peer" even though
the command was successful.
We ignore that error here since we got the correct status code
and a response body.
2017-10-26 11:56:08 +02:00
Kyle Havlovitz
ce4e8c46fa
Add deregister critical service field and refactor duration parsing
2017-10-25 19:17:41 -07:00
Kyle Havlovitz
291455f475
Added coordinate update http endpoint
2017-10-25 19:37:30 +02:00
Kyle Havlovitz
d56936e27a
Added remaining HTTP health check fields to structs
2017-10-25 19:37:30 +02:00
Kyle Havlovitz
a7c42a6c2a
Expose SkipNodeUpdate field and some health check info in the http api
2017-10-25 19:37:30 +02:00
Frank Schroeder
d14adc6b4d
fix go vet issue
2017-10-25 19:30:35 +02:00
Frank Schroeder
96fdbd00a6
replace custom unique id with a UUID
2017-10-25 19:30:35 +02:00
Frank Schroeder
8f145559d8
Decouple the code that executes checks from the agent
2017-10-25 11:18:07 +02:00
Frank Schroeder
1cb8b0ffe3
local state: fix go vet issue
2017-10-23 10:56:05 +02:00
Frank Schroeder
7335c34c32
local state: remove stale comment
2017-10-23 10:56:05 +02:00
Frank Schroeder
3d547e30c7
local state: make test more robust
2017-10-23 10:56:05 +02:00
Frank Schroeder
52e73301f6
local state: clone check to avoid side effect
2017-10-23 10:56:05 +02:00
Frank Schroeder
6bc9d66192
local state: use synchronized access to internal maps
2017-10-23 10:56:05 +02:00
Frank Schroeder
cc0499da3d
ae: do not trigger on Resume while holding the lock
2017-10-23 10:56:05 +02:00
Frank Schroeder
92f136de12
ae: add remaining test cases
2017-10-23 10:56:05 +02:00
Frank Schroeder
622ace2829
ae: refactor StateSyncer to state machine for better testing
2017-10-23 10:56:05 +02:00
Frank Schroeder
1212598ae2
ae: add test that we run a full before a partial sync
2017-10-23 10:56:05 +02:00
Frank Schroeder
4431e222fe
ae: make control flow more explicit
2017-10-23 10:56:05 +02:00
Frank Schroeder
3231385089
ae: fix typo in constructor name
2017-10-23 10:56:05 +02:00
Frank Schroeder
51daa96dfe
ae: add test for resume triggering SyncChanges
2017-10-23 10:56:05 +02:00
Frank Schroeder
92088d21e8
ae: add test for ifNotPausedRun
2017-10-23 10:56:05 +02:00
Frank Schroeder
11e172d1e9
ae: make stagger function pluggable for testing
2017-10-23 10:56:05 +02:00
Frank Schroeder
e2452efed8
ae: restore previous pause/resume behavior
2017-10-23 10:56:04 +02:00
Frank Schroeder
aba072bd1d
ae: ensure that syncs are blocked when paused
2017-10-23 10:56:04 +02:00
Frank Schroeder
58d52ac580
local state: rename Add{Check,Service}State to Set{Check,Service}State
2017-10-23 10:56:04 +02:00
Frank Schroeder
e144f51b29
local state: move Metadata methods together
2017-10-23 10:56:04 +02:00
Frank Schroeder
4f9e05f634
local state: update documentation of updateSyncState
2017-10-23 10:56:04 +02:00
Frank Schroeder
41c7b0927e
local state: update comments
2017-10-23 10:56:04 +02:00
Frank Schroeder
de57b16d99
local state: address review comments
...
* move non-blocking notification mechanism into ae.Trigger
* move Pause/Resume into separate type
2017-10-23 10:56:04 +02:00
Frank Schroeder
5c77c59501
local state: refactor TestAgentAntiEntropy_EnableTagOverride
...
Make intent clearer by being more explicit and adding some comments.
Use verify.Values to compare service entries.
2017-10-23 10:56:04 +02:00
Frank Schroeder
524981f367
local state: fix TestAgentAntiEntropy_EnableTagOverride
...
The test had a race condition where it relied on the first service to be
synced to the remote catalog which sometimes failed.
2017-10-23 10:56:04 +02:00
Frank Schroeder
1181aaee6a
local state: rename tests
2017-10-23 10:56:04 +02:00
Frank Schroeder
1602ac56b5
local state: drop retry loops from tests
...
Since the tests are now using synchronous calls for state syncing
we no longer need to use retry loops to wait for the changes to
propagate.
2017-10-23 10:56:04 +02:00
Frank Schroeder
7e3adc4549
agent: skip non-sensical TestCatalogRegister
...
It is not clear what this test is supposed to verify.
2017-10-23 10:56:04 +02:00
Frank Schroeder
71c74e62c7
local state: fix anti-entropy state tests
...
The anti-entropy tests relied on the side-effect of the StartSync()
method to perform a full sync instead of a partial sync. This lead to
multiple anti-entropy go routines being started unnecessary retry loops.
This change changes the behavior to perform synchronous full syncs when
necessary removing the need for all of the time.Sleep and most of the
retry loops.
2017-10-23 10:56:04 +02:00
Frank Schroeder
37b95ef98e
local state: fix test with updated error message
2017-10-23 10:56:04 +02:00
Frank Schroeder
d2cc0e6e8a
local state: fix failing tests
2017-10-23 10:56:03 +02:00
Frank Schroeder
b803bf3091
local state: tests compile
2017-10-23 10:56:03 +02:00
Frank Schroeder
0a9ac9749e
local state: replace multi-map state with structs
...
The state of the service and health check records was spread out over
multiple maps guarded by a single lock. Access to the maps has to happen
in a coordinated effort and the tests often violated this which made
them brittle and racy.
This patch replaces the multiple maps with a single one for both checks
and services to make the code less fragile.
This is also necessary since moving the local state into its own package
creates circular dependencies for the tests. To avoid this the tests can
no longer access internal data structures which they should not be doing
in the first place.
The tests still don't compile but this is a ncessary step in that
direction.
2017-10-23 10:56:03 +02:00
Frank Schroeder
6027a9e2a5
local state: move to separate package
...
This patch moves the local state to a separate package to further
decouple it from the agent code.
The code compiles but the tests do not yet.
2017-10-23 10:56:03 +02:00
Frank Schroeder
c00bbdb5e4
agent: simplify some loops
2017-10-23 10:56:03 +02:00
Frank Schroeder
cbaf97bced
agent: refactor sync loop to linear flow of control
2017-10-23 10:56:03 +02:00
Frank Schroeder
94ef1041a1
agent: cleanup StateSyncer
...
This patch cleans up the state syncer code by renaming fields, adding
helpers and documentation.
2017-10-23 10:56:03 +02:00
Frank Schroeder
29e18c7494
agent: decouple anti-entropy from local state
...
The anti-entropy code manages background synchronizations of the local
state on a regular basis or on demand when either the state has changed
or a new consul server has been added.
This patch moves the anti-entropy code into its own package and
decouples it from the local state code since they are performing
two different functions.
To simplify code-review this revision does not make any optimizations,
renames or refactorings. This will happen in subsequent commits.
2017-10-23 10:56:03 +02:00
Frank Schroeder
2e7ed2fd86
Merge pull request #3585 from hashicorp/document-runtime-config
...
Moving the previous `agent/config.go` documentation to
`agent/config/runtime.go`.
2017-10-23 10:51:22 +02:00
Frank Schroeder
5bfb2808f9
Merge pull request #3598 from hashicorp/issue-3397-error-with-extra-flags
...
The `consul agent` command was ignoring extra command line arguments
which can lead to confusion when the user has for example forgotten to
add a dash in front of an argument or is not using an `=` when setting
boolean flags to `true`. `-bootstrap true` is not the same as
`-bootstrap=true`, for example.
Since all command line flags are known and we don't expect unparsed
arguments we can return an error. However, this may make it slightly
more difficult in the future if we ever wanted to have these kinds of
arguments.
Fixes #3397
2017-10-23 10:47:04 +02:00
Frank Schroeder
81917ee675
Merge pull request #3600 from hashicorp/support-go-sockaddr-for-dns-recursors
...
DNS recursors can be added through go-sockaddr templates. Entries
are deduplicated while the order is maintained.
Originally proposed by @taylorchu
See #2932
2017-10-23 10:45:36 +02:00
Frank Schroeder
e5d5e6429b
Revert "config: add support for go-sockaddr templates for DNS recursors"
...
This reverts commit 72bee6284d
.
2017-10-23 10:08:35 +02:00
Frank Schroeder
0e360cc3b5
Revert "config: do not allow an ANY address as DNS recursor"
...
This reverts commit 1db8d3cb00
.
2017-10-23 10:08:35 +02:00
Frank Schroeder
58b0e153f9
Revert "agent: decouple anti-entropy from local state"
...
This reverts commit a842dc9c2b
.
2017-10-23 10:08:35 +02:00
Frank Schroeder
b4e7d0b974
Revert "agent: cleanup StateSyncer"
...
This reverts commit b7136e100b
.
2017-10-23 10:08:35 +02:00
Frank Schroeder
26a155eb41
Revert "agent: refactor sync loop to linear flow of control"
...
This reverts commit 7a2af206ea
.
2017-10-23 10:08:35 +02:00
Frank Schroeder
91569a7ceb
Revert "agent: simplify some loops"
...
This reverts commit b5dbad910c
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
67a0689f71
Revert "local state: move to separate package"
...
This reverts commit d447e823c6
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
623e07760a
Revert "local state: replace multi-map state with structs"
...
This reverts commit ccbae7da5b
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
9ed4b2d631
Revert "local state: tests compile"
...
This reverts commit 1af52bf7be
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
b3bfeee100
Revert "local state: fix failing tests"
...
This reverts commit 76682da4a0
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
5ae4c52ca6
Revert "local state: fix test with updated error message"
...
This reverts commit e9149f64d9
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
67cdfc038e
Revert "local state: fix anti-entropy state tests"
...
This reverts commit f8e20cd996
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
fca0df59fb
Revert "agent: skip non-sensical TestCatalogRegister"
...
This reverts commit ce1f35373e
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
556bf3f85d
Revert "local state: drop retry loops from tests"
...
This reverts commit 2bdba8ab06
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
a3aa864d5b
Revert "local state: rename tests"
...
This reverts commit ff62eaf063
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
39615cb57b
Revert "local state: fix TestAgentAntiEntropy_EnableTagOverride"
...
This reverts commit 86f7ea6013
.
2017-10-23 10:08:34 +02:00
Frank Schroeder
9fdea75d99
Revert "local state: refactor TestAgentAntiEntropy_EnableTagOverride"
...
This reverts commit c28e23eac8
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
46641e44d9
Revert "local state: address review comments"
...
This reverts commit 1d315075b1
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
abd83f2d28
Revert "local state: update comments"
...
This reverts commit 42188164f8
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
c6e441dd60
Revert "local state: update documentation of updateSyncState"
...
This reverts commit e86521e637
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
648b4da4f8
Revert "local state: move Metadata methods together"
...
This reverts commit 9bc8127728
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
fa45a6a547
Revert "local state: rename Add{Check,Service}State to Set{Check,Service}State"
...
This reverts commit 9280841a80
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
e95d22b9a8
Revert "ae: ensure that syncs are blocked when paused"
...
This reverts commit ffb265dd93
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
23a9ac9d56
Revert "ae: restore previous pause/resume behavior"
...
This reverts commit 126046be23
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
93d03595d1
Revert "ae: make stagger function pluggable for testing"
...
This reverts commit 066ad01c38
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
3d202b59bc
Revert "ae: add test for ifNotPausedRun"
...
This reverts commit f5177ef332
.
2017-10-23 10:08:33 +02:00
Frank Schroeder
e0e96496f1
Revert "ae: add test for resume triggering SyncChanges"
...
This reverts commit cd0262744d
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
cab3b17292
Revert "ae: fix typo in constructor name"
...
This reverts commit e88f49e2cc
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
25ed78c8f7
Revert "ae: make control flow more explicit"
...
This reverts commit b9a8b53d52
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
65166cce8e
Revert "ae: add test that we run a full before a partial sync"
...
This reverts commit 8158cec829
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
e78520c3f9
Revert "ae: refactor StateSyncer to state machine for better testing"
...
This reverts commit 8a45365f68
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
4121cafed7
Revert "ae: add remaining test cases"
...
This reverts commit c32915bb4f
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
f8202f300f
Revert "ae: do not trigger on Resume while holding the lock"
...
This reverts commit bd00814301
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
d6f52d9ed1
Revert "local state: use synchronized access to internal maps"
...
This reverts commit 39a2d8d25e
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
4e862d126d
Revert "local state: clone check to avoid side effect"
...
This reverts commit af1243c725
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
42af4cdc70
Revert "local state: make test more robust"
...
This reverts commit f9267380db
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
4ae8317fbf
Revert "local state: remove stale comment"
...
This reverts commit 35f4acdddc
.
2017-10-23 10:08:32 +02:00
Frank Schroeder
eb0f2036a3
Revert "config: document telemetry options"
...
This reverts commit 7fede4472d
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
63402a3103
Revert "config: document http options"
...
This reverts commit 5f59857448
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
721cb8d561
Revert "config: document dns options"
...
This reverts commit 5e57e9273e
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
f3ed813f03
Revert "config: document autopilot options"
...
This reverts commit 7685ef409c
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
c4662e4806
Revert "config: document acl options"
...
This reverts commit 7396bd31fd
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
807831446a
Revert "config: document config options"
...
This reverts commit a38c69d784
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
29616e969a
Revert "config: document more acl options"
...
This reverts commit 2682ce0b82
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
3667a882ef
Revert "config: document more config options"
...
This reverts commit bf81cdea6e
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
522dce2602
Revert "config: document more config options"
...
This reverts commit 9864609201
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
22f3c7cb0a
Revert "config: document remaining config options"
...
This reverts commit 0ed4561f12
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
0693082d40
Revert "config: address review comments"
...
This reverts commit f6e9ad99ec
.
2017-10-23 10:08:31 +02:00
Frank Schroeder
223fae7d92
Revert "fix go vet issue"
...
This reverts commit 078e50b635
.
2017-10-23 10:00:26 +02:00
Frank Schröder
6aa9372792
Revert "config: rename test struct field to args"
...
This reverts commit f2a291a470
.
2017-10-23 09:58:37 +02:00
Frank Schröder
1073de49db
Revert "config: return error on extra command line arguments ( #3397 )"
...
This reverts commit ce935cef55
.
2017-10-23 09:58:37 +02:00
Frank Schroeder
078e50b635
fix go vet issue
2017-10-23 08:13:52 +02:00
Frank Schroeder
ce935cef55
config: return error on extra command line arguments ( #3397 )
...
The `consul agent` command was ignoring extra command line arguments
which can lead to confusion when the user has for example forgotten to
add a dash in front of an argument or is not using an `=` when setting
boolean flags to `true`. `-bootstrap true` is not the same as
`-bootstrap=true`, for example.
Since all command line flags are known and we don't expect unparsed
arguments we can return an error. However, this may make it slightly
more difficult in the future if we ever wanted to have these kinds of
arguments.
Fixes #3397
2017-10-23 08:08:09 +02:00
Frank Schroeder
f2a291a470
config: rename test struct field to args
2017-10-23 08:08:09 +02:00
Frank Schroeder
b97ab367f4
config: return error on extra command line arguments ( #3397 )
...
The `consul agent` command was ignoring extra command line arguments
which can lead to confusion when the user has for example forgotten to
add a dash in front of an argument or is not using an `=` when setting
boolean flags to `true`. `-bootstrap true` is not the same as
`-bootstrap=true`, for example.
Since all command line flags are known and we don't expect unparsed
arguments we can return an error. However, this may make it slightly
more difficult in the future if we ever wanted to have these kinds of
arguments.
Fixes #3397
2017-10-23 08:07:48 +02:00
Frank Schroeder
1fef7f4b67
config: rename test struct field to args
2017-10-23 08:07:48 +02:00
Frank Schroeder
f6e9ad99ec
config: address review comments
2017-10-23 08:06:26 +02:00
Frank Schroeder
0ed4561f12
config: document remaining config options
2017-10-23 08:06:26 +02:00
Frank Schroeder
9864609201
config: document more config options
2017-10-23 08:06:26 +02:00
Frank Schroeder
bf81cdea6e
config: document more config options
2017-10-23 08:06:26 +02:00
Frank Schroeder
2682ce0b82
config: document more acl options
2017-10-23 08:06:26 +02:00
Frank Schroeder
a38c69d784
config: document config options
2017-10-23 08:06:26 +02:00
Frank Schroeder
7396bd31fd
config: document acl options
2017-10-23 08:06:26 +02:00
Frank Schroeder
7685ef409c
config: document autopilot options
2017-10-23 08:06:26 +02:00
Frank Schroeder
5e57e9273e
config: document dns options
2017-10-23 08:06:26 +02:00
Frank Schroeder
5f59857448
config: document http options
2017-10-23 08:06:26 +02:00
Frank Schroeder
7fede4472d
config: document telemetry options
2017-10-23 08:06:26 +02:00
Frank Schroeder
21a7d399bd
config: address review comments
2017-10-23 08:05:47 +02:00
Frank Schroeder
cf0a571a76
config: document remaining config options
2017-10-23 08:04:03 +02:00
Frank Schroeder
149ab13a13
config: document more config options
2017-10-23 08:04:03 +02:00
Frank Schroeder
a8f709a875
config: document more config options
2017-10-23 08:04:03 +02:00
Frank Schroeder
6c64cf9b5d
config: document more acl options
2017-10-23 08:04:03 +02:00
Frank Schroeder
ffb0f6ec8b
config: document config options
2017-10-23 08:04:03 +02:00
Frank Schroeder
70270d6d98
config: document acl options
2017-10-23 08:04:03 +02:00
Frank Schroeder
7f214b1e1c
config: document autopilot options
2017-10-23 08:04:03 +02:00
Frank Schroeder
cfc891fc25
config: document dns options
2017-10-23 08:04:03 +02:00
Frank Schroeder
d27617c60b
config: document http options
2017-10-23 08:04:03 +02:00
Frank Schroeder
625713dd72
config: document telemetry options
2017-10-23 08:04:03 +02:00
Frank Schroeder
35f4acdddc
local state: remove stale comment
2017-10-23 08:03:18 +02:00
Frank Schroeder
f9267380db
local state: make test more robust
2017-10-23 08:03:18 +02:00
Frank Schroeder
af1243c725
local state: clone check to avoid side effect
2017-10-23 08:03:18 +02:00
Frank Schroeder
39a2d8d25e
local state: use synchronized access to internal maps
2017-10-23 08:03:18 +02:00
Frank Schroeder
bd00814301
ae: do not trigger on Resume while holding the lock
2017-10-23 08:03:18 +02:00
Frank Schroeder
c32915bb4f
ae: add remaining test cases
2017-10-23 08:03:18 +02:00
Frank Schroeder
8a45365f68
ae: refactor StateSyncer to state machine for better testing
2017-10-23 08:03:18 +02:00
Frank Schroeder
8158cec829
ae: add test that we run a full before a partial sync
2017-10-23 08:03:18 +02:00
Frank Schroeder
b9a8b53d52
ae: make control flow more explicit
2017-10-23 08:03:18 +02:00
Frank Schroeder
e88f49e2cc
ae: fix typo in constructor name
2017-10-23 08:03:18 +02:00
Frank Schroeder
cd0262744d
ae: add test for resume triggering SyncChanges
2017-10-23 08:03:18 +02:00
Frank Schroeder
f5177ef332
ae: add test for ifNotPausedRun
2017-10-23 08:03:18 +02:00
Frank Schroeder
066ad01c38
ae: make stagger function pluggable for testing
2017-10-23 08:03:18 +02:00
Frank Schroeder
126046be23
ae: restore previous pause/resume behavior
2017-10-23 08:03:18 +02:00
Frank Schroeder
ffb265dd93
ae: ensure that syncs are blocked when paused
2017-10-23 08:03:18 +02:00
Frank Schroeder
9280841a80
local state: rename Add{Check,Service}State to Set{Check,Service}State
2017-10-23 08:03:18 +02:00
Frank Schroeder
9bc8127728
local state: move Metadata methods together
2017-10-23 08:03:18 +02:00
Frank Schroeder
e86521e637
local state: update documentation of updateSyncState
2017-10-23 08:03:18 +02:00
Frank Schroeder
42188164f8
local state: update comments
2017-10-23 08:03:18 +02:00
Frank Schroeder
1d315075b1
local state: address review comments
...
* move non-blocking notification mechanism into ae.Trigger
* move Pause/Resume into separate type
2017-10-23 08:03:18 +02:00
Frank Schroeder
c28e23eac8
local state: refactor TestAgentAntiEntropy_EnableTagOverride
...
Make intent clearer by being more explicit and adding some comments.
Use verify.Values to compare service entries.
2017-10-23 08:03:18 +02:00
Frank Schroeder
86f7ea6013
local state: fix TestAgentAntiEntropy_EnableTagOverride
...
The test had a race condition where it relied on the first service to be
synced to the remote catalog which sometimes failed.
2017-10-23 08:03:18 +02:00
Frank Schroeder
ff62eaf063
local state: rename tests
2017-10-23 08:03:18 +02:00
Frank Schroeder
2bdba8ab06
local state: drop retry loops from tests
...
Since the tests are now using synchronous calls for state syncing
we no longer need to use retry loops to wait for the changes to
propagate.
2017-10-23 08:03:18 +02:00
Frank Schroeder
ce1f35373e
agent: skip non-sensical TestCatalogRegister
...
It is not clear what this test is supposed to verify.
2017-10-23 08:03:18 +02:00
Frank Schroeder
f8e20cd996
local state: fix anti-entropy state tests
...
The anti-entropy tests relied on the side-effect of the StartSync()
method to perform a full sync instead of a partial sync. This lead to
multiple anti-entropy go routines being started unnecessary retry loops.
This change changes the behavior to perform synchronous full syncs when
necessary removing the need for all of the time.Sleep and most of the
retry loops.
2017-10-23 08:03:18 +02:00
Frank Schroeder
e9149f64d9
local state: fix test with updated error message
2017-10-23 08:03:18 +02:00
Frank Schroeder
76682da4a0
local state: fix failing tests
2017-10-23 08:03:18 +02:00
Frank Schroeder
1af52bf7be
local state: tests compile
2017-10-23 08:03:18 +02:00
Frank Schroeder
ccbae7da5b
local state: replace multi-map state with structs
...
The state of the service and health check records was spread out over
multiple maps guarded by a single lock. Access to the maps has to happen
in a coordinated effort and the tests often violated this which made
them brittle and racy.
This patch replaces the multiple maps with a single one for both checks
and services to make the code less fragile.
This is also necessary since moving the local state into its own package
creates circular dependencies for the tests. To avoid this the tests can
no longer access internal data structures which they should not be doing
in the first place.
The tests still don't compile but this is a ncessary step in that
direction.
2017-10-23 08:03:18 +02:00
Frank Schroeder
d447e823c6
local state: move to separate package
...
This patch moves the local state to a separate package to further
decouple it from the agent code.
The code compiles but the tests do not yet.
2017-10-23 08:03:18 +02:00
Frank Schroeder
b5dbad910c
agent: simplify some loops
2017-10-23 08:03:18 +02:00
Frank Schroeder
7a2af206ea
agent: refactor sync loop to linear flow of control
2017-10-23 08:03:18 +02:00
Frank Schroeder
b7136e100b
agent: cleanup StateSyncer
...
This patch cleans up the state syncer code by renaming fields, adding
helpers and documentation.
2017-10-23 08:03:18 +02:00
Frank Schroeder
a842dc9c2b
agent: decouple anti-entropy from local state
...
The anti-entropy code manages background synchronizations of the local
state on a regular basis or on demand when either the state has changed
or a new consul server has been added.
This patch moves the anti-entropy code into its own package and
decouples it from the local state code since they are performing
two different functions.
To simplify code-review this revision does not make any optimizations,
renames or refactorings. This will happen in subsequent commits.
2017-10-23 08:03:18 +02:00
Frank Schroeder
1db8d3cb00
config: do not allow an ANY address as DNS recursor
2017-10-23 08:01:25 +02:00
Frank Schroeder
72bee6284d
config: add support for go-sockaddr templates for DNS recursors
...
DNS recursors can be added through go-sockaddr templates. Entries
are deduplicated while the order is maintained.
Originally proposed by @taylorchu
See #2932
2017-10-23 08:01:25 +02:00
James Phillips
23d4b24792
Cleans up import sorting.
2017-10-21 20:08:11 -07:00
Hadar Greinsmark
7e1a860978
Implement HTTP Watch handler ( #3413 )
...
Implement HTTP Watch handler
2017-10-21 20:39:09 -05:00