Commit Graph

931 Commits

Author SHA1 Message Date
Chavez 31c9829751 Test agent RPC client connection retries 2016-04-01 19:17:38 -07:00
Chavez f201b4b565 command: Data directory permission error message
* Check for invalid data directory permissions
* Display appropriate permissions error message
* Add command test for bad data directory permissions
2016-04-01 19:17:38 -07:00
Sean Chittenden 45bd128f12 Rely exclusively on error to signal failure
Pointed out by: slackpad
2016-04-01 10:34:45 -07:00
Sean Chittenden 7a814fce63 Print a helpful message re: duplicate addresses
IP sockets provide nice endpoints where the kernel will fail to bind and will error out saying socket already in use.  UNIX sockets, however, don't enjoy this nice property when cleaning up stale sockets on listen.  Given the number of addresses in Consul, provide operators with a helpful message that indicates the source of the reused address.

Before this fix, it was possible for the HTTP socket to unlink the RPC socket, leading to confusing blocked behavior when running commands like `consul info`.

```
% cat tmp.config.json
{
    "addresses": {
	"http": "unix:///tmp/.consul.sock",
	"rpc": "unix:///tmp/.consul.sock"
    },
    "unix_sockets": {
	"mode": "0700"
    }
}
% consul agent -config-file tmp.config.json -advertise=127.0.0.1 -data-dir=/tmp/
==> All listening endpoints must be unique: HTTP address already configured for RPC
Exit 1
```
2016-04-01 10:20:45 -07:00
Sean Chittenden 5994c9efbf skip_leave_on_int's default changes based on agent mode
`skip_leave_on_int`'s behavior now changes based on whether or not the agent is acting as a client or server.

Fixes: 1687
2016-03-31 17:45:14 -07:00
Sean Chittenden ec9b9be736 Guard against a node name containing pure whitespace for real 2016-03-31 15:10:19 -07:00
Sean Chittenden ff529ffa40 Guard against a node name containing pure whitespace 2016-03-31 15:02:58 -07:00
Sean Chittenden 583abab552 Node names are not allowed to be empty 2016-03-31 14:47:55 -07:00
Sean Chittenden 53380f8e92 Change tests to accept an "at least this many" answers semantic
The size of answers vary based on the target platform.  Accomodate this variance.
2016-03-30 11:48:32 -07:00
Sean Chittenden 7a7063c072 Fix tests
I'm not sure how I thought this passed last night, it was obviously wrong.
2016-03-30 10:16:05 -07:00
Sean Chittenden 19721f5c3d Editorialize the comment re: UDPAnswerLimit
Prodded by: slackpad & fusiondog
2016-03-30 01:15:40 -07:00
Sean Chittenden 5ba7e74bb8 Use table-driven test for response limits
Much more exhaustive testing and shows where the limits are of the 512B limitation (quering by ID is less space efficient than querying by just a prepared query or service).
2016-03-30 01:05:49 -07:00
Sean Chittenden 0cb965f901 Remove duplicate paste-o
Pointed out by: slackpad
2016-03-29 23:31:31 -07:00
Sean Chittenden ce88cde7b0 Test services and PQT limits 2016-03-29 23:08:58 -07:00
Sean Chittenden e1e441fdee Improve the use of constants across DNS tests 2016-03-29 23:08:40 -07:00
Sean Chittenden c2d4354563 Use a non-default config value 2016-03-29 23:06:31 -07:00
Sean Chittenden 1dd4234683 Test missing config inputs
Alpha sort where appropriate to make it easier to keep in sync in the future.
2016-03-29 23:06:17 -07:00
Sean Chittenden 69696a9c1b Correctly detect that an answer has been truncated 2016-03-29 19:52:31 -07:00
Sean Chittenden efe940e7c4 Remove dead and incorrect code
This functionality is handled further upstream in `trimUDPAnswers()`
2016-03-29 19:38:26 -07:00
Sean Chittenden c5c8daf07a Trim UDP responses per configuration 2016-03-29 19:27:21 -07:00
Sean Chittenden 9fb64ab114 Allow adjusting the number of DNS records in a response...
Based on work done by @fusiondog in #1583, extend the concept to use an integer instead of a boolean.

