Commit Graph

6500 Commits

Author SHA1 Message Date
Preetha Appan 00836a6aab Remove server address tracking logic from manager/router and maintain it as part of lan event listener instead. Used sync.Map to track this, and added unit tests 2017-08-30 09:30:33 -05:00
Preetha Appan 830aca958a ServerAddressProvider interface also returns an error now 2017-08-30 09:30:33 -05:00
Preetha Appan c68fce89b5 Use config struct to create NetworkTransport layer when setting up raft 2017-08-30 09:30:33 -05:00
Preetha Appan 393ce1581b Implement AddressProvider and wire that up to raft transport layer to support server nodes changing their IP addresses in containerized environments 2017-08-30 09:30:33 -05:00
Frank Schroeder 5ded0fbf4e build: fix scripts/dist.sh
* get OSS version from version/version.go
* fix indenting to two spaces
2017-08-30 13:40:18 +02:00
Frank Schroeder f25632d6a1 build: drop 'consul' build tag for OSS build 2017-08-30 13:40:18 +02:00
Frank Schroeder 831d84c940 build: make tests independent of build tags
When the metadata server is scanning the agents for potential servers
it is parsing the version number which the agent provided when it
joined. This version number has to conform to a certain format, i.e.
'n.n.n'. Without this version number properly set some tests fail with
error messages that disguise the root cause.

The default version number is currently set to 'unknown' in
version/version.go which does not parse and triggers the tests to fail.
The work around is to use a build tag 'consul' which will use the
version number set in version_base.go instead which has the correct
format and is set to the current release version.

In addition, some parts of the code also require the version number to
be of a certain value. Setting it to '0.0.0' for example makes some
tests pass and others fail since they don't pass the semantic check.

When using go build/install/test one has to remember to use '-tags
consul' or tests will fail with non-obvious error messages.

Using build tags makes the build process more complex and error prone
since it prevents the use of the plain go toolchain and - at least in
its current form - introduces subtle build and test issues. We should
try to eliminate build tags for anything else but platform specific
code.

