James Phillips
67fd4fa78d
Returns a 404 from a get or execute of a nonexistent query.
2015-11-15 17:06:00 -08:00
James Phillips
e9480ecb02
Plumbs the service name back and uses agent-specific TTL settings as a fallback.
2015-11-15 17:06:00 -08:00
James Phillips
81b43135f9
Adds unit tests for prepared queries and DNS, using existing tests for equivalence.
2015-11-15 17:06:00 -08:00
James Phillips
4a0a60af55
Adds DNS support for prepared queries (needs tests).
2015-11-15 17:06:00 -08:00
James Phillips
5e7523ea4b
Adds a slightly more flexible mock system so we can test DNS.
2015-11-15 17:06:00 -08:00
James Phillips
da20e6668b
Adds a note about obfuscating query name/ID from the logs.
2015-11-15 17:06:00 -08:00
James Phillips
57be55103c
Adds an HTTP endpoint for prepared queries.
2015-11-15 17:06:00 -08:00
James Phillips
989619cb6b
Moves DNS over to new shuffle and filter functions.
2015-11-15 17:06:00 -08:00
James Phillips
c248b0017a
Fixes nil slices from HTTP endpoints.
...
These would manifest in the HTTP output as Javascript nulls instead of
empty lists, so we had unintentionally changed the interface while
porting to the new state store. We added code to each HTTP endpoint to
convert nil slices to empty ones so they JSON-ify properly, and we added
tests to catch this in the future.
2015-11-14 21:05:37 -08:00
James Phillips
8defe75387
Merge pull request #1293 from talwai/master
...
Add options to send telemetry to DogStatsD
2015-11-13 09:51:50 -08:00
talwai
f6f2e19c6c
Kill unused import in command.go
2015-11-13 11:14:15 -05:00
James Phillips
98731f7272
Fixes unit test fail due to expected truncated message.
2015-11-12 18:16:44 -08:00
talwai
bc12c5e711
Add DogStatsd configuration
2015-11-11 14:30:36 -05:00
James Phillips
3d1702969f
Fixes a go vet finding.
2015-10-29 12:47:20 -07:00
James Phillips
d06fc28a0a
Prevents agents from considering Raft information when doing sync checks.
2015-10-28 14:32:00 -07:00
James Phillips
c0bd639662
Makes the version upshift code look at the correct version field.
2015-10-27 14:44:34 -07:00
Diptanu Choudhury
ab7ab8e58e
Merge pull request #1343 from hashicorp/f-docker-check
...
Docker Support for Consul Health Checks
2015-10-26 21:00:48 -07:00
Diptanu Choudhury
3d68d06ac7
Forcing the Env variable to empty while testing the default shell logic
2015-10-26 20:35:13 -07:00
Diptanu Choudhury
2fdcf1ae28
Added a test for selecting shell from env
2015-10-26 20:21:50 -07:00
Diptanu Choudhury
471442e9a4
Making an explicit check to test whether a check is of type Monitor
2015-10-26 19:52:32 -07:00
Diptanu Choudhury
1e240b5c59
Fixed the tests
2015-10-26 18:20:02 -07:00
Diptanu Choudhury
f0c783d1a8
Added a test to check if we are properly truncating docker exec outputs
2015-10-26 18:06:55 -07:00
Diptanu Choudhury
582786523a
Added a test for exit code 1 with docker exec
2015-10-26 16:58:09 -07:00
Diptanu Choudhury
9efbd1affa
Fixed the Fake Docker client to simulate Exec start failures
2015-10-26 16:54:51 -07:00
Diptanu Choudhury
423f7fbcac
Not adding the docker check if we couldn't create the client
2015-10-26 16:45:12 -07:00
Diptanu Choudhury
f5f5ed0c79
Making sure the script is not empty if it's a docker check
2015-10-26 16:27:48 -07:00
Diptanu Choudhury
b4af7f44af
Updated the comment for CheckType
2015-10-26 15:28:13 -07:00
Diptanu Choudhury
4c1818eb61
Collect and truncate the output from docker exec
2015-10-26 15:19:35 -07:00
Diptanu Choudhury
5f8f531d2a
Defaulting to Monitor check
2015-10-26 15:02:23 -07:00
Diptanu Choudhury
809e9f5284
Extracted the logic of figuring out the shell and fixing the logic to find out if the check is a Docker check
2015-10-26 15:00:34 -07:00
Diptanu Choudhury
31cdf4fe64
Added some tests for docker check
2015-10-26 12:59:40 -07:00
James Phillips
f6b589d768
Merge pull request #1296 from hashicorp/f-fast-sync
...
agent: remove an N^2 check. See #1265
2015-10-26 11:37:52 -07:00
Diptanu Choudhury
40f72a8323
Marking the state of a service as critical if the Docker Daemon doesn't respond while running checks
2015-10-26 11:16:11 -07:00
Diptanu Choudhury
d695012e40
Adding a debug log to indicate the exit code of failed check
2015-10-26 10:35:51 -07:00
Diptanu Choudhury
83db728133
Registering the Exec with Docker Daemon everytime the check is invoked
2015-10-26 10:23:57 -07:00
Diptanu Choudhury
71ede8addb
Implemented Docker health checks
2015-10-26 10:23:57 -07:00
James Phillips
088603949c
Runs go fmt (sorts new go-cleanhttp imports).
2015-10-23 17:14:35 -07:00
James Phillips
ecd3a1d1d2
Completes rebase of network coordinates to new memdb.
2015-10-23 15:23:01 -07:00
James Phillips
439110f384
Gives RTT class a more Go-like name.
2015-10-23 15:23:01 -07:00
James Phillips
99cfbb8a47
Defaults second node to agent if not given. Removes -short option and tweaks output formatting.
2015-10-23 15:23:01 -07:00
James Phillips
88845f7d71
Cleans up after code review, adds a -short option to "consul rtt" command.
2015-10-23 15:23:01 -07:00
James Phillips
fb8900156a
Adds a "consul rtt" command.
2015-10-23 15:23:01 -07:00
James Phillips
660da92152
Makes the default protocol 2 and lets 3 interoperate with 2.
2015-10-23 15:23:01 -07:00
James Phillips
e21b450f69
Runs go fmt after latest rebase.
2015-10-23 15:23:01 -07:00
James Phillips
e8322ffe00
Adds a test for the `DisableCoordinate` config.
2015-10-23 15:23:01 -07:00
James Phillips
f9da231a1c
Adds coordinate of agent to self endpoint.
2015-10-23 15:23:01 -07:00
James Phillips
6289764ea2
Moves sorting up into coordinate endpoint HTTP handlers.
2015-10-23 15:23:01 -07:00
James Phillips
d45fc23abf
Installs a friendly handler for coordinate endpoints when coordinates are disabled.
2015-10-23 15:23:01 -07:00
James Phillips
ce0e9759f8
Fixes config merge fn for disabling coordinates and adds it to JSON.
2015-10-23 15:23:01 -07:00
James Phillips
33e3505aea
Adds endpoints for raw network coordinates.
2015-10-23 15:23:01 -07:00
James Phillips
9c9195746f
Changes ?near=self to a safer ?near=_agent, which is also clearer about what it does.
2015-10-23 15:23:01 -07:00
James Phillips
9caa5b3653
Adds distance sorting to health endpoint. Cleans up unit tests.
2015-10-23 15:23:01 -07:00
James Phillips
e47eea3f3a
Adds a magic "self" node name to distance queries.
2015-10-23 15:23:01 -07:00
James Phillips
54ef97b268
Adds tests for HTTP interface. Removes a stray mark.
2015-10-23 15:23:01 -07:00
James Phillips
89c7203f31
Adds coordinate sorting support to catalog queries for nodes and service nodes.
2015-10-23 15:23:01 -07:00
James Phillips
d734697820
Turns down the coordinate sync rate a bit more.
2015-10-23 15:23:01 -07:00
James Phillips
ad65d953f6
Scales coordinate sends to hit a fixed aggregate rate across the cluster.
2015-10-23 15:23:01 -07:00
James Phillips
66a3d29743
Simplifies the batching function and adds some comments.
2015-10-23 15:23:01 -07:00
James Phillips
5f754c4a87
Does some small cleanups based on PR feedback.
...
* Holds coordinate updates in map and gets rid of the update channel.
* Cleans up config variables a bit.
2015-10-23 15:23:01 -07:00
James Phillips
7e6d52109b
Hardens Consul from bad coordinates from other nodes.
2015-10-23 15:23:01 -07:00
James Phillips
d12aa2ffab
Moves batching down into the state store and changes it to fail-fast.
...
* A batch of updates is done all in a single transaction.
* We no longer need to get an update to kick things, there's a periodic flush.
* If incoming updates overwhelm the configured flush rate they will be dumped with an error.
2015-10-23 15:23:01 -07:00
James Phillips
b9d5fb0f90
Flips the sense of the coordinate enable option.
2015-10-23 15:23:01 -07:00
James Phillips
92567841d6
Removes one more WAN leftover.
2015-10-23 15:23:01 -07:00
James Phillips
86b112fe31
Does a clean up pass on the Consul side.
2015-10-23 15:23:01 -07:00
James Phillips
01d2452ea3
Merges config changes after rebase.
2015-10-23 15:23:01 -07:00
Derek Chiang
f144d17b1c
Address comments
2015-10-23 15:23:01 -07:00
Derek Chiang
ab9262c656
Add a test case
2015-10-23 15:23:01 -07:00
Derek Chiang
bf5cb7522f
Use IndexedCoordinate instead
2015-10-23 15:23:01 -07:00
Derek Chiang
a1854a7614
Some fixes
2015-10-23 15:23:01 -07:00
Derek Chiang
a338e5efe8
Fix a comment
2015-10-23 15:23:01 -07:00
Derek Chiang
98d87b5dd5
Complete logic for sending coordinates
2015-10-23 15:23:01 -07:00
Derek Chiang
9113b26286
Some fixes
2015-10-23 15:23:01 -07:00
Derek Chiang
a9ea503c69
Adding tests and stuff
2015-10-23 15:23:01 -07:00
Armon Dadgar
6a350d5d19
Merge pull request #1318 from daveadams/f-http-header-token
...
Allow specifying Consul token in an HTTP request header
2015-10-22 13:33:47 -07:00
Jeff Mitchell
1e3840b044
Update cleanhttp repo location
2015-10-22 14:14:22 -04:00
Jeff Mitchell
9a5fd5424a
Use cleanhttp to get rid of DefaultTransport
2015-10-22 10:47:50 -04:00
David Adams
b7bcb2a414
Add HTTP request header X-Consul-Token
...
Add support for an X-Consul-Token HTTP request header to specify the
token with which this request should be fulfilled. The header would have
precedence over the responding Agent's default token, but would have
lower precedence than a token specified in the query string.
2015-10-19 11:26:01 -05:00
James Phillips
4ee43e90b7
Deletes the old state store and all its accoutrements.
2015-10-15 14:59:09 -07:00
James Phillips
0c90bdc61a
Knocks out the Raft indexes before doing compare.
2015-10-15 14:59:09 -07:00
James Phillips
d57431e300
Gets new structs changes to compile, adds some corner case handling and extra unit tests.
2015-10-15 14:59:09 -07:00
Ryan Uber
d6af59cded
Merge pull request #1309 from hashicorp/f-remove-migrate
...
Removes consul-migrate for 0.6
2015-10-15 14:50:19 -07:00
Jeff Mitchell
f49fc095ef
Don't use http.DefaultClient
...
Two of the changes are in tests; the one of consequence is in the API.
As explained in #1308 this can cause conflicts with downstream programs.
Fixes #1308 .
2015-10-15 17:49:35 -04:00
Ryan Uber
de287e3efb
agent: consolidates data dir checker
2015-10-15 14:21:35 -07:00
Ryan Uber
10b971df21
agent: test mdb dir protection
2015-10-15 14:15:41 -07:00
Ryan Uber
d901fa6389
agent: remove migrator, refuse to start if mdb dir found
2015-10-15 14:15:08 -07:00
Armon Dadgar
d137a5fa82
agent: remove an N^2 check. See #1265
2015-10-12 20:30:11 -07:00
Michael Puncel
a98d25b541
Add http method to log output
2015-10-02 18:33:06 -07:00
James Phillips
0b05dbeb21
Merge pull request #1235 from wuub/master
...
fix conflict between handleReload and antiEntropy critical sections
2015-09-17 07:28:39 -07:00
Wojciech Bederski
c4537ed26f
panic when unbalanced localState.Resume() is detected
2015-09-17 11:32:08 +02:00
Dale Wijnand
5a28ebcaa3
Fix a bunch of typos.
2015-09-15 13:22:08 +01:00
James Phillips
2f9ebdb135
Merge pull request #1187 from sfncook/enable_tag_drift_03
...
Enable tag drift 03
2015-09-11 15:35:32 -07:00
Anthony Scalisi
10e028d599
remove various typos
2015-09-11 12:29:54 -07:00
Wojciech Bederski
b014c0f91b
make Pause()/Resume()/isPaused() behave more like a semaphore
...
see: https://github.com/hashicorp/consul/issues/1173 #1173
Reasoning: somewhere during consul development Pause()/Resume() and
PauseSync()/ResumeSync() were added to protect larger changes to
agent's localState. A few of the places that it tries to protect are:
- (a *Agent) AddService(...) # part of the method
- (c *Command) handleReload(...) # almost the whole method
- (l *localState) antiEntropy(...)# isPaused() prevents syncChanges()
The main problem is, that in the middle of handleReload(...)'s
critical section it indirectly (loadServices()) calls AddService(...).
AddService() in turn calls Pause() to protect itself against
syncChanges(). At the end of AddService() a defered call to Resume() is
made.
With the current implementation, this releases
isPaused() "lock" in the middle of handleReload() allowing antiEntropy
to kick in while configuration reload is still in progress.
Specifically almost all services and probably all check are unloaded
when syncChanges() is allowed to run.
This in turn can causes massive service/check de-/re-registration,
and since checks are by default registered in the critical state,
a majority of services on a node can be marked as failing.
It's made worse with automation, often calling `consul reload` in close
proximity on many nodes in the cluster.
This change basically turns Pause()/Resume() into P()/V() of
a garden-variety semaphore. Allowing Pause() to be called multiple times,
and releasing isPaused() only after all matching/defered Resumes() are
called as well.
TODO/NOTE: as with many semaphore implementations, it might be reasonable
to panic() if l.paused ever becomes negative.
2015-09-11 18:28:06 +02:00
Wojciech Bederski
24bc17eaa1
failing test showing that nested Pause()/Resume() release too early
...
see: #1173 / https://github.com/hashicorp/consul/issues/1173
2015-09-11 17:52:57 +02:00
Shawn Cook
66fd8fb2a0
Rename EnableTagOverride and update formatting
2015-09-11 08:35:29 -07:00
Shawn Cook
d7ce0b3c6b
Remove debug lines
2015-09-11 08:32:59 -07:00
Shawn Cook
0b3faf6e4a
Merge remote-tracking branch 'hashicorp/master' into enable_tag_drift_03
2015-09-10 14:55:30 -07:00
James Phillips
27c59f7b30
Adds missing token to maint unit test.
2015-09-10 14:53:00 -07:00
Shawn Cook
35f276f25d
Add test cases TestAgentAntiEntropy_EnableTagDrift
2015-09-10 14:08:16 -07:00
Ryan Uber
1908c16f53
Merge pull request #1230 from hashicorp/f-maintfix
...
Respect tokens in maintenance mode
2015-09-10 12:30:07 -07:00
Ryan Uber
039938a7e0
agent: testing node/service maintenance using tokens
2015-09-10 12:08:08 -07:00
Ryan Uber
125d7fd4ee
agent: thread tokens through for maintenance mode
2015-09-10 11:43:59 -07:00
Wim
0bc4d9322e
Allow AAAA queries for nodeLookup
2015-09-08 16:54:36 +02:00
Ryan Breen
446c640c17
Merge pull request #1217 from 42wim/fix-rfc2308-part3
...
No NXDOMAIN when the answer is empty
2015-09-04 10:42:38 -04:00
Armon Dadgar
5cb6ab625e
Merge pull request #1214 from zendesk/fix_lock_race_2
...
lock.go: fix another race condition
2015-09-02 16:04:55 -07:00
Wim
2701bb5cc2
No NXDOMAIN when the answer is empty
2015-09-02 16:12:22 +02:00
Ryan Breen
80d26f9156
Merge pull request #1167 from railsguru/master
...
Add -http-port option to change the HTTP API port
2015-09-02 01:15:55 -04:00
Armon Dadgar
52a8a95af9
agent: Always enable the UI endpoints
2015-09-01 18:28:32 -07:00
Michael S. Fischer
43ab372a18
lock.go: fix another race condition
...
The previous fix to `consul lock` (commit 6875e8d
) didn't completely
eliminate the race that could occur if the lock was acquired around the
same time SIGTERM was received: It was still possible for
Run() to spawn the process via startChild() after killChild() had
released the shared mutex.
Now, when SIGTERM is received, we acquire a mutex that prevents
spawning a new process and never release it.
We've tested this fix pretty thoroughly and believe it completely
resolves the issue.
2015-09-01 14:27:23 -07:00
Wim
4a1dc90cba
Limit the DNS responses after getting the NodeRecords
2015-09-01 23:23:05 +02:00
Ryan Breen
f41b79eff2
Merge pull request #1195 from 42wim/fix-rfc2308-part2
...
Return SOA/NXDOMAIN when the answer is empty
2015-09-01 17:08:31 -04:00
Wim
369982270d
Return SOA/not found when the answer is empty
2015-09-01 22:28:12 +02:00
James Phillips
26ce9d16be
Merge pull request #1200 from ryotarai/lock-pass-stdin
...
command/lock: Pass stdin to child process when -pass-stdin passed.
2015-08-31 21:14:45 -07:00
Ryan Uber
11e4cfd72b
agent: reload SCADA client if endpoint changes
2015-08-27 13:29:07 -07:00
Ryan Uber
c468acf222
command: atlas endpoint can be passed
2015-08-27 11:11:05 -07:00
Ryan Uber
1cc2429364
agent: atlas_endpoint is configurable
2015-08-27 11:08:01 -07:00
Ryota Arai
33a6cde7dd
command/lock: Pass stdin to child process when -pass-stdin passed.
2015-08-26 16:27:21 +09:00
Ryan Uber
5ad8bfbd41
agent: log a message when making a new scada connection
2015-08-25 21:03:16 -07:00
Ryan Uber
4b715a7d2c
agent: don't reload scada client if there is no config change
2015-08-25 20:43:57 -07:00
Ryan Uber
ed70720d55
agent: testing scada client creation in command
2015-08-25 20:22:22 -07:00
Ryan Uber
52a7206ff3
agent: test scada HTTP server creation
2015-08-25 18:51:04 -07:00
Ryan Uber
eb8974160f
agent: clean up scada connection manager
2015-08-25 18:27:07 -07:00
Ryan Uber
87c1e4fcd3
agent: document the scada http creation func
2015-08-25 17:19:11 -07:00
Ryan Uber
2e6ccded2c
agent: scada client and HTTP server are tracked separately
2015-08-25 16:59:53 -07:00
Andy Lo-A-Foe
85321301e1
Remove duplicate code
2015-08-20 20:46:20 +02:00
Andy Lo-A-Foe
3e046d3efc
Use Ports.HTTP directly
2015-08-20 20:27:20 +02:00
Andy Lo-A-Foe
4e2c3373bc
Add documentation for http-port option
2015-08-20 20:19:35 +02:00
Shawn Cook
ab91590bcb
Update tests - NodeService init needs bool
2015-08-20 09:09:26 -07:00
Shawn Cook
96785edd9a
Add EnableTagDrift logic to command/agent/local.go
2015-08-18 14:03:48 -07:00
Shawn Cook
a0f8c0a2a0
Remove from command/agent/config_test.go
2015-08-18 10:42:25 -07:00
Shawn Cook
6a835939b8
EnableTagDrift in NodeService struct
2015-08-18 10:34:55 -07:00
Ryan Uber
134db62937
Merge pull request #1166 from hashicorp/f-dns-log
...
Log network address of DNS clients
2015-08-13 18:32:32 -07:00
Ryan Uber
05216d3cc4
agent: log network address of DNS clients
2015-08-11 10:33:27 -07:00
Andy Lo-A-Foe
7b5da2a240
Add -http-port option to change the HTTP API port
...
This is useful when pushing consul to PaaS like
Cloud Foundry making the HTTP API easily routable.
2015-08-11 14:14:21 +02:00
Armon Dadgar
066e772536
Merge pull request #1158 from mfischer-zd/fix_1155
...
lock.go: fix race condition
2015-08-05 14:56:13 -07:00
Michael S. Fischer
6875e8d6b4
lock.go: fix race condition
...
Fix a race condition between startChild() and killChild() that could
lead to an orphaned managed process.
Fixes #1155
2015-08-05 09:06:51 -07:00
J.R. Garcia
4cb6f3e943
Remove trailing slash from lock
...
Lock command will remove trailing slash from path (as it is invalid).
Fixes #1136 .
2015-07-30 12:14:17 -05:00
Ryan Breen
018fd69aa2
Merge pull request #1143 from hashicorp/GH-1142
...
Check NXDOMAIN after filtering nodes
2015-07-29 18:56:08 -04:00
Ryan Breen
0a7dc85076
Test for GH-1142.
2015-07-29 18:21:16 -04:00
Armon Dadgar
0363d4b54b
Merge pull request #1137 from 42wim/fix-1124
...
Recurse when PTR answer is empty
2015-07-29 14:39:04 -07:00
Ryan Breen
42648438a0
Check NXDOMAIN after filtering nodes
...
Move the check for NXDOMAIN below the service health filter.
2015-07-29 17:16:48 -04:00
Ryan Uber
93c9c87f7a
Merge pull request #1141 from hashicorp/f-travis
...
Try moving to newer Travis-CI infrastructure
2015-07-28 10:42:56 -07:00
Ryan Uber
40f3e3fae7
travis-ci: skip syslog tests for container-based travis infra
2015-07-28 09:58:43 -07:00
Wim
5647a37ffe
Recurse when PTR answer is empty
2015-07-27 23:22:36 +02:00
Armon Dadgar
4a9b91f2a2
Merge pull request #1130 from pdf/check_socket
...
Add Socket check type
2015-07-27 14:21:24 -07:00
Ryan Uber
a6317f2fb2
Merge pull request #1090 from hashicorp/f-keyring-acl
...
Keyring ACLs
2015-07-24 10:23:18 -07:00
Peter Fern
b023904298
Add TCP check type
...
Adds the ability to simply check whether a TCP socket accepts
connections to determine if it is healthy. This is a light-weight -
though less comprehensive than scripting - method of checking network
service health.
The check parameter `tcp` should be set to the `address:port`
combination for the service to be tested. Supports both IPv6 and IPv4,
in the case of a hostname that resolves to both, connections will be
attempted via both protocol versions, with the first successful
connection returning a successful check result.
Example check:
```json
{
"check": {
"id": "ssh",
"name": "SSH (TCP)",
"tcp": "example.com:22",
"interval": "10s"
}
}
```
2015-07-24 14:06:05 +10:00
Ryan Uber
7aa8539c10
agent: disable ACLs for RPC client tests
2015-07-23 17:09:33 -07:00
Armon Dadgar
981c62ccba
command/lock: Check for shutdown during lock acquisition. Fixes #800
2015-07-22 16:07:44 -07:00
Benjamin Abbott-Scott
f877b9ecc4
Return every time lock acquisition fails
2015-07-22 10:44:47 -07:00