Fixes: #1583 && #1481
2016-03-29 19:23:56 -07:00
Patrick Feliciano 74623c372a Adding singleton option to DNS for getaddrinfo bug. 2016-03-29 19:23:07 -07:00
Sean Chittenden a92cda7bcd Fix whitespace alignment in a comment 2016-03-23 16:00:39 -07:00
James Phillips 77eb95ddd8 Merge pull request #1861 from hashicorp/b-flaky-test
Widens coordinate update sleeps in unit tests.
2016-03-21 18:24:05 -07:00
James Phillips cd7b3d4b49 Widens coordinate update sleeps in unit tests. 2016-03-21 18:23:11 -07:00
Hrishikesh Barua 9f9aa5084b Added help text for -dev option #1804 2016-03-21 17:27:57 +05:30
Wim b5d45322b4 Allow [::] as a bind address (binds to first public IPv6 address) 2016-03-18 23:59:44 +01:00
James Phillips 6e2c106006 Merge pull request #1819 from hashicorp/f-check-accept
Adds default set of accept headers for HTTP checks.
2016-03-09 21:12:25 -08:00
James Phillips 4cb16808f4 Adds default set of accept headers for HTTP checks. 2016-03-09 21:11:20 -08:00
James Phillips 5c80647e34 Tweaks algorithm so it's safe with an empty list and adds a PQ test. 2016-03-08 23:09:09 -08:00
Igor Dubinskiy 3a25860270 Make sure UDP DNS responses aren't larger than allowed 2016-03-07 16:41:17 -08:00
James Phillips 98784c6416 Updates to latest compiled ui assets. 2016-03-07 13:49:08 -08:00
James Phillips eb7004f2b8 Renames "debug" endpoint and structures to "explain". 2016-03-07 10:45:39 -08:00
James Phillips d7288e3a5e Adds a prepared query debug endpoint. 2016-03-07 10:45:39 -08:00
James Phillips f46fa33278 Tweaks formatting of inline output messages. 2016-03-02 19:47:00 -08:00
James Phillips 70575002d9 Retains the last output when a TTL check times out. 2016-03-02 17:58:01 -08:00
James Phillips 7ebad899da Adds a new PUT-based TTL check update endpoint. 2016-03-02 17:54:01 -08:00
Stefan Engstrom 525cb0abc1 add accept header */* for agent check 2016-02-19 10:31:00 -06:00
James Phillips 052140f8a7 Merge pull request #1703 from alistanis/fix-issue-#1661
fixes issue #1661 and adds supporting test
2016-02-16 20:13:36 -08:00
James Phillips e79dd7c8de Fixes redirect from / to /ui when internal UI is enabled. 2016-02-12 16:11:32 -08:00
Chris Cooper 2c6f873ecd add missing test 2016-02-09 10:49:41 -05:00
Chris Cooper fe0e3aaaa0 fixes issue #1661 and adds supporting test 2016-02-09 10:35:39 -05:00
James Phillips 56cbabff63 Adds a sanity check to the local node info compare. 2016-02-07 15:07:23 -08:00
James Phillips d2cc2801fa Merge pull request #1698 from hashicorp/pr-1547-slackpad
Implements WAN address translation.
2016-02-07 14:26:04 -08:00
James Phillips 607728ddca Adds a test to make sure we get the local address within the DC. 2016-02-07 14:16:15 -08:00
James Phillips 524aaae9b7 Increases wait to account for random stagger. 2016-02-07 13:56:45 -08:00
James Phillips 6790930c4e Factors address translation into a single function. 2016-02-07 13:39:37 -08:00
James Phillips 4be2ab1a75 Moves tagged wan address to be managed by anti-entropy, not serf. 2016-02-07 13:12:42 -08:00
James Phillips b59599742d Adds a test to make sure the local sync doesn't clobber tagged addresses. 2016-02-07 11:26:19 -08:00
James Phillips c60a526fde Sets up config for more address tags down the road, renames struct members. 2016-02-07 10:37:34 -08:00
Evan Gilman de8fd561d0 Use a map for additional node addresses 2016-02-06 23:01:45 -08:00
Evan Gilman 2f26771bb1 Add tests for consul WAN translation 2016-02-06 23:01:45 -08:00
Evan Gilman 146f719a66 Explicitly set advertise address in agent tests
Otherwise, the tests will fail when run on a machine with multiple
private addresses
2016-02-06 23:01:45 -08:00
Evan Gilman a3240d28ba Consider WAN addresses during Node and SRV record lookup 2016-02-06 23:01:45 -08:00
Evan Gilman 496cf5ae73 Implement `translate_wan_addrs` config option
This knob tells consul whether it should prefer the WAN address (if set)
when making service lookups in remote datacenters. This enables
reachability for remote services which are behind a NAT.
2016-02-06 23:01:45 -08:00
Evan Gilman 8fa2a60208 Rectify value of `AdvertiseAddrWan` when set elsewhere
`AdvertiseAddrs` has been introduced as a configuration option, which
duplicates a few other options, namely `AdvertiseAddrWan`. We need to
use this value elsewhere, so rather than doing a precedence check every
time we need to access it, rectify the value of `AdvertiseAddrWan` to
match
2016-02-06 23:01:45 -08:00
James Phillips ed8a71efd7 Store WanAddress during Service/Check sync 2016-02-06 23:01:45 -08:00
James Phillips 507c83bdbd Merge pull request #1690 from alistanis/use-http-package-statuses
refactors http server error codes
2016-02-06 22:38:48 -08:00
James Phillips d60be51f01 Merge pull request #1284 from nbrownus/telemetry
Option to disable hostnames from telemetry
2016-02-06 22:00:14 -08:00
James Phillips 7bc2ba4c18 Merge pull request #1654 from ryanslade/invalid-check-message
Updated invalid check error message.
2016-02-05 17:21:29 -08:00
Chris Cooper 5a07e89bb9 Merge branch 'master' of https://github.com/alistanis/consul into use-http-package-statuses 2016-02-05 17:30:43 -05:00
Chris Cooper e2065e10c0 add comment codes 2016-02-05 17:06:42 -05:00
Chris Cooper 00dd9d6b78 refactors http server error codes to use the http statuses defined in the http package instead of literals 2016-02-05 16:51:31 -05:00
Sean Chittenden 8deec17f73 Use panic instead of returning a sentinel UUID values in unit tests 2016-02-01 16:42:04 -08:00
Sean Chittenden 7af6a94edb Factor out duplicate functions into a lib package
Consolidate code duplication and tests into a single lib package.  Most of these functions were from various **/util.go functions that couldn't be imported due to cyclic imports.  The consul/lib package is intended to be a terminal node in an import DAG and a place to stash various consul-only helper functions.  Pulled in hashicorp/go-uuid instead of consolidating UUID access.
2016-01-29 16:57:45 -08:00
Nate Brown 43a4f3fe02 Option to disable hostnames from telemetry 2016-01-29 13:44:48 -08:00
Ryan Slade dd98602bd7 Updated invalid check error message.
Added some of the newer reasons this error could have occured.
2016-01-28 11:02:00 +02:00
James Phillips f24a044755 Fixes the static asset generator for new pkg path, updates assets. 2016-01-15 10:21:42 -08:00
Seth Vargo cae0ff354a Use HTTPS + www. where appropriate 2016-01-13 17:44:01 -05:00
James Phillips 71e3901a65 Merge pull request #1592 from hashicorp/b-reap
Adds support for the reap lock.
2016-01-13 09:37:54 -08:00
James Phillips 343838f12b Adds support for the reap lock. 2016-01-12 21:10:25 -08:00
Matt McCoy 9cbed7f89e Add consul agent help for advertise-wan 2016-01-11 14:27:54 -05:00
James Phillips c1fe9092ed Merge pull request #1550 from hashicorp/f-devmode
Add a `-dev` mode for easy prototyping
2016-01-05 10:01:41 -08:00
Philippe M. Chiasson a2eddcab38 remove address splitting 2016-01-05 11:49:40 -05:00
Philippe M. Chiasson 21345a8a7f Move logged client IP to the end of the log message 2015-12-30 15:39:34 -05:00
Philippe M. Chiasson 34c36d9205 Merge branch 'master' of http://github.com/hashicorp/consul into issue/1447/http-access-logs 2015-12-30 15:38:30 -05:00
Ryan Uber 9002bfa37d agent: enable ui for dev mode 2015-12-26 20:39:42 -05:00
Ryan Uber afafae53fd consul: dev mode works 2015-12-26 20:19:36 -05:00
Ryan Uber 87c1283b73 agent: update assetfs output 2015-12-24 22:21:34 -05:00
Ryan Uber 3cf6a173a5 agent: static UI is configurable 2015-12-24 22:21:34 -05:00
Ryan Uber 2d7ced22b3 agent: initial web assets 2015-12-24 22:21:34 -05:00
Ryan Uber c3e7c98da2 agent: compile web assets into consul binary 2015-12-24 22:21:34 -05:00
Philippe M. Chiasson 9553ac0ca8 Merge branch 'master' of http://github.com/hashicorp/consul into issue/1447/http-access-logs 2015-12-22 14:55:18 -05:00
James Phillips d61661a98f Adds a Bool helper function. 2015-12-22 10:43:32 -08:00
James Phillips e80d1a58fb Moves logger down where it's used for reaping. 2015-12-22 10:29:55 -08:00
James Phillips 0b1c346990 Changes sense of option to "reap" and uses nil for "not set". 2015-12-22 10:28:10 -08:00
James Phillips 2b257c922e Adds child process reaping when Consul is running as PID 1. 2015-12-21 21:47:35 -08:00
James Phillips 651f255b9b Converts the DNS metric to a gauge which gives us a count and a time. 2015-12-21 18:25:09 -08:00
James Phillips a4dc11167f Adds telemetry on number of DNS queries served, per-agent. 2015-12-21 17:01:28 -08:00
WangFenjin 29c0516d58 Fix typo 2015-12-08 17:45:01 +08:00
James Phillips a61d89d0e6 Removes the GOMAXPROCS warnings which are obsolete for Go 1.5+. 2015-11-25 17:59:16 -08:00
Philippe M. Chiasson 65512cae73 Add client ip to http access logs
Fixes #1447
2015-11-24 15:06:33 -05:00
James Phillips 95c708f65e Adds Docker checks support to client API.
Also changed `DockerContainerId` to `DockerContainerID`, and updated the agent
API docs to reflect their support for Docker checks.
2015-11-18 07:40:02 -08:00
James Phillips 049da2cef2 Breaks up huge HTTP endpoint functions. 2015-11-17 09:16:04 -08:00
James Phillips cd6be4a88d Avoids taking the length again when parsing DNS queries. 2015-11-17 08:40:47 -08:00
James Phillips e1ce1a34b0 Moves conversion of nil slices up to HTTP layer for prepared queries. 2015-11-15 17:06:00 -08:00
James Phillips 4715c04c98 Adds a test to make sure a stale retry terminates. 2015-11-15 17:06:00 -08:00
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