This patch removes all references to specific version numbers in the
code and tests and sets the default version to '9.9.9' which is
syntactically correct and passes the semantic check. This solves the
issue of running go build/install/test without tags for the OSS build.
2017-08-30 13:40:18 +02:00
James Phillips 58b79d43b7
Updates the change log. 2017-08-29 15:33:48 -07:00
James Phillips 110e700d59 Merge pull request #3428 from hashicorp/go-1.9
Upgrades Go version to 1.9.
2017-08-29 15:33:04 -07:00
James Phillips c9fc331361
Upgrades Go version to 1.9. 2017-08-29 15:32:34 -07:00
Brian Shumate fe915938c7 API DOCS: Update snapshot curl example (#3423) 2017-08-29 09:05:00 -07:00
Frank Schroeder a0b974620c
doc: document that retry-join values are URL encoded
Fixes #3417
2017-08-26 15:19:43 +02:00
Frank Schroeder e22aa7a251
doc: fix parameter name for aws retry-join
Fixes #3417
2017-08-26 15:19:34 +02:00
James Phillips cc2f734a0c Update CHANGELOG.md 2017-08-25 00:14:44 -07:00
Preetha Appan 5ca1c12005 Updating CHANGELOG 2017-08-24 16:50:22 -05:00
preetapan bf54195ab8 Merge pull request #3416 from hashicorp/issue_3409
Update raft library for windows snapshot fsync fixes. 

This fixes #3409
2017-08-24 16:46:06 -05:00
Preetha Appan 30fd0d25a5 Update raft library for windows snapshot fsync fixes. This fixes #3409 2017-08-24 16:44:05 -05:00
James Phillips 2277e69bac Update CHANGELOG.md 2017-08-23 14:37:39 -07:00
Frank Schroeder d155fc3cc1
Update CHANGELOG.md 2017-08-23 22:40:43 +02:00
Frank Schroeder d8195b3a4d agent: drop status code comments 2017-08-23 22:36:23 +02:00
Frank Schroeder f09a8bb1b6 agent: use http.StatusRequestEntityTooLarge instead of 413 2017-08-23 22:36:23 +02:00
Frank Schroeder bc5dc32c1d agent: use http.StatusInternalServerError instead of 500 2017-08-23 22:36:23 +02:00
Frank Schroeder fa121be33f agent: use http.StatusMethodNotAllowed instead of 405 2017-08-23 22:36:23 +02:00
Frank Schroeder ad5c1d9e72 agent: use http.StatusNotFound instead of 404 2017-08-23 22:36:23 +02:00
Frank Schroeder 1a557ee9e9 agent: use http.StatusForbidden instead of 403 2017-08-23 22:36:23 +02:00
Frank Schroeder 7e2bc1b411 agent: use http.StatusUnauthorized instead of 401 2017-08-23 22:36:23 +02:00
Frank Schroeder 5d1546b052 agent: use http.StatusBadRequest instead of 400 2017-08-23 22:36:23 +02:00
Frank Schroeder 01eae2e9cf doc: document cloud auto-joining for retry-join-wan 2017-08-23 21:23:34 +02:00
Frank Schroeder 14ab5c7641 agent: support go-discover retry-join for wan 2017-08-23 21:23:34 +02:00
Frank Schroeder ad82659eed vendor: upgrade github.com/hashicorp/go-discover
Pull in improved debug logging for AWS
2017-08-23 21:23:34 +02:00
Frank Schroeder 0516deff0c
doc: fix operator keyring delete method 2017-08-23 17:20:10 +02:00
Frank Schröder a3934c263c acl: consolidate error handling (#3401)
The error handling of the ACL code relies on the presence of certain
magic error messages. Since the error values are sent via RPC between
older and newer consul agents we cannot just replace the magic values
with typed errors and switch to type checks since this would break
compatibility with older clients.

Therefore, this patch moves all magic ACL error messages into the acl
package and provides default error values and helper functions which
determine the type of error.
2017-08-23 16:52:48 +02:00
James Phillips 91dfa3d31d Update CHANGELOG.md 2017-08-21 15:31:40 -07:00
James Phillips c060635b82 Update CHANGELOG.md 2017-08-21 15:31:24 -07:00
Frank Schroeder 16c58da27d agent: drop unused code
This code from http://github.com/hashicorp/consul/pull/3353 is no longer
required.
2017-08-22 00:02:46 +02:00
Frank Schroeder bf96857b17 dns: replace nameserver lookup with consistent rpc call
This patch replaces the code which determines the list of servers in the
current cluster with an RPC call to get the list of active consul
service instances which only run on servers.

This replaces the previous implementation which was more complex and
relied on serf messages which can provide a different view than the
consistent response from the raft log.

As a side effect it makes the implementation independent of the server
and the agent which means it works consistently across both. Different
behavior for server and agent was the root cause for the bug in
http://github.com/hashicorp/consul/issue/3047.

Fixes #3407
2017-08-22 00:02:46 +02:00
Frank Schroeder 4052c6d2d2 dns: split node lookup from request handling 2017-08-22 00:02:46 +02:00
Frank Schroeder d4e3d4344a dns: refactor label by unrolling loop 2017-08-22 00:02:46 +02:00
Frank Schroeder 70be1ab635 dns: move ttl closer to usage 2017-08-22 00:02:46 +02:00
Preetha Appan 642fcd4611 Update CHANGELOG.md 2017-08-18 11:22:35 -05:00
preetapan 15e0647176 Merge pull request #3395 from Illirgway/patch-1
Fix bug with unused (replaced with "") CONSUL_HTTP_AUTH in some places

This fixes #3392
2017-08-18 11:18:24 -05:00
preetapan 2ffca8cac9 Merge pull request #3404 from zevin/master
Added configuration instructions for forwarding DNS queries from Unbound
2017-08-18 10:29:39 -05:00
Kevin Bidwell 9cae329c27 Added configuration instructions for forwarding DNS queries from Unbound to consul. 2017-08-18 08:45:43 -06:00
Preetha Appan c9d5e17410 Update serf to pick up fixes for fsyncing snapshots and panic when coordinates are disabled 2017-08-17 16:35:06 -05:00
Frank Schroeder ee2cc7aaca
doc: update check example for agent api call 2017-08-16 18:24:28 +02:00
Frank Schröder e0924704d5 doc: add method and header to agent API docs for HTTP checks (#3400) 2017-08-16 18:18:46 +02:00
Preetha Appan b51645739f Update CHANGELOG.md 2017-08-16 09:39:10 -05:00
preetapan 3327abdbf4 Merge pull request #3396 from hashicorp/memberlist_deadlock
Update memberlist for a deadlock fix
2017-08-15 18:08:40 -05:00
Preetha Appan 0e73777ce2 Update memberlist for a deadlock fix 2017-08-15 18:07:28 -05:00
Illirgway e0cc1ce679 Fix bug with unused (replaced with "") CONSUL_HTTP_AUTH in some places
example: https://github.com/hashicorp/consul/blob/master/watch/plan.go#L26

	conf := consulapi.DefaultConfig()
	conf.Address = address
	conf.Datacenter = p.Datacenter
	conf.Token = p.Token                             # <-- replace Token from DefaultConfig/CONSUL_HTTP_AUTH with ""
	client, err := consulapi.NewClient(conf)

how to reproduce bug:
0. consul -> localhost:8500 with more than 0 service checks
1. deny all for anonymous token
2. create appropriate acl <token> for watch checks (agent:read + node:read,service:read)
3. bash:
CONSUL_HTTP_AUTH=<token> consul watch -http-addr=localhost:8500 -type=checks # --> return []
consul watch -http-addr=localhost:8500 -type=checks -token=<token> # -> return { .... right json result .... }
2017-08-16 01:51:18 +03:00