Commit Graph

2159 Commits

Author SHA1 Message Date
Frank Schroeder b3e94082b0 agent: move registerWatches out of the run method 2017-06-03 19:08:50 +02:00
Frank Schroeder 5c08953449 agent: move telemetry out of the run method 2017-06-03 19:08:50 +02:00
Frank Schroeder 7c8b2be86d agent: move update check out of the run method 2017-06-03 19:08:50 +02:00
Frank Schroeder 055347f7cd agent: simplify signal handling 2017-06-03 19:08:50 +02:00
Frank Schroeder 6262d85dab agent: move config reloading into the agent 2017-06-03 19:08:50 +02:00
Frank Schroeder 02ce45e5bb agent: move parseMetaPair to config and export 2017-06-03 19:08:50 +02:00
Frank Schroeder 34c981ba55 agent: remove agent from command
Decouple command and agent a bit more.
2017-06-03 19:08:50 +02:00
Frank Schroeder 63d336e11c agent: move retry join into agent 2017-06-03 19:08:50 +02:00
Frank Schroeder 488beeb208 agent: add GossipEncrypted function
Remove dead code and expose a GossipEncrypted() method
on the agent instead of accessing the internal delegate.
2017-06-03 19:08:50 +02:00
James Phillips 26677b4117
Cleans up an unrelated vet error. 2017-06-02 21:07:15 -07:00
James Phillips 3795f17b3b
Adds back the port shuffle on agent start retries. 2017-06-02 20:53:20 -07:00
Frank Schroeder d314a539da Do not recurse when the service address is a local cname
Fixes #2795
2017-06-01 18:20:31 +02:00
Frank Schroeder 7f18fe1a5b agent: LastContact cannot be negative (#3067)
The X-Consul-LastContact header cannot be negative.

Fixes #3067
2017-06-01 18:20:12 +02:00
Frank Schroeder dbe8009968
test: replace one more BoolFalse with agent.Bool() 2017-05-31 11:41:17 +02:00
Frank Schroeder 00117ed09b
test: we will not use dev mode for testing for now 2017-05-31 11:34:00 +02:00
Frank Schroeder d14182c2de
test: stagger retry attempts of TestAgent.Start 2017-05-31 11:33:25 +02:00
Frank Schroeder 5224699341
test: make TestAgent setup reusable
Pick the random ports only once and try starting with them
a number of times so that the configuration can be re-used.
This is because the ports are written into the data files
and a subsequent agent reading the files needs to have the
same ports.

For the same reason we do not remove the data directory on
every attempt since this makes it impossible to re-read the
data files.
2017-05-31 11:32:31 +02:00
Frank Schroeder b06c969deb
agent: use agent logger for consul client and deps 2017-05-31 11:05:02 +02:00
Frank Schroeder 2588f22be7
test: start secondary agents also via TestAgent 2017-05-31 10:56:19 +02:00
Frank Schroeder 4e6e9cb05a
agent: set tcpKeepAliveListener when there is no error 2017-05-31 10:24:32 +02:00
Frank Schroeder cfe101ce49
test: use test name as log prefix 2017-05-31 09:54:09 +02:00
Frank Schroeder c587561572
agent: simplify shutdown timeout logging
Note that we are currently timing out every time. This still
needs to be investigated.
2017-05-31 09:41:58 +02:00
Frank Schroeder b220133785
agent: set proto to http since we are logging it now 2017-05-31 09:41:16 +02:00
Frank Schroeder 361b69bb30
test: Use Bool() instead of &BoolTrue/False since 2017-05-31 09:21:01 +02:00
Frank Schroeder bb8a21c385
Address review comments 2017-05-31 01:05:21 +02:00
Frank Schroeder 78cd7a9087
agent: start HTTPS only if there is a cert and key 2017-05-31 00:29:29 +02:00
Frank Schroeder 45a9c2be8b
agent: refactor DNS and HTTP server
* refactor DNS server to be ready for multiple bind addresses
* drop tcpKeepAliveListener since it is default for the HTTP servers
* add startup timeout watcher for HTTP servers identical to DNS server
2017-05-31 00:29:29 +02:00
Frank Schroeder 35757e6c09
test: increase sleep time for test 2017-05-31 00:29:28 +02:00
Frank Schroeder 42ade30551
test: allow tests to control anti-entropy syncs 2017-05-31 00:29:28 +02:00
Frank Schroeder 5735b31ebc
test: run mock dns recursors on random ports 2017-05-31 00:29:28 +02:00
Frank Schroeder d07f2a2542
test: skip tests that use cmd.Run until signal handling is fixed 2017-05-31 00:29:28 +02:00
Frank Schroeder 83d9fb77b7
test: add test for starting/stopping lots of agents 2017-05-31 00:29:28 +02:00
Frank Schroeder dc1548af06
test: use UniqueID prefix for check tests to unify log output 2017-05-31 00:29:28 +02:00
Frank Schroeder 828f40054a
test: improve TestAgent
* don't use retry to try restarting the agent
  this caused some issues when the startup would fail in
  a separate go routine

* clear out the data directory on every retry since the ports
  are stored in the raft data files

* set a unique id for every agent to allow for tracking of
  concurrent output
2017-05-31 00:29:28 +02:00
Frank Schroeder 2b627b95dd
agent: fix logging
* use agent logger for consul/serf/raft/dns/agent/...
* support optional id for concurrent tests
2017-05-31 00:29:27 +02:00
Frank Schroeder a433d13b20
test: call t.Fatal() from main go routine 2017-05-31 00:29:27 +02:00
Frank Schroeder 9d4529972e
dns: do not log socket close during shutdown 2017-05-31 00:29:27 +02:00
Frank Schroeder ae5270a1e1
agent: print more useful shutdown message 2017-05-31 00:29:27 +02:00
Frank Schroeder f53b90c16b
test: start sync after agent start 2017-05-31 00:29:27 +02:00
Frank Schroeder bb3b099d60
test: add test name to output 2017-05-31 00:29:27 +02:00
Frank Schroeder 9fbac59f78
test: perform blocking query on agent 2017-05-31 00:29:27 +02:00
Frank Schroeder 36a2312639
test: parallelize dns test 2017-05-31 00:29:26 +02:00
Frank Schroeder a2b29bea9f
test: fix failing test 2017-05-31 00:29:26 +02:00
Frank Schroeder d0cb508382
test: remove output to stdout 2017-05-31 00:29:26 +02:00
Frank Schroeder 846fe5d630
test: use cli.NewMockUi instead of new(cli.MockUi)
Use the constructor function to prevent a nil panic
if there was no write to the output buffers.
2017-05-31 00:29:26 +02:00
Frank Schroeder ad153f0e76
test: fix data race with endpoints 2017-05-31 00:29:26 +02:00
Frank Schroeder 449eceec11
agent: shutdown delegate if created
When the TestAgent shuts down a half-started agent
the delegate may not have been created at this point.
2017-05-31 00:29:26 +02:00
Frank Schroeder 6a40fe026e
agent: shutdown dns servers on error 2017-05-31 00:29:26 +02:00
Frank Schroeder 60a47addc7
test: Shutdown half-started agent before retrying 2017-05-31 00:29:25 +02:00
Frank Schroeder d1ee368da9
test: fix data race in MockNotify
42 -> 32 data races
2017-05-31 00:29:25 +02:00
Frank Schroeder dba20d02eb
test: run command tests in parallel 2017-05-31 00:29:25 +02:00
Frank Schroeder 48bff52614
test: address pull request comments 2017-05-31 00:29:25 +02:00
Frank Schroeder b9ae289e34
test: remove ACL options from default test config 2017-05-31 00:29:25 +02:00
Frank Schroeder e8651261f9
test: allocate ports in blocks of 10 2017-05-31 00:29:24 +02:00
Frank Schroeder 26474ce9c2
test: refactor command tests to use TestAgent 2017-05-31 00:29:24 +02:00
Frank Schroeder 98ac791577
test: retry a bit more often 2017-05-31 00:29:24 +02:00
Frank Schroeder 6e7cf8c07e
agent: rename *Config vars to 'cfg' 2017-05-31 00:29:24 +02:00
Frank Schroeder 193eec414f
agent: rename *Command vars to 'cmd'
'c' is ambigious and it conflicts with 'config'.
2017-05-31 00:29:24 +02:00
Frank Schroeder 5cdfd3789f
test: rename *Config vars to 'cfg'
'c' is ambigous since Command also uses this
and we want to use 'config' as a package name.
2017-05-31 00:29:24 +02:00
Frank Schroeder f6cc2c3fbb
test: use less aggressive retry for agent startup 2017-05-31 00:29:24 +02:00
Frank Schroeder 51a56cb973
test: use system temp dir for TestAgent 2017-05-31 00:29:24 +02:00
Frank Schroeder adb994a745
test: a.config -> a.Config 2017-05-31 00:29:23 +02:00
Frank Schroeder d64a21d8dc
test: refactor httpTest with TestAgent 2017-05-31 00:29:23 +02:00
Frank Schroeder a02485462e
test: run agent tests in parallel
This brings down the test run from 108 sec to 15 sec.

There is an occasional port conflict because of the nature
the next port is chosen. So far it seems rare enough to live
with it.
2017-05-31 00:29:23 +02:00
Frank Schroeder b05a875119
agent: refactor tests for TestAgent
Refactored tests that use

 * makeAgentXXX
 * makeDNSServerXXX
 * makeHTTPServerXXX
2017-05-31 00:29:23 +02:00
Frank Schroeder 2e829f8917
agent: add TestAgent to replace other mechanisms
TestAgent will replace the following mechanisms to
start test agents in subsequent requests:

 * makeAgentXXX
 * makeDNSServerXXX
 * makeHTTPServerXXX
 * testServer
 * httpTest
2017-05-31 00:29:23 +02:00
Frank Schroeder 76fbe43f56
agent: simplify agent creation
This patch creates an agent with just a config struct
and allows for other fields to be set as required.
2017-05-31 00:29:23 +02:00
Frank Schroeder 8d9f5b9a64
agent: move http/dns endpoints into agent
Move the HTTP and DNS endpoints into the agent and control
their lifespan via the agent.

This removes the requirement to manage HTTP and DNS servers
indpendent of the agent since the agent is mostly useless
without an endpoint and the endpoints without the agent.
2017-05-31 00:29:23 +02:00
Frank Schroeder b2670b2d59
agent: fix comment 2017-05-31 00:29:22 +02:00
Frank Schroeder efeb7d8535
agent: simplify socket address helper 2017-05-31 00:29:22 +02:00
Frank Schroeder ab1a94977d
agent: replace goto with local function 2017-05-31 00:29:22 +02:00
Frank Schroeder 242ad8bb3a
agent: inline uiDir field
uiDir can be inlined as agent.config.UIDir
2017-05-31 00:29:22 +02:00
Frank Schroeder bc657da280
agent: drop logOutput parameter
agent.logOutput is identical to logOutput
2017-05-31 00:29:22 +02:00
Frank Schroeder 3a9f867b9b
agent: drop config argument
agent.config and config are identical.
2017-05-31 00:29:22 +02:00
Kyle Havlovitz e196576c07 Add settings for upshifting to encrypted gossip (#3079) 2017-05-30 08:51:37 -07:00
James Phillips 8ea5a3f791 Removes obsolete agent API documentation. 2017-05-26 10:24:45 -07:00
Frank Schroeder dd7198e7de
doc: update comments and run goimports 2017-05-24 10:20:28 +02:00
Michael Leow ec81c18006
agent: add RetryJoin support for Azure
Pull #2978 from leowmjw/develop

Resolves #2978
2017-05-24 10:15:38 +02:00
James Phillips 759e93122f Merge pull request #2901 from deckarep/consul-ensure-exit-non-zero-on-timeout
Ensure to exit with a non-zero status code when a timeout and all jobs are not completed.
2017-05-18 10:25:50 -04:00
Frank Schroeder 9f4286b1ce
agent: support custom check id and name
This patch adds support for a custom check id and name when
registering a service.

This is achieved by adding a CheckID and a Name field to the
CheckType structure which is used to register checks with a
service and when returning health check definitions.

CheckDefinition is a superset of CheckType which duplicates
some of the fields of CheckType. This patch decouples these
two structures by removing the embedding of CheckType in
CheckDefinition.

Fixes #3047
2017-05-17 20:17:08 +02:00
Frank Schroeder 69125e3a58 agent: move isAddrANY to separate package 2017-05-15 22:44:43 +02:00
Frank Schroeder d6eb1d434f agent: Replace client/server with delegate interface
This patch adds a new internal interface clientServer
which defines the common methods of consul.Client and
consul.Server. This allows to replace the following
code

    if a.server != nil {
        a.server.do()
    } else {
        a.client.do()
    }

with

    a.delegate.do()

In case a specific type is required a type check can
be performed:

    if srv, ok := a.delegate.(*consul.Server); ok {
        srv.doSrv()
    }
2017-05-15 18:35:38 +02:00
Frank Schroeder e350b7aafa agent: allow "::" as IPv6 bind address
Fixes #2285
2017-05-15 17:51:33 +02:00
Frank Schroeder eedf0f3ac5 test: add helper for ioutil.TempDir/TempFile
This creates a simplified helper for temporary directories and files.
All path names are prefixed with the name of the current test.
All files and directories are stored either in /tmp/consul-test
or /tmp if the former could not be created.

Using the system temp dir breaks some tests on macOS where the unix
socket path becomes too long.
2017-05-12 22:12:47 +02:00
Frank Schroeder 29f9b9b22a test: lower wait time for some tests 2017-05-12 22:12:47 +02:00
Frank Schroeder 10622b6995 test: suppress osx firewall warning
macOS displays a firewall warning dialog when an unsigned
application is trying to bind to a non-loopback address.

This patch updates some test configurations to ensure binding
to a loopback address where possible to suppress these warnings.
2017-05-12 22:12:47 +02:00
Frank Schroeder 15590a8446 test: include test name in temp file/dir
This helps identifying hanging tests by looking
at the process list.
2017-05-12 22:12:47 +02:00
Frank Schroeder 49c71f923b test: drop unused code 2017-05-11 17:04:36 +02:00
Frank Schroeder 3e4dc6e133 agent: use bind address as src unless INADDR_ANY
Use the bind address as source address for outgoing
RPC connections unless it is INADDR_ANY.

The current code uses the advertise address which will
not work in certain environments where the advertise
address is not routable in the network of the agent,
e.g. NAT environment, container... After all, that is
the purpose of the advertise address.

See #2822
2017-05-11 00:34:14 +02:00
Frank Schroeder 27e951d213 agent: use helper for INADDR_ANY 2017-05-11 00:34:14 +02:00
Kyle Havlovitz e4af6583f5 Add a path for transitioning to TLS on an existing cluster (#3001)
Fixes #1705
2017-05-10 14:25:48 -07:00
Frank Schroeder e13f3446ac agent: drop atlas/scada code 2017-05-10 23:06:36 +02:00
Frank Schroeder 091bea4922 test: refactor TestAgent_Leave_ACLDeny to use only one server 2017-05-10 17:42:38 +02:00
Frank Schroeder 9b161bdee3 test: use isPermissionDenied 2017-05-10 17:42:38 +02:00
Frank Schroeder 66c6362a70 test: replace blocks and comments with sub-tests 2017-05-10 17:42:38 +02:00
Frank Schroeder b6eccb51c7 test: inline request body encoding 2017-05-10 17:42:38 +02:00
Frank Schroeder 4174cc283b test: add helper for permission denied check 2017-05-10 17:42:38 +02:00
Frank Schroeder 6073c53089 test: drop error check on http.NewRequest
Most URLs are static so the error check is redundant.
The subsequent test wouldn't work if the url is wrong.
2017-05-10 17:42:38 +02:00
Frank Schroeder c1cbecfe18
agent: Disallow :: or [::] as advertise or advertise-wan address 2017-05-09 17:56:16 +02:00
Frank Schroeder 8821793358
agent: Disallow :: and [::] as service address 2017-05-09 17:56:15 +02:00
Frank Schroeder 66e7b414b0
agent: Disallow 0.0.0.0 as advertise or advertise-wan address
Fixes #2961
2017-05-09 17:56:15 +02:00
Frank Schroeder 5b48fec0dd
agent: Disallow 0.0.0.0 as service address
Fixes #2961
2017-05-09 17:56:15 +02:00
James Phillips 6103198732
Tweaks some tests that were having a hard time in Travis CI and
bumps up the default retry time.
2017-05-09 06:48:26 -07:00
James Phillips 518fae04e4
Updates built-in static assets for web UI. 2017-05-08 19:50:54 -07:00
Frank Schroeder 5c6be1cc7a
test: Fix badly formatted retry.Run tests 2017-05-05 17:07:03 +02:00
Frank Schroeder 17f6ecdd12
test: convert remaining WaitForResult tests 2017-05-05 17:07:03 +02:00
James Phillips 7007c89870
retry: Removes the description parameter. 2017-05-05 17:07:03 +02:00
James Phillips b9fb20d0cf
test: Turns off ACLs for catalog and health WAN translation tests.
Since this was doing registration to a foreign DC, it needs extra time
for the route to the ACL datacenter to be set up. ACLs aren't part of
this test, so by disabling them we make this more reliable and converge
faster than if we had added a retry.
2017-05-05 17:07:03 +02:00
James Phillips c77663fe65
test: Moves a variable closer to where it's used. 2017-05-05 17:07:03 +02:00
James Phillips 2e512d6e6d
test: Turns down server health interval for faster convergence.
This fixes the autopilot tests.
2017-05-05 17:07:02 +02:00
Frank Schroeder 9435cadeee
test: Refactor WaitForResult tests with retry
Refactor tests that use testutil.WaitForResult to use retry.

Since this requires refactoring the test functions in general this patch
also shows the use of the github.com/pascaldekloe/goe/verify library
which provides a good mechanism for comparing nested data structures.
Instead of just converting the tests from testutil.WaitForResult to
retry the tests that performing a nested comparison of data structures
are converted to the verify library at the same time.
2017-05-05 17:07:02 +02:00
Frank Schroeder b1e97baacb
Fix imports 2017-05-05 17:07:00 +02:00
Frank Schroeder f894a4cb7d Use bind address as source for outgoing connections (#2822)
This patch configures consul to use the bind address as the
source address for outgoing connections.

Fixes #2822
2017-05-04 01:41:47 +02:00
Frank Schroeder c772cecaab Do not modify config after creation II
Move code for finding the advertise address via a
template into consulConfig() so that the config
object is not modified after creation.
2017-05-04 01:41:47 +02:00
Frank Schroeder 6b96c9ff91 Do not modify config after creation
Make sure the RPCAdvertise address is always set
so that the configuration does not have to be modified
after creation.
2017-05-04 01:41:47 +02:00
Frank Schroeder 8213222931 Move GCE discovery code to command/agent/config_gce.go 2017-05-04 01:41:47 +02:00
Frank Schroeder 39fae5eac2 Move AWS discovery code to command/agent/config_aws.go 2017-05-04 01:41:47 +02:00
Frank Schroeder 3ea54c48a8 Move verifyUniqueListeners to command/agent/config.go 2017-05-04 01:41:47 +02:00
Frank Schroeder a0b98948d8 Cleanup agent config 2017-05-04 01:41:47 +02:00
Damon Buckwalter e9d6f5b3d0 Itty bitty typo 2017-05-02 16:08:07 -07:00
James Phillips a3e1e8e7e5
Updates static assets to pick up #2712. 2017-05-02 10:52:06 -07:00
Kyle Havlovitz b5ed2ba536 Add separate option for verifying incoming HTTPS traffic (#2974)
* Add separate option for verifying incoming HTTPS traffic
2017-04-28 16:15:55 -07:00
Frank Schroeder 1973e66c07 api: Return empty list instead of nil 2017-04-28 15:00:08 -07:00
Frank Schroeder 2bf668b658 api: Add ServiceTags to Health state endpoint (#153)
This patch adds the ServiceTags to the /v1/health/state/<state>
endpoint.

Fixes #153
2017-04-28 15:00:08 -07:00
Frank Schroeder 7f64689828 Faster dev server startup
This patch reduces the timeouts for the development
server so that it starts up almost instantly.
2017-04-28 14:43:44 -07:00
Frank Schroeder 5bbef3b47e Revert "test: Run command/agent tests in parallel"
This reverts commit 17be40a73310e1a0d2461b175f6214381ac41039.
2017-04-27 14:39:04 -07:00
Frank Schroeder 9305c706e0 test: Do not run RetryJoin tests in parallel
I am suspecting port conflicts with the agents
that are started. This needs further investigation.
2017-04-27 14:39:04 -07:00
Frank Schroeder 9a2063bf6f test: Speedup session renew tests 2017-04-27 10:34:30 -07:00
Frank Schroeder 9db74f5a0e test: Speedup Retry*Join tests 2017-04-27 10:34:30 -07:00
Frank Schroeder 58e0b5cb70 test: Run command/agent tests in parallel 2017-04-27 10:34:30 -07:00
Kyle Havlovitz 42cf797ad9 Add TLS cipher suite options and CA path support (#2963)
This patch adds options to configure the available
TLS cipher suites and adds support for a path
for multiple CA certificates.

Fixes #2959
2017-04-27 01:29:39 -07:00
James Phillips 47640538d4
Updates compiled static assets. 2017-04-25 13:54:03 -07:00
Frank Schroeder 9e2332f6a1 golint: Fix existing comments
This needs more work.
2017-04-25 09:26:13 -07:00
Frank Schroeder 9de4555c0c golint: Untangle if blocks with return in else 2017-04-25 09:26:13 -07:00
Frank Schroeder f50d6871f9 golint: No stutter 2017-04-25 09:26:13 -07:00
Frank Schroeder 8c7bb7b65a golint: Rename fields and structs 2017-04-25 09:26:13 -07:00
Frank Schroeder f4a56d8a44 golint: Replace a += 1 with a++ 2017-04-25 09:26:13 -07:00
Frank Schroeder c7f367af56 golint: Consistent receiver name
Ensure the receiver name is consistent
2017-04-25 09:26:13 -07:00
Frank Schroeder ebdb73d8f2 golint: Drop the unused value from range
for i, _ := range foo -> for i := range foo
2017-04-25 09:26:13 -07:00
Frank Schroeder 9f8f258d4d Remove duplicate constants
This patch removes duplicate internal copies of constants in the structs
package which are also defined in the api package. The api.KVOp type
with all its values for the TXN endpoint and the api.HealthXXX constants
are now used throughout the codebase.

This resulted in some circular dependencies in the testutil package
which have been resolved by copying code and constants and moving the
WaitForLeader function into a separate testrpc package.
2017-04-20 09:54:49 -07:00
Frank Schroeder 58c3b1ff38 Use fmt.Fprint/Fprintf/Fprintln
Used the following rewrite rules:

gofmt -w -r 'resp.Write([]byte(fmt.Sprintf(a, b, c, d))) -> fmt.Fprintf(resp, a, b, c, d)' *.go
gofmt -w -r 'resp.Write([]byte(fmt.Sprintf(a, b, c))) -> fmt.Fprintf(resp, a, b, c)' *.go
gofmt -w -r 'resp.Write([]byte(fmt.Sprintf(a, b))) -> fmt.Fprintf(resp, a, b)'  *.go
gofmt -w -r 'resp.Write([]byte(fmt.Sprintf(a))) -> fmt.Fprint(resp, a)' *.go
gofmt -w -r 'resp.Write([]byte(a + "\n")) -> fmt.Fprintln(resp, a)' *.go
gofmt -w -r 'resp.Write([]byte(a)) -> fmt.Fprint(resp, a)' *.go
2017-04-20 09:02:59 -07:00
Kyle Havlovitz 72ee7c2501 Show raft protocol in list-peers command (#2929) 2017-04-19 15:01:40 -07:00
Kyle Havlovitz e97574fc4c
Fix help text on client cert/key options 2017-04-18 16:30:20 -07:00
mckennajones 1695506b1d
Added check to see if ui and ui-dir flags are both specified 2017-04-17 17:25:57 -07:00
Kyle Havlovitz 095b441ed4
Fix help text for -ca-path 2017-04-14 14:44:45 -07:00
Kyle Havlovitz cdd8b5b880
Add tls client options to api/cli 2017-04-14 13:37:29 -07:00
James Phillips 1129827f91 Merge pull request #2842 from vaLski/supress_sigpipe_logging
Supress signal logging on SIGPIPE. Should address #2768
2017-04-13 16:52:29 -07:00
James Phillips 1f40dc83e3
Updates static assets to pick up #2899. 2017-04-13 14:40:16 -07:00
James Phillips 86a69e8207 Merge pull request #2904 from hashicorp/non-host-id
Adds a new -disable-host-node-id option to help when testing with containers.
2017-04-13 10:49:05 -07:00
James Phillips 20bf47d2b4
Adds a new -disable-host-node-id option to help when testing with containers.
Fixes #2877.
2017-04-12 22:07:18 -07:00
Ralph Caraveo 8295809d79 Ensure to exit with a non-zero status code when a timeout occurs and we don't complete all the jobs. 2017-04-12 17:51:16 -07:00
Ralph Caraveo c06b72ba17 Fixed spelling for consul kv get command --help comments. 2017-04-12 17:31:57 -07:00
Alex Dadgar 13f026dec4 Hash host ID so its stable and well distributed
This PR takes the host ID and runs it through a hash so that it is well
distributed. This makes it so that machines that report similar host IDs
are easily distinguished.

Instances of similar IDs occur on EC2 where the ID is prefixed and on
motherboards created in the same batch.
2017-04-10 11:57:24 -07:00
James Phillips c7f7e969d7 Merge pull request #2854 from hashicorp/remote-exec
Changes `disable_remote_exec` default to true so remote exec is opt-in.
2017-03-30 10:29:09 -07:00
Kyle Havlovitz a2058d23ef
Add CLI/API endpoints for removing peer by ID 2017-03-30 10:13:32 -07:00
James Phillips ac90110396
Changes `disable_remote_exec` default to true so remote exec is opt-in. 2017-03-30 09:43:32 -07:00
James Phillips 4259ecd8bc
Disables agent-level enforcement on Consul agents unless acl_datacenter is set. 2017-03-29 12:24:42 -07:00
vaLentin chernoZemski 8aee2b805a Supress signal logging on SIGPIPE. Should address #2768
When consul-template is communicating with consul and the job is done, consul thread receives SIGPIPE.

This cause the logs to be filled "Caught signal: broken pipe" and they does not bring any usefull info with them.

Skipping those.
2017-03-29 09:46:58 +03:00
James Phillips 424d70ba5d
Cleans up a stray mark and fixes unit tests.
Ended up removing the leader_test.go server address change test as part
of this. The join was failing becase we were using a new node name with
the new logic here, but realized this was hitting some of the memberlist
conflict logic and not working as we expected. We need some additional
work to fully support address changes, so removed the test for now.
2017-03-27 01:28:54 -07:00
James Phillips dce84379b7
Fixes up some broken unit tests. 2017-03-24 17:35:07 -07:00
James Phillips f2211d2489
Keeps the service and check tokens around for deregistration.
We fixed a few related issues while we were in here. We now only let
services register checks with a matching token, and we also close out
service and check delete operations if the catalog deregister claims
it doesn't know about the ID of the service or check being deleted.
2017-03-24 17:15:20 -07:00
James Phillips c553e1d93a
Changes verson 8 ACLs to opt-out. 2017-03-24 12:12:24 -07:00
Seth Vargo 2efa3bdff8
Use new APIs 2017-03-23 18:48:13 -04:00
Seth Vargo 78bd562f41
Re-add RPC parsing
This makes the upgrade path a bit nicer, since people will likely have
older configurations. This prints out a warning instead of just failing
if the old rpc addr or ports definition is in the config.
2017-03-23 17:10:14 -04:00
James Phillips ab2b615265
Renames some operator unit tests. 2017-03-22 19:26:43 -07:00
Kyle Havlovitz 37ea20cb44
Add advanced autopilot features 2017-03-22 15:25:16 -07:00
James Phillips 36a0abe10f Merge pull request #2801 from hashicorp/spoken-hub-oss
Adds support for WAN soft fail and join flooding.
2017-03-20 16:24:07 -07:00
James Phillips 964a5e2b28
Updates to latest built-in static assets. 2017-03-20 10:18:47 -07:00
James Phillips 43d24b3ba0
Fixes RTT command to only compare coordinates in the same area. 2017-03-16 16:42:19 -07:00
James Phillips 28f8aa5559
Removes remoteConsuls in favor of the new router.
This has the next wave of RTT integration with the router and also
factors some common RTT-related helpers out to lib. While we were
in here we also got rid of the coordinate disable config so we don't
need to deal with the complexity in the router (there was never a
user-visible way to disable coordinates).
2017-03-16 16:42:19 -07:00
Kyle Havlovitz 006c6b93b3 Merge pull request #2802 from hashicorp/f-autopilot-improvements
Fix an issue with changing server ID when re-joining
2017-03-15 20:26:16 -07:00
Kyle Havlovitz bc0494e396
Reorganized cluster health check loop and logic 2017-03-15 18:27:17 -07:00
Kyle Havlovitz c40279e012
Fix an issue with changing server IDs and add a few UX enhancements around autopilot features 2017-03-15 16:09:55 -07:00
James Phillips 9b43b31900
Forces user-supplied node IDs to lower case for consistency. 2017-03-13 19:51:56 -07:00
Kyle Havlovitz b15d67bfac
Use defers for WaitGroup and Ticker stop 2017-03-10 12:29:03 -08:00
Kyle Havlovitz 8130f9b1c1
Cleaned up and reorganized some autopilot-related code 2017-03-09 18:21:40 -08:00
Kyle Havlovitz a7de1e2a3b
Move RaftStats to Status endpoint 2017-03-07 13:58:06 -08:00
Kyle Havlovitz 0606133b75
Merge branch 'master' into f-autopilot-2 2017-03-06 16:02:19 -08:00
Kyle Havlovitz 8bcab6c6d7
Add autopilot server health tracking
This adds two goroutines to perform autopilot tasks on the leader - one
to monitor the health of servers and another to periodically clean up
dead servers with a limit on removal count. Also adds a new http endpoint,
`/v1/operator/autopilot/health`, for querying this information through an
operator RPC endpoint.
2017-03-06 16:00:10 -08:00
Sean Chittenden c6feba6ab7 Revert "Change `ClientAddr` to default to `BindAddr` when not present." 2017-03-06 13:32:43 -08:00
Sean Chittenden e1ced1de30
Change `ClientAddr` to default to `BindAddr` when not present.
With this change, it is now possible to only specify the `-bind` or
`bind_addr` attributes and get a functioning consul agent.
2017-03-04 20:52:52 -08:00
James Phillips aba567273e Merge pull request #2690 from zeroae/f-simple-rfc2782
RFC 2782 support with optional .service tag
2017-03-02 14:49:36 -08:00
Kyle Havlovitz 44f0b08db7 Merge pull request #2771 from hashicorp/f-autopilot
Autopilot dead server cleanup, config, and raft version compatibility
2017-02-28 15:04:16 -08:00
Kyle Havlovitz 77785778bf Merge pull request #2774 from hashicorp/f-cli-deprecation-docs
Add CLI RPC deprecation section to docs
2017-02-28 14:59:48 -08:00
Kyle Havlovitz 23c492a74e
Rename DeadServerCleanup and make wording adjustments 2017-02-28 14:45:21 -08:00
Kyle Havlovitz 01fe3fb399
Fix up command and api tests 2017-02-28 14:12:55 -08:00
Kyle Havlovitz 3b67c50c1d
Remove the RPC client interface and update docs 2017-02-28 13:41:09 -08:00
Sean Chittenden 63402c6eaa
Follow the lead in 6fc901a8f3 and set the default `DisplayName` to `Consul` 2017-02-26 12:26:14 -08:00
Kyle Havlovitz 953baed324
Convert agent command to use base.Command 2017-02-24 18:11:05 -08:00
Kyle Havlovitz f7b6d776f4
Add cli docs and minor test/comment tweaks 2017-02-24 16:55:44 -08:00
Kyle Havlovitz 1e24ec51a7
Use BoolValue for flag type 2017-02-24 16:00:39 -08:00
Kyle Havlovitz 459e72b011
Merge branch 'master' into f-autopilot 2017-02-24 15:55:18 -08:00
Kyle Havlovitz 6168911200
Added operator autopilot subcommands 2017-02-24 15:54:49 -08:00
Kyle Havlovitz c9ddee1a79
Add CAS capability to autopilot config endpoint 2017-02-24 13:08:49 -08:00
James Phillips e92def21e1
Exports config functions from base. 2017-02-23 21:08:43 -08:00
James Phillips b59d136820
Exports visit function from base. 2017-02-23 21:01:06 -08:00
Kyle Havlovitz 56e22a719f
Add state store table and endpoints for autopilot 2017-02-23 20:32:13 -08:00
Kyle Havlovitz ae9fce0ae0
Move raft_protocol out of autopilot config 2017-02-23 13:08:40 -08:00
Kyle Havlovitz f9588b8d7f
Add raft version 2/3 compatibility 2017-02-22 12:53:32 -08:00
Kyle Havlovitz 3f05576cc8
Condense raft subcommand into one doc page 2017-02-16 11:44:14 -08:00
Kyle Havlovitz 2b12a43840
Split operator raft command into subcommands 2017-02-15 13:53:34 -08:00
Jeff Mitchell 15314c96d0 Update TestHTTPServer_UnixSocket with DialContext 2017-02-10 21:29:42 -05:00
Kyle Havlovitz 0262f009dd Merge pull request #2732 from hashicorp/f-validate-command
Deprecate configtest and add validate command
2017-02-10 20:34:09 -05:00
Kyle Havlovitz 9fc55909dc
Add -quiet flag to validate 2017-02-10 20:14:22 -05:00
Kyle Havlovitz 35d99a81ac
Update docs and give better error for unknown client scheme 2017-02-10 19:55:54 -05:00
Kyle Havlovitz 27ee6f974d
Update website docs for validate command 2017-02-10 19:38:38 -05:00
Kyle Havlovitz fcb2594fda
Deprecate the configtest command and add the validate command 2017-02-10 19:21:51 -05:00
Kyle Havlovitz bdb58adb80
Allow internal watches to use https and unix sockets 2017-02-10 18:38:39 -05:00
Kyle Havlovitz 91e960832f
Allow prefixing -http-addr with http/https schemes 2017-02-10 18:25:46 -05:00
Kyle Havlovitz 6692061761
Remove cli rpc functions 2017-02-10 13:57:02 -05:00
Kyle Havlovitz 854c09021e
Formatting fix in members output 2017-02-10 13:02:37 -05:00
Kyle Havlovitz 955d1b983d
Merge branch 'master' into f-cli-rework-3 2017-02-09 21:24:27 -05:00
Kyle Havlovitz a64c5e69a3
Cleanup and formatting adjustments 2017-02-09 20:49:17 -05:00
Kyle Havlovitz 65ad17a27d
Convert watch command to use base.Command 2017-02-09 20:36:01 -05:00
Kyle Havlovitz 1767a4dcb0
Add missing doc page for version command 2017-02-09 20:08:25 -05:00
Kyle Havlovitz 50f6c6a2bb
Convert snapshot command to use base.Command 2017-02-09 20:00:38 -05:00
Kyle Havlovitz bcdbc9175c
Convert rtt command to use base.Command 2017-02-09 19:38:06 -05:00
Kyle Havlovitz 520edc2e49
Convert reload command to use base.Command 2017-02-09 19:32:22 -05:00
Kyle Havlovitz 1a26907d01
Convert operator command to use base.Command 2017-02-09 18:19:34 -05:00
Kyle Havlovitz c78f62b83d
Convert monitor command to use base.Command 2017-02-09 17:31:52 -05:00
Kyle Havlovitz 7d72864531
Convert members command to use base.Command 2017-02-09 17:12:47 -05:00
Kyle Havlovitz 4be635d3a1
Convert maint command to use base.Command 2017-02-09 17:06:19 -05:00
Kyle Havlovitz e385af8eeb
Convert leave command to use base.Command 2017-02-09 16:48:12 -05:00
Kyle Havlovitz 2a82804c0c
Make join exit non-zero if no nodes were joined 2017-02-08 19:45:13 -05:00
Kyle Havlovitz b35acaac33
Convert kv commands to use base.Command 2017-02-08 19:26:24 -05:00
Kyle Havlovitz d3b24d2d12
Convert keyring command to use base.Command 2017-02-08 18:25:47 -05:00
Kyle Havlovitz 3a18373db7
Convert keygen command to use base.Command 2017-02-08 17:19:17 -05:00
Kyle Havlovitz 9e156286c7
Convert join command to use base.Command 2017-02-08 17:14:02 -05:00
Kyle Havlovitz a69f2a0faf
Convert info command to use base.Command 2017-02-08 16:58:04 -05:00
Kyle Havlovitz 89771b6075
Convert exec command to use base.Command 2017-02-08 16:57:46 -05:00
Kyle Havlovitz 6cc2299123
Convert event command to use base.Command 2017-02-08 16:56:58 -05:00
Kyle Havlovitz 0f20f06021
Small tweaks to base command 2017-02-07 20:56:49 -05:00
Kyle Havlovitz 2b02fb575b
Add utility types to enable checking for unset flags 2017-02-07 20:14:41 -05:00
Kyle Havlovitz 9e38fc1c84
Move command Meta to base.Command and split http options 2017-02-07 19:16:41 -05:00
Kyle Havlovitz e30b9ae5ba
Fix the check for displaying the command options 2017-02-06 23:45:58 -05:00
Kyle Havlovitz 0f796f0cba
Convert configtest and force-leave commands to use Meta 2017-02-06 20:50:51 -05:00
Kyle Havlovitz d6a5b7e63c
Merge branch 'master' into f-cli-rework 2017-02-06 13:46:44 -05:00
Kyle Havlovitz 4fc3bd3abf
Added -relay-factor param to keyring operations 2017-02-01 21:53:29 -05:00
Kyle Havlovitz f48cd78bc5 Merge pull request #2699 from hashicorp/f-tls-min-version
Add TLSMinVersion to config options
2017-02-01 16:31:53 -05:00
Kyle Havlovitz 086975ac0a
Add TLSMinVersion to config options 2017-02-01 16:20:33 -05:00
Sean Chittenden 9e2557c53c
Re-cherry-pick 71d807f607589f2eb4fea4e83e3876d122c8afc0 and e2320d69b6b155d8223758415aabafc60a0e9d3b. 2017-02-01 10:27:04 -08:00
James Phillips 691aec917e
Fixes issue with missing CNAME for services with non-IP addresses set in SRV responses. 2017-01-31 20:57:50 -08:00
Patrick Sodré 5b68178dc1 Simple RFC 2782 support with optional .service tag
Add support for SRV queries of names matching:
_<service>._<protocol>.[.service][.datacenter]<.domain>
2017-01-30 19:46:02 -05:00
James Phillips 682d65b4bc
Redacts AWS join credientials from /v1/agent/self output. 2017-01-25 21:01:07 -08:00
James Phillips 09dd23e14a
Updates a comment to point to new blockingQuery function. 2017-01-25 09:58:22 -08:00
James Phillips 6e58d7b80d
Pulls in latest static asset updates. 2017-01-25 09:57:56 -08:00
Kyle Havlovitz a09b6ea8b4
Fix test import 2017-01-23 21:34:01 -05:00
Kyle Havlovitz cc271aa436
Merge branch 'master' into f-prepared-query-nodemeta 2017-01-23 20:17:48 -05:00
Kyle Havlovitz 3cd054e81f
Add tests for node meta in prepared queries and update docs 2017-01-23 19:17:30 -05:00
David Black c65d965aa7 s/givne/given/ 2017-01-19 09:16:31 -08:00
James Phillips 55cd1d975c
Adds catalog support for node IDs. 2017-01-18 14:26:42 -08:00
James Phillips e73d3c2312
Adds a test to make sure we get the same ID on the second run. 2017-01-18 09:52:34 -08:00
James Phillips 96bff003b7
Adds basic support for node IDs. 2017-01-17 22:47:59 -08:00
James Phillips 17c4754eac Merge pull request #2639 from tanuck/master
Standardize the case of all check log messages
2017-01-17 09:07:45 -08:00
James Phillips 05ce6766aa Merge pull request #2578 from ybubnov/concurrent-safe-notification-mock
Concurrent-safe notification mock
2017-01-17 09:01:43 -08:00
Kyle Havlovitz e37f25dc02
Add node metadata filtering to remaining health/catalog endpoints 2017-01-13 20:08:43 -05:00
Kyle Havlovitz ebd37af4ef
Style tweaks and vendor.json cleanup 2017-01-12 16:49:44 -05:00
Kyle Havlovitz 2139dbb029
Merge branch 'master' into f-gce-discovery 2017-01-11 22:57:07 -05:00
Kyle Havlovitz 84b157eade
Condense gce discovery logging a bit 2017-01-11 22:37:22 -05:00
Kyle Havlovitz 821735d175 Merge pull request #2643 from hashicorp/f-node-metadata
Node metadata
2017-01-11 20:29:24 -05:00
Kyle Havlovitz 51a1834667
Add -node-meta to agent command line options 2017-01-11 16:09:04 -05:00
Kyle Havlovitz d77890a011
Validate metadata config earlier and handle multiple filters 2017-01-11 15:12:03 -05:00
Andrew Glen-Young c78c07d9cb Pedantic typo fix 2017-01-10 15:44:32 -05:00
Kyle Havlovitz 6b5cf20b1c
Fix formatting 2017-01-09 13:49:33 -08:00
Kyle Havlovitz aee766baba
Add meta key validations and more tests 2017-01-09 11:21:49 -08:00
Kyle Havlovitz b25f4c7d35
Add tests for node metadata functionality 2017-01-05 17:21:56 -08:00
Kyle Havlovitz 2a423c6e2c
Add support for setting node metadata fields 2017-01-05 14:10:26 -08:00
James Phillips d18b917db9 Merge pull request #2635 from hashicorp/kv-put-crash
cli: Fix panic on empty data argument to `kv put`
2017-01-05 09:57:59 -08:00
James Nugent 128b1e72dd cli: Fix printf format in KV Export Test
Fix vet issue:

command/kv_export_test.go:48: arg code for printf verb %s of wrong type:
int
2017-01-05 09:28:12 -06:00
James Nugent 94aed0717f cli: Fix panic on empty data argument to `kv put`
Passing in an empty quoted argument from the shell currently panics as
we never check the length being greater than 0 prior to indexing into
the first rune, as illustrated in the test in this commit.

We also fix the panic, treating an empty string for data as equivalent
to not having passed it in the first place.
2017-01-05 08:02:38 -06:00
James Nugent 3b1f523b85 cli: Add KV `export` and `import`
This commit adds two new commands to the Consul KV CLI, which export and
import a JSON formatted representation of the Consul KV tree. It is
useful to migrate parts of the KV tree between unrelated Consul
clusters, and could also be used for initial data population of the KV
store.
2017-01-05 07:57:38 -06:00
James Tancock 5b526f0847 Standardize the case of all check log messages 2017-01-05 08:34:20 +00:00
James Nugent c32fe92eee cli: Add -base64 option to `consul kv put`
This commit adds a -base64 option to the consul kv put command, which
base 64 decodeds the data prior to writing it. This can be used in
conjunction with `consul kv get -base64 key`.
2017-01-04 16:12:21 -06:00
James Nugent a24e5041ac Merge pull request #2631 from hashicorp/kv-get-base64
cli: Add -base64 option to `consul kv get`
2017-01-04 16:00:27 -06:00
James Nugent 2bb6121e54 cli: Add -base64 option to `consul kv get`
This commit adds a `-base64` option to the `consul kv get` command,
which base 64 encodes the output such that it can be processed by
terminal tools in the event that the data is binary. The flag defaults
to false.
2017-01-04 15:41:40 -06:00
Kyle Havlovitz 5d03ab53f3
Don't error if the given data-dir doesn't exist 2016-12-15 12:55:21 -05:00
James Phillips 5a6521c385
Adds exception for data-dir check in -dev mode.
This was changed in #2529.
2016-12-14 22:11:16 -08:00
James Phillips a0032d5c39
Updates web assets to match latest. 2016-12-14 21:08:17 -08:00
James Phillips b617e54ff0 Merge pull request #2594 from hashicorp/acl-complete
Adds complete ACL support for /v1/agent endpoints.
2016-12-14 20:49:00 -08:00
James Phillips 7ee097c1ba
Adds complete ACL support for listing events. 2016-12-14 19:42:37 -08:00
James Phillips ae83cc96f9
Adds remaining unit tests for agent ACL vet and filter functions. 2016-12-14 19:28:09 -08:00
James Phillips 51d1742025
Fixes a race in the monitor endpoint test that would cause panics. 2016-12-14 18:13:30 -08:00
Kyle Havlovitz 9f81d70d31 Merge pull request #2529 from mckennajones/bug/1838
Give a better error message when data-dir is not a directory
2016-12-14 20:21:10 -05:00
Kyle Havlovitz 78455621a1 Handle error from stat on data-dir and shorten error message 2016-12-14 20:06:00 -05:00
James Phillips a57ddae900
Adds a leader wait when testing with ACLs. 2016-12-14 16:18:17 -08:00
James Phillips b7ebe0b384
Adds complete ACL coverage for non-utility agent endpoints.
This is a checkpoint - we need to complete some unit tests for agent/acl.go.
2016-12-14 14:53:40 -08:00
Kyle Havlovitz 80a8055d5a Merge pull request #2553 from mckennajones/bug/ignoresigpipe
Ignore sigpipe signals
2016-12-14 15:36:26 -05:00
Kyle Havlovitz 398f4a04ef
Add a notice about deprecation of atlas features 2016-12-14 15:13:51 -05:00
James Phillips 48603b4764
Adds complete ACL support for agent utility endpoints. 2016-12-14 11:12:55 -08:00
James Phillips 927aa3789a
Adds ACL management support to the agent. 2016-12-14 07:07:41 -08:00
James Phillips dd82c8529d
Adds a unit test to make sure the status endpoint doesn't ever show anything
with "token" in the name.
2016-12-14 07:07:41 -08:00
James Phillips 535d6b21b4
Adds complete ACL coverage for /v1/session endpoints. 2016-12-12 21:59:22 -08:00
James Phillips 8db53b4ac2
Adds complete ACL coverage for /v1/coordinate/nodes and Coordinate.Update RPC. 2016-12-12 14:52:27 -08:00
James Phillips 67f1fe8d0b
Adds support for a new "acl_agent_token" which is used for internal
catalog operations.
2016-12-12 14:52:27 -08:00
James Phillips 99a5ae2737
Bans anonymous queries that aren't tied to a session.
This gets us coverage of PQ creation under the existing service
policy or the soon-to-be-added session policy.
2016-12-12 14:52:27 -08:00
James Phillips 2b19a5340c
Removes the exception for the "consul" service in the catalog. 2016-12-07 17:58:23 -08:00
Yakau Bubnou 5c210fb25d Concurrent-safe notification mock
This patch provides additional attribute to the notification mock in
order to protect an access to the internal maps from multiple
go-routines. This is required to prevent panic errors caused by
inconsistent map state.
2016-12-07 19:31:44 +03:00
Chris Marchesi 1b4e26d005 command/agent: Google Compute Engine host discovery
This commit adds several command-line and config options that facilitate
host discovery through Google Compute Engine (GCE), much like the
recently added EC2 host discovery options. This should assist with
bootstrapping and joining servers within GCE when non-static addresses
are used, such as when using managed instance groups.

Documentation has also been added. It should be noted that if running
from within a GCE instance, the only option that should be necessary is
-retry-join-gce-tag-value.
2016-12-06 17:46:40 -08:00
James Phillips eb07e77c1c
Adds an opt-in for new ACL policies and features coming in Consul 0.8. 2016-12-06 11:06:14 -08:00
Sean Chittenden 1ca285221a
Run all known addresses through go-sockaddr/template.
The following is now possible:

```
$ consul agent -dev -client="{{GetPrivateIP}}" -bind='{{GetInterfaceIP "en0"}}'
```
2016-12-02 16:35:38 +11:00
Kyle Havlovitz 3649c18ef0 Fix race issue in monitor endpoint test 2016-12-01 13:40:00 -05:00
James Phillips dc37498327 Merge pull request #2533 from mckennajones/bug2526
Fix for KV put command
2016-11-30 21:46:04 -08:00
James Phillips bd5adea5ba Merge pull request #2555 from hashicorp/pr-2497-slackpad
Updates Circonus library and adds support for custom display name and tags.
2016-11-30 21:42:01 -08:00
Kyle Havlovitz dd05afb32e Add reload/leave http endpoints (#2516) 2016-11-30 13:29:42 -05:00
mckennajones 33d97a9b9a ignore sigpipe signals to fix journalctl issue #2404 2016-11-30 09:42:10 -08:00
mckennajones a99f840653 Unit test for kv_put with negative values 2016-11-29 22:29:31 -08:00
Seth Vargo 1c55429a38
Add an API method for determining the best status
Given a list of HealthChecks, this determines the "best" status for the
collective group. This is useful for nodes and services, which may have
multiple checks associated with them.
2016-11-29 18:41:46 -05:00
Kyle Havlovitz ccab51b07c Add logWriter to agent Create() method 2016-11-28 18:36:26 -05:00
Kyle Havlovitz d91854f3b0 Add monitor http endpoint 2016-11-28 18:36:26 -05:00
mckennajones 3b582db61d Simple check to differentiate between stdin flag or value that contains
a -
2016-11-27 12:55:14 -08:00
James Phillips 147d6deea5
Updates static assets to pick up #2340 and and #2525. 2016-11-22 17:47:50 -08:00
Kyle Havlovitz 79f339b5dc Combine keyring endpoints into one 2016-11-22 20:10:43 -05:00
Kyle Havlovitz 2d37a07476 Add keyring http endpoints 2016-11-22 20:10:43 -05:00
mckennajones 6a49edf128 check if data-dir is actually a directory 2016-11-22 13:33:51 -08:00
James Phillips cf5134e4f0
Defaults to pretty JSON in dev mode. 2016-11-17 22:31:19 -08:00
James Phillips b672fea37b Merge pull request #2238 from hasyimibhar/master
Remove duplicated environment variables
2016-11-17 16:18:02 -08:00
Benjamin Farley 8adcd9577e Operator docs update 2016-11-16 09:04:37 +00:00
James Phillips 60d0c66be0
Revert "Updates Circonus metrics library and adds support for display name and tags."
This reverts commit bd490ec937a5859ba43b07d9103b3cb8f037e9e5 from #2491.
2016-11-09 16:21:02 -08:00
Kyle Havlovitz 9b6847d13f Use uuids in persist temp files to avoid race (#2494) 2016-11-09 15:22:53 -08:00
Kyle Havlovitz b170282d0f Improve logging when deregistering a nonexistent service (#2492)
Log a warning instead of a success message when attempting to deregister a nonexistent service. In Consul 0.8 this can be changed to giving an error outright, but for now we can keep the idempotent delete behavior.
2016-11-09 16:56:54 -05:00
matt maier c7f98fe988 Updates Circonus metrics library and adds support for display name and tags.
* Update circonus-gometrics

`vendor circonus-labs/circonus-gometrics`
`vendor circonus-labs/circonus-gometrics/api`
`vendor circonus-labs/circonus-gometrics/checkmgr`
`vendor circonus-labs/circonusllhist`
`vendor hashicorp/go-retryablehttp`

* Update Circonus integration expose Check Display Name and Check Tags configuration options.

* Adds version info to docs for new Circonus options.
2016-11-09 13:26:43 -08:00
matt maier 62fe94b3d6 Update Circonus integration expose Check Display Name and Check Tags configuration options. 2016-11-09 15:33:37 -05:00
James Phillips 739f91ad6a Removes stale reference to reap lock which causes a panic. (#2490) 2016-11-09 09:52:07 -08:00
James Phillips e01fde4007
Runs the static asset packaging inside the container; updates assets. 2016-11-08 15:14:08 -08:00
James Phillips 45def3e9ac
Updates embedded static assets. 2016-11-08 14:22:39 -08:00
Kyle Havlovitz 1ffdf04bd7 Set MaxStale default to 10 years and add a stale counter (#2481)
Default MaxStale to 10 years and add a counter at `consul.dns.stale_queries` that tracks when an agent serves a query that's stale by at least 5 seconds. Previously, MaxStale defaulted to 5 seconds and DNS would become unavailable after a short period of time with no leader. This new default allows DNS requests to still be served in the event of a long outage.

Fixes #2460.
2016-11-08 14:45:12 -05:00
Brian Hays 9384c3a797 Lowercase ACL Datacenter (#2478)
* Lowercase ACL Datacenter

* move lowercasing of ACLDatacenter to command.go and add validation

* Tweaks error message about bad ACL datacenter.
2016-11-07 18:41:23 -08:00
Kyle Havlovitz d71cdf9dc2 Merge pull request #2480 from hashicorp/b-atomic-writes
Atomic writes for persisting service/check state
2016-11-07 15:36:35 -05:00
Kyle Havlovitz 06fac8a918
Add a note about not calling sync for persistCheckState 2016-11-07 15:24:31 -05:00
Kyle Havlovitz 6b6601093c
Call fsync() for saving check/service state 2016-11-07 13:51:03 -05:00
Kyle Havlovitz 5a3996af61 Add WaitForResult to some flaky tests (#2477)
This replaces some hard sleeps with testutil.WaitForResult retry
logic in some recently added tests around TLSSkipVerify in checks.
2016-11-04 21:55:55 -07:00
James Phillips be4056789f Moves the snapshot package up one level. (#2472) 2016-11-03 21:36:25 -07:00
James Phillips ea95e8f40d Moves logger setup into its own package. (#2471)
* Moves logger setup into its own package.

* Removes a stray regex mark in the test locator.
2016-11-03 21:14:56 -07:00
James Phillips 8d94e5dc15 Finishes move of datacenter into client vs. options. (#2470) 2016-11-03 14:21:02 -07:00
Kyle McCullough 697ea0f8eb Add setting to skip ssl certificate verification for HTTP checks (#1984)
* http check: add setting to skip ssl certificate verification

* update http check documentation

* fix typo in documentation

* Add TLSSkipVerify to agent api
2016-11-03 13:17:30 -07:00
James Phillips 18926728d4 Supports WAN and LAN Serf Bind Addresses. (#2468)
* * adding cli config and config file support for specifying the serf wan and lan bind addresses
* updating documentation for serf wan and lan options
Fixes #2007

* Cleans up some small things from #2380.

* Uses the bind default for the agent test for Serf WAN and LAN.
2016-11-03 12:58:58 -07:00
James Phillips 1d35ff27ef
Removes unnecessary clause in unit test check. 2016-11-03 12:26:48 -07:00
James Phillips 42de8f9800 Adds support for DNS recurse truncation. (#2467)
* Return message from recurse even if truncated

Signed-off-by: Evan Farrar <efarrar@pivotal.io>

* Tweaks unit test.
2016-11-03 12:21:16 -07:00
James Phillips 3d8f6ef1a0 Adds missing datacenter arg to API client for snapshot commands. (#2466) 2016-11-03 11:01:09 -07:00
Kyle Havlovitz a8215f4e2f Merge pull request #2459 from hashicorp/f-aws-autodiscovery
AWS -retry-join-ec2 option
2016-11-03 13:27:23 -04:00
Kyle Havlovitz 1e2ca107c2
Small tweaks to docs and syntax 2016-11-03 13:04:42 -04:00
Kyle Havlovitz 169cae2203 Disallow -bootstrap-expect flag in dev mode (#2464) 2016-11-03 01:54:43 -04:00
James Phillips 03f623f89b
Builds static assets to pick up #2456 (redux).
Built this time using the same container that the dist build uses so
it won't see a difference and fail the build.
2016-11-02 15:54:53 -07:00
Kyle Havlovitz a3af480c42
Add support for ECS task roles as an auth mechanism 2016-11-02 18:48:15 -04:00
Kyle Havlovitz b9aa912e4c
Move EC2 discovery logic into retryJoin for robustness 2016-11-02 14:35:37 -04:00
Kyle Havlovitz f212329cc6
Support more forms of EC2 authentication 2016-11-01 21:24:18 -04:00
Kyle Havlovitz d615141c16
Add testing around EC2 discovery config 2016-11-01 18:26:15 -04:00
Kyle Havlovitz 0499784b94
Fixed up config structure for EC2 discovery 2016-11-01 17:58:51 -04:00
Kyle Havlovitz 9aa0261c1c Merge branch 'master' of github.com:hashicorp/consul into aws_autodiscovery 2016-11-01 11:19:52 -04:00
James Phillips 9768b2ea2f
Builds static assets to pick up #2456. 2016-10-31 18:20:36 -07:00
Kyle Havlovitz 10c5f11315 Retry periodically for 60s if syslog setup fails (#2455) 2016-10-31 17:24:00 -07:00
Kyle Havlovitz 440611f9f7 Add snapshot inspect subcommand (#2451) 2016-10-31 19:37:27 -04:00
Kyle Havlovitz d5ee327fea More flaky unit test fixes (#2449)
* More flaky unit test fixes
* Raise some test timeouts that were too low
2016-10-31 09:59:20 -07:00
Kyle Havlovitz efb8f84922 Added tests for lookups on the 'addr.consul' domain 2016-10-27 21:04:06 -07:00
Kyle Havlovitz 9069deb792 Add a service address SRV lookup test for IPv6 2016-10-27 21:04:06 -07:00
Kyle Havlovitz 5888b4f7bf Fix test cases 2016-10-27 21:04:06 -07:00
Kyle Havlovitz b72bccc1c4 Give the service address in SRV lookup when it differs from the node's 2016-10-27 21:04:06 -07:00
Kyle Havlovitz de308e75e1 Resolve Consul CNAME records on external services (#2444) 2016-10-26 19:23:51 -07:00
James Phillips bc29610124 Adds support for snapshots and restores. (#2396)
* Updates Raft library to get new snapshot/restore API.

* Basic backup and restore working, but need some cleanup.

* Breaks out a snapshot module and adds a SHA256 integrity check.

* Adds snapshot ACL and fills in some missing comments.

* Require a consistent read for snapshots.

* Make sure snapshot works if ACLs aren't enabled.

* Adds a bit of package documentation.

* Returns an empty response from restore to avoid EOF errors.

* Adds API client support for snapshots.

* Makes internal file names match on-disk file snapshots.

* Adds DC and token coverage for snapshot API test.

* Adds missing documentation.

* Adds a unit test for the snapshot client endpoint.

* Moves the connection pool out of the client for easier testing.

* Fixes an incidental issue in the prepared query unit test.

I realized I had two servers in bootstrap mode so this wasn't a good setup.

* Adds a half close to the TCP stream and fixes panic on error.

* Adds client and endpoint tests for snapshots.

* Moves the pool back into the snapshot RPC client.

* Adds a TLS test and fixes half-closes for TLS connections.

* Tweaks some comments.

* Adds a low-level snapshot test.

This is independent of Consul so we can pull this out into a library
later if we want to.

* Cleans up snapshot and archive and completes archive tests.

* Sends a clear error for snapshot operations in dev mode.

Snapshots require the Raft snapshots to be readable, which isn't supported
in dev mode. Send a clear error instead of a deep-down Raft one.

* Adds docs for the snapshot endpoint.

* Adds a stale mode and index feedback for snapshot saves.

This gives folks a way to extract data even if the cluster has no
leader.

* Changes the internal format of a snapshot from zip to tgz.

* Pulls in Raft fix to cancel inflight before a restore.

* Pulls in new Raft restore interface.

* Adds metadata to snapshot saves and a verify function.

* Adds basic save and restore snapshot CLI commands.

* Gets rid of tarball extensions and adds restore message.

* Fixes an incidental bad link in the KV docs.

* Adds documentation for the snapshot CLI commands.

* Scuttle any request body when a snapshot is saved.

* Fixes archive unit test error message check.

* Allows for nil output writers in snapshot RPC handlers.

* Renames hash list Decode to DecodeAndVerify.

* Closes the client connection for snapshot ops.

* Lowers timeout for restore ops.

* Updates Raft vendor to get new Restore signature and integrates with Consul.

* Bounces the leader's internal state when we do a restore.
2016-10-25 19:20:24 -07:00
Kyle Havlovitz 107f4ff878 Agent anti-entropy test fixes 2016-10-25 17:48:11 -07:00
Kyle Havlovitz 61311cff80 Test fixes (#2434)
* Test fixes in health_endpoint_test.go, agent_endpoint_test.go and rtt_test.go
* Don't reuse the same agent config in TestAgent_ReconnectConfigSettings
2016-10-25 13:46:54 -07:00
James Phillips dace771f06 Merge pull request #2389 from hashicorp/jbs-2019
Lower Service tag DNS warning to DEBUG for #2019
2016-10-24 17:05:02 -07:00
Seth Vargo 6f01227963
Centralize command-line parsing 2016-10-13 18:03:29 -04:00
James Phillips 377ce12e53
Removes reap config option. 2016-10-06 21:45:18 -07:00
Brian Shumate 36e1a194c2
Lower Service tag DNS warning to DEBUG for #2019 2016-10-05 08:45:01 -04:00
Adam Wolfe Gordon ae5bd0f2cc agent: Stop reaping child processes (resolves #1988)
The consul docker image now uses dumb-init to reap child processes, so
there's no need to reap them ourselves.
2016-10-04 09:36:41 -06:00
Seth Vargo 74e35b1f48
Fix kv put flags 2016-09-26 16:13:39 -07:00
Seth Vargo 90f4953b47
Fix up kv put help output 2016-09-26 16:11:23 -07:00
Seth Vargo 8ac6877f20
Remove debugging code 2016-09-26 16:09:35 -07:00
Seth Vargo 70fd7efde9
Fix CAS operations for put 2016-09-26 16:06:56 -07:00
Seth Vargo 46f4093f14
Change delete CAS behavior to require ModifyIndex 2016-09-26 16:06:55 -07:00
Seth Vargo 738f12329a
Fix copy-paste comments 2016-09-26 16:06:54 -07:00
Seth Vargo ce5c820c4a
Add kv delete command 2016-09-26 16:06:53 -07:00
Seth Vargo d5dd8ef7a1
Add kv put command 2016-09-26 16:06:53 -07:00
Seth Vargo a8dc0f86b6
Add kv get 2016-09-26 16:06:53 -07:00
Seth Vargo cd8ac28a87
Add kv command stubs 2016-09-26 16:06:53 -07:00
Seth Vargo ec16f75124
Add test function for returning an API client 2016-09-26 16:06:52 -07:00
James Phillips 5eb4c94bde
Runs go-fmt (incidental to this PR). 2016-09-23 17:44:14 -07:00
James Phillips 36db92932a
Makes string search for Windows case-insensitive.
Fixes #2356.
2016-09-23 17:43:40 -07:00
James Phillips a477481ad3 Merge pull request #2353 from hashicorp/b-local-panic
Cleans up state management for remote deletes from local state.
2016-09-22 12:56:08 -07:00
James Phillips 6f1050a181
Calls remove on checks and services in the local test. 2016-09-22 11:41:17 -07:00
James Phillips 434233a131
Cleans up state management for remote deletes from local state.
Fixes #2125.
2016-09-21 16:52:43 -07:00
James Phillips 41b0115ee6 Merge pull request #2262 from WIZARD-CXY/master
Fixes go race bug in startup log buffering.
2016-09-20 17:24:52 -07:00
Felix f9e001cb6e return an error if no logOutput is provided
Otherwise the code will panic at a later stage where it is more complicated to figure out what’s actually going on.
2016-09-17 17:46:13 +09:00
James Phillips aed72ccc60 Merge pull request #2263 from sweeneyb/dnsPort
Add support for dns port as a command line option
2016-09-01 22:16:15 -07:00
James Phillips 4819cf3a52
Does some go fmt cleanup. 2016-09-01 22:14:19 -07:00
James Phillips 1924eccf71 Merge pull request #2322 from hashicorp/pr-2321-slackpad
Adds a configurable timeout for DNS recursor client.
2016-09-01 22:11:54 -07:00
James Phillips 314bd1363c
Adds a recursor timeout line to the merge test. 2016-09-01 21:53:33 -07:00
James Phillips 3f3bb444fa
Fixes a typo in a test error message. 2016-09-01 21:52:29 -07:00
Pivotal DX129 2682410059 Merge remote-tracking branch 'upstream/master' 2016-09-01 10:15:32 -04:00
James Phillips d419a0ae0d
Changes default for `leave_on_terminate` based on server or client mode. 2016-08-31 23:39:11 -07:00
James Phillips 5e4db081f7
Removes Raft types from public API interface.
This will cause a lot of breakage because we've currently vendored a
branch of the Raft library.
2016-08-30 14:59:16 -07:00
James Phillips 3304352272
Changes default DNS allow_stale to true. 2016-08-30 13:55:19 -07:00
James Phillips 6be1e07fec
Makes the Raft configuration API easier to consume. 2016-08-30 11:30:56 -07:00
James Phillips 1b7a16b7d3
Adds new consul operator endpoint, CLI, and ACL and some basic Raft commands. 2016-08-30 00:02:50 -07:00
Pivotal DX129 6acb742c08 Fixed code formatting 2016-08-29 17:29:23 -04:00
Pierre Delagrave b97500234d Made the dns recursor timeout test more reliable 2016-08-29 13:23:14 -04:00
Pierre Delagrave 3d5c2609e7 Renamed dns config parameter internal_client_timeout for recursor_timeout 2016-08-26 15:22:04 -04:00
Pierre Delagrave 0895e48106 Merge remote-tracking branch 'pierre/master' 2016-08-26 15:12:38 -04:00
James Phillips 6f030a1167
Tweaks formatting of Consul version. 2016-08-25 17:12:55 -07:00
James Phillips 5df4fffd09 Merge pull request #2303 from hashicorp/f-tunes
Adds performance tuning capability for Raft, detuned defaults, and supplemental docs.
2016-08-25 15:45:49 -07:00
James Phillips 2f4c237cff
Adds a max raft multiplier and tweaks documentation. 2016-08-25 15:36:05 -07:00
James Phillips 5df36fbd82
Stops scaling the commit timeout. 2016-08-25 15:05:40 -07:00
James Phillips 40f3470696
Redacts the Circonus API token from stats JSON. 2016-08-24 23:27:25 -07:00
James Phillips b339b0d2fc
Adds performance tuning capability for Raft, detuned defaults, and supplemental docs. 2016-08-24 21:58:37 -07:00
Pierre Delagrave 17b6a18c37 Added a configurable timeout to the client making DNS queries to downstream name servers 2016-08-23 16:59:38 -04:00
James Phillips 2aeaf35c41
Removed bad error message for health check status. 2016-08-17 17:54:09 -07:00
James Phillips 0bdbdf1ba8 Merge pull request #2226 from abhinavdahiya/rm-health-unknown
Fixes #1775; Removes 'unknown' state
2016-08-17 17:51:04 -07:00
James Phillips 5f5e0b3e76
Makes protocol version a little clearer. 2016-08-17 11:29:09 -07:00
James Phillips db9a72dde1
Merge branch 'master' into f-deregister-critical 2016-08-16 12:53:21 -07:00
James Phillips 607595f99e
Cleans up based on code review feedback. 2016-08-16 12:52:30 -07:00
James Phillips bc333335be
Adds an `X-Consul-Translate-Addresses` to signal translation is enabled. 2016-08-16 11:31:41 -07:00
James Phillips 817d7e93e4
Adds an "lan" tagged address so we have a way to get them all.
If we didn't have this, then there would be no way to know the LAN
address if address translation was turned on.
2016-08-16 10:49:03 -07:00
James Phillips b4f981c837
Adds ability to deregister a service based on critical check state longer than a timeout. 2016-08-16 01:00:26 -07:00
James Phillips 12e6db464b
Tweaks the WAN address translation unit tests. 2016-08-15 15:34:11 -07:00
James Phillips c066c2e70a
Factors translate out into a separate file and makes safe for in-memory RPCs. 2016-08-15 15:05:02 -07:00
Xingyu Chen 07d141570c Update gated_writer.go 2016-08-14 16:36:21 +08:00
David van Geest 360e196c93
Translate Address to tagged WAN address in HTTP API when appropriate. 2016-08-12 18:25:36 -07:00
James Phillips 8e8f840169
Updates built-in UI static assets to latest. 2016-08-12 18:01:59 -07:00
James Phillips 4915790bdc
Runs `go fmt`. 2016-08-12 17:26:23 -07:00
James Phillips 6c4a8d8383
Tweaks DNS prepared query failover unit test. 2016-08-12 17:16:08 -07:00
Max Timchenko 90f49354d6
Corrects two issues with DNS prepared query failover
When DNS prepared query fails over to another datacenter and the datacenter
returns some nodes, the DNS result does not translate WAN addresses even when
translation is enabled for SRV and A queries, and returns the wrong datacenter
(the one that failed over) for SRV queries.
2016-08-12 17:06:43 -07:00
James Phillips a379078e3e Merge pull request #2267 from hashicorp/b-srv-trim
Fixes bug when trimming DNS SRV records.
2016-08-12 14:57:20 -07:00
James Phillips a666dc44b3
Passes the index by reference so we can control the allocation. 2016-08-12 14:51:50 -07:00
James Phillips de95fe8638
Makes name compares case-insensitive. 2016-08-12 12:16:21 -07:00
R.B. Boyer 291a468c87
Validate gossip encryption key before made persistent in local.keyring 2016-08-12 11:42:45 -07:00
James Phillips 45e2879eb5
Avoids allocations and function calls if no extra data is present. 2016-08-12 10:29:57 -07:00
James Phillips e05c77b9bf
Renames "seen" to "resolved". 2016-08-11 22:01:57 -07:00
James Phillips 6c22c48326
Fixes the DNS SRV trim bug. 2016-08-11 21:46:14 -07:00
James Phillips 086a5af5ff
Finishes up DNS compression by adding opt-out, tests, and documentation. Fixes trim routine. 2016-08-11 16:27:08 -07:00
epipho f31f1c04e9
Fix panic where r.Compress would be set before checking for errors. 2016-08-11 16:27:08 -07:00
epipho 6d17b4eb67
Compress all DNS responses to prevent them from going over the 512 byte
limit from RFC 1035
2016-08-11 16:27:08 -07:00
James Phillips f471c6e2ad Merge pull request #2264 from hashicorp/pr-2045-slackpad
Enables stale mode for watchers.
2016-08-10 15:58:34 -07:00
James Phillips 32cf81e59c
Fixes a typo and adds stale documentation to website. 2016-08-10 15:46:28 -07:00
sweeneyb e8117ba622 Add support for dns port as a command line option 2016-08-10 04:05:56 +00:00
chenxingyu 53009f2466 fix go race bug 2016-08-10 10:44:20 +08:00
James Phillips b566c094bb
Updates bindata after vendor update. 2016-08-09 19:03:10 -07:00
James Phillips f00e49112a
Installs a wrapper around HTTP endpoints that generate metrics. 2016-08-09 15:41:15 -07:00
James Phillips 3585b5a4cb Merge pull request #2237 from hashicorp/f-acl-replication
Adds ACL replication.
2016-08-09 11:42:16 -07:00
James Phillips 2acb287690
Fixes JS exception when there are no coordinates present. 2016-08-08 17:38:22 -07:00
James Phillips 4a931ae12e
Adds an ACL replication status endpoint. 2016-08-04 23:30:16 -07:00
James Phillips c4ae68010b
Hides the acl_replication_token from JSON output, like in /v1/agent/self. 2016-08-03 21:24:09 -07:00
James Phillips 9cece515c0
Adds basic ACL replication plumbing. 2016-08-03 21:24:04 -07:00
Cameron Davison 40d1c279dd
atomic write service state and checks files, fixes #1221 2016-08-03 10:34:12 -05:00
Hasyimi Bahrudin b2ad8114fe Remove redundant hardcoded environment variables
The following hardcoded environment variables are removed:

* CONSUL_RPC_ADDR
* CONSUL_HTTP_ADDR
2016-08-03 14:40:26 +08:00
Abhinav Dahiya 9dc52449e3 Fixes #1775; Removes 'unknown' state
Signed-off-by: Abhinav Dahiya <abhinavdtu2012@gmail.com>
2016-07-30 19:33:14 +05:30
James Phillips 72208b6929 Merge pull request #2207 from grange74/leave-command-args-check
add extra check for unexpected args to leave command
2016-07-23 14:52:13 -07:00
nick.grange 63ec2dd465 add extra check for unexpected args to leave command 2016-07-24 00:36:59 +10:00
James Phillips 5d83d507b4 Adds consul info data into /v1/agent/self endpoint. 2016-07-20 15:12:26 -07:00
James Phillips 4a7b55c8cb Fixes startup version print to show the human version. 2016-07-20 08:09:05 -07:00
James Phillips 9816c995bd Adds version info back into the config.
In #2191 I accedentally broke SCADA by not populating the agent's version
information into the config structure. This adds it back, and makes the
distinction between the raw parts we send to APIs and the human form of
the version that we display.
2016-07-19 18:38:15 -07:00
James Phillips 51fbad91fd Merge pull request #2193 from hashicorp/pr-2188-slackpad
Adds Circonus support for telemetry metrics.
2016-07-19 17:15:29 -07:00
James Phillips ca5f42d61d Tweaks the docs a bit. 2016-07-19 15:54:52 -07:00
James Phillips 9b36671fd6 Removes top-level key support for Circonus configs.
This was a feature to help migrate to the new telemetry sub-structure,
but since this is all new we don't need it.
2016-07-19 15:46:57 -07:00
James Phillips 53877aa260 Makes sure version is always displayed consistently. 2016-07-19 15:06:32 -07:00
richard.hulm f11a0145ab RH: Add revision (if it exists) 2016-07-19 10:04:56 +01:00
matt maier 87e29fd709 fix: typo coupled, default token app to "consul", switch submit_interval/SubmitInterval to submission_interval/SubmissionInterval 2016-07-18 15:46:11 -04:00
matt maier c5a6cb8b4c Add Circonus support for Telemetry metrics 2016-07-18 09:34:43 -04:00
richard.hulm c2b78eac7d Add the version (from config) to the Starting Consul Agent printout 2016-07-18 10:01:16 +01:00
Evan Gilman c5b30cba6f
Merge branch 'master' into let-watches-be-stale
Attempt to let the tests pass
2016-07-13 11:20:44 -07:00
Ryan Uber 62d0edbdd4 Merge pull request #1847 from mssola/dc-to-datacenter
[proposal] command: deprecated the -dc flag in the agent CLI
2016-07-05 13:01:51 -07:00
Ryan Uber e9960e6c85 Merge pull request #2137 from hashicorp/f-pq-near
Support "near" parameter in prepared query service block
2016-07-01 12:28:48 -07:00
Ryan Uber 134f66e3d4 agent: parseSource still subs for _agent 2016-07-01 10:04:58 -07:00
Ryan Uber 5089561b1b agent: test that DNS passes the agent data through 2016-07-01 09:46:26 -07:00
Ryan Uber ebacaa2d67 consul: send agent source data as separate query source 2016-06-30 16:51:18 -07:00
Ryan Uber ec8ade1800 agent: always pass local agent query source, allow override 2016-06-30 12:11:48 -07:00
Ryan Uber aae9c2eb30 agent: fix test 2016-06-21 16:28:26 -07:00
Ryan Uber 270270a33a consul: send origin node + dc when executing prepared queries 2016-06-21 15:34:26 -07:00
Ryan Uber 114e57fff1 consul: use the Near field instead of PreferLocal 2016-06-21 12:39:40 -07:00
James Phillips f9e2900692 Merge pull request #2131 from hashicorp/b-misc-microoptimizations
Misc micro optimizations
2016-06-21 09:59:01 -07:00
Sean Chittenden 949829295a
Pack Port to be slightly more optimal in terms of struct memory usage. 2016-06-20 15:31:17 -07:00
Sean Chittenden c90fc057d4
Give log reviewers a hint as to which check is failing 2016-06-20 15:25:21 -07:00
Sean Chittenden 8baf0d7a95
Use stable, monotonically increasing port numbers for tests 2016-06-20 14:33:46 -07:00
Ryan Uber 89660879a0 agent: set origin during PQ execution 2016-06-20 14:24:42 -07:00
Sean Chittenden 7482a9207d
Chase casting types.CheckID to a string into the state_store.
It turns out the indexer can only use strings as arguments when
creating a query.  Cast `types.CheckID` to a `string` before calling
into `memdb`.

Ideally the indexer would be smart enough to do this at compile-time,
but I need to look into how to do this without reflection and the
runtime package.  For the time being statically cast `types.CheckID`
to a `string` at the call sites.
2016-06-07 16:59:02 -04:00
Sean Chittenden ff45f8c8ff
Revert "Move `structs.CheckID` to a new top-level package, `types`."
This reverts commit 2bbd52e3b44ff1b60939a8400264d534662d6d51.
2016-06-07 16:59:02 -04:00
Sean Chittenden a4554b945c
Move `structs.CheckID` to a new top-level package, `types`.
Per discussion w/ @slackpad, move this type to its own top-level package
2016-06-07 16:59:02 -04:00
Sean Chittenden cd68cd3868
Move `structs.CheckID` to a new top-level package, `types`.
Per discussion w/ @slackpad, move this type to its own top-level package
2016-06-07 16:59:02 -04:00
Sean Chittenden 0857e93d0b
Float a type balloon. Some strings are square pegs in round holes.
This experiment was brought about because of variable naming
confusion where name and checkIDs were interchanged.  Gave CheckID
an Qualified Type Name and chased downstream changes.
2016-06-07 16:59:02 -04:00
James Phillips 1955eadc12 Updates web assets to pull in RTT viz. 2016-06-07 09:32:44 -07:00
James Phillips 5f334d94fa Removes stale scada client and test sections that use (now) unexported fields.
Fixes #2092.
2016-06-06 19:18:31 -07:00
Jeff Mitchell e061d89fe9 Use upstream high-level SCADA provider 2016-06-01 18:25:39 -04:00
Nathan Zadoks 53c14e139f Parse ACL tokens for the catalog register/deregister endpoints
Fix #1738
2016-05-17 13:16:33 -04:00
James Phillips ffcba3df58 Merge pull request #2028 from hashicorp/f-atomic-kv
Adds support for atomic transactions spanning multiple KV entries.
2016-05-15 13:46:05 -07:00
Sean Chittenden d25ab4440d
Remove completely unused structs 2016-05-15 09:14:36 -07:00
Sean Chittenden b20f86b4c7
Speling police 2016-05-15 09:13:52 -07:00
James Phillips c786e1d457 Reduces the number of operations in a transaction to 64. 2016-05-14 21:40:46 -07:00
James Phillips a11f32a1da Adds a get-tree verb to KV transaction operations. 2016-05-13 16:57:39 -07:00
James Phillips 77ae55c692 Adds some size limiting features to transactions to help prevent abuse. 2016-05-13 13:39:01 -07:00
James Phillips 2649a6336e Adds a read-only optimized path for transactions. 2016-05-13 00:34:05 -07:00
James Phillips 2ed48480e9 Hoists KV processing helper functions up as static functions. 2016-05-12 16:10:06 -07:00
Justin Lambert 1c8d20ba6a allow automatically discovering aws ec2 consul servers 2016-05-11 19:41:41 -06:00
James Phillips 3d35acaa90 De-nests the KV output structure (removes DirEnt member). 2016-05-11 13:48:03 -07:00
James Phillips 04a13ec3d7 Switches to "KV" instead of "KV" for the KV operations. 2016-05-11 10:58:27 -07:00
James Phillips dc662f7e35 Refactors TxnRequest/TxnResponse into a form that will allow non-KV ops.
This isn't needed/used yet, but it's a good hook to get in there so we
can add more atomic operations in the future. The Go API hides this detail
so that feels like a KV-specific API. The implications on the REST API are
pretty minimal.
2016-05-11 01:39:10 -07:00
James Phillips d980cbcd9d Moves txn code into a new endpoint, not specific to KV. 2016-05-10 21:58:02 -07:00
James Phillips 54b930103c Terminates pretty responses with a newline. 2016-05-10 20:02:36 -07:00
James Phillips 15a331d36c Adds unit tests for HTTP endpoint. 2016-05-10 12:59:34 -07:00
Evan Gilman bf2760ac18
Enable Stale mode for watchers
Solves https://github.com/hashicorp/consul/issues/917 by giving consul
watch a `-stale` flag
2016-05-10 00:09:15 -07:00
James Phillips 471160d8f0 Performs basic plumbing of KVS transactions through all the layers. 2016-05-09 22:15:49 -07:00
Sean Chittenden b34b1f85aa Include the current version along side the available version.
When checkpoint emits a log message indicating an agent is out of
date, include the current version along with the available version
according to checkpoint.

Inspired by: log output in #993
2016-05-04 22:57:44 -07:00
James Phillips 0f7f07d2f5 Fixes some bad error returns in the persist service and check paths. 2016-04-26 15:03:26 -07:00
James Phillips 03b0c196e0 Merge pull request #1762 from mshean/script-timeout
Add Timeout field to CheckMonitor
2016-04-24 23:08:06 -07:00
Sean Chittenden 65f9017c63 Update Check API to use constants
Use constants where appropriate to advocate their use.  Also add a deprecation notice re: `updateTTL`.
2016-04-23 16:01:59 -07:00
James Phillips 6182a34600 Merge pull request #1935 from hashicorp/f-reap-time
Makes reap time configurable for LAN and WAN.
2016-04-20 13:50:21 -07:00
James Phillips bc6efbae18 Sets an anti-footgun floor for the configurable reap time. 2016-04-20 13:49:51 -07:00
Matt Shean 7e617d6086 add Timeout field to CheckMonitor 2016-04-20 11:41:30 -07:00
Ryan Uber 9e82074f49 agent: limit HTTP check output to 4k 2016-04-14 14:28:07 -07:00
James Phillips 79153c3014 Merge pull request #1884 from mtchavez/1541-data-dir-perms
command: Data directory permission error message
2016-04-12 22:06:49 -07:00
James Phillips 422adaf168 Makes a detached copy of the tags when doing the override. 2016-04-11 14:53:18 -07:00
James Phillips 50e1d661ad Tweaks comment about side effects. 2016-04-11 08:58:17 -07:00
James Phillips 32389a9822 Makes reap time configurable for LAN and WAN. 2016-04-11 00:38:25 -07:00
James Phillips c1c8a0b70c Merge pull request #1934 from hashicorp/b-check-output
Syncs a check's output with the catalog when output rate limiting isn't in effect.
2016-04-11 00:37:50 -07:00
James Phillips 9773cc28ca Uses the HealthCheck Clone() method in local_test.go. 2016-04-11 00:20:24 -07:00
James Phillips 3f340716fd Adds a clone method to HealthCheck and uses that in local.go. 2016-04-11 00:05:39 -07:00
James Phillips f6fe6a2197 Syncs a check's output with the catalog when output rate limiting isn't in effect. 2016-04-10 21:20:39 -07:00
Alex Myasoedov b89c2063bd #1878 Set default bind address to 127.0.0.1 in development mode 2016-04-07 21:25:33 +03:00
James Phillips 07e7d551f9 Removes a bogus warning for Windows. 2016-04-05 18:04:23 -07:00
James Phillips 419a90031f Updates static assets to pull in #1702. 2016-04-04 12:21:23 -07:00
Sean Chittenden 80cfe3d1ab Clean up verifyUniqueListners
The first pass over this was a hackjob in the sense that it was not elegant.  Fixed.

Pointed out by: subcionscious in the middle of the night
2016-04-04 11:03:49 -07:00
Chavez f75c0f4390 Retry http server connecting in agent/http_test 2016-04-01 19:17:38 -07:00
Chavez 09f962a75b Test agent RPC client connection retries 2016-04-01 19:17:38 -07:00
Chavez 10f297e8fc 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 fca71e1974 Rely exclusively on error to signal failure
Pointed out by: slackpad
2016-04-01 10:34:45 -07:00
Sean Chittenden 4660cb969f 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 9eaffc456f 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 08aa037dd3 Guard against a node name containing pure whitespace for real 2016-03-31 15:10:19 -07:00
Sean Chittenden faa2aa4436 Guard against a node name containing pure whitespace 2016-03-31 15:02:58 -07:00
Sean Chittenden c03d025903 Node names are not allowed to be empty 2016-03-31 14:47:55 -07:00
Sean Chittenden 85c1da796d 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 12f1a71f00 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 1bcf8d9b33 Editorialize the comment re: UDPAnswerLimit
Prodded by: slackpad & fusiondog
2016-03-30 01:15:40 -07:00
Sean Chittenden 9d7a6d895a 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 49f8b147b8 Remove duplicate paste-o
Pointed out by: slackpad
2016-03-29 23:31:31 -07:00
Sean Chittenden 8f7bed30a6 Test services and PQT limits 2016-03-29 23:08:58 -07:00
Sean Chittenden 6392dfe0e3 Improve the use of constants across DNS tests 2016-03-29 23:08:40 -07:00
Sean Chittenden b2e0baec4e Use a non-default config value 2016-03-29 23:06:31 -07:00
Sean Chittenden fbf1e5c939 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 c3dcd9acfb Correctly detect that an answer has been truncated 2016-03-29 19:52:31 -07:00
Sean Chittenden 0ad4fab7d4 Remove dead and incorrect code
This functionality is handled further upstream in `trimUDPAnswers()`
2016-03-29 19:38:26 -07:00
Sean Chittenden d1166307aa Trim UDP responses per configuration 2016-03-29 19:27:21 -07:00
Sean Chittenden a29f6e8c8f 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 e533f9bce1 Adding singleton option to DNS for getaddrinfo bug. 2016-03-29 19:23:07 -07:00
Sean Chittenden 74c8da079e Fix whitespace alignment in a comment 2016-03-23 16:00:39 -07:00
James Phillips 2c61c1d333 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 4629871f57 Widens coordinate update sleeps in unit tests. 2016-03-21 18:23:11 -07:00
Hrishikesh Barua bcca7efe83 Added help text for -dev option #1804 2016-03-21 17:27:57 +05:30
James Phillips 13b8ce0adc Merge pull request #1851 from hashicorp/f-ipv6-bind
Allow [::] as a bind address (binds to first public IPv6 address)
2016-03-19 16:16:19 -07:00
Wim 508bc796a8 Allow [::] as a bind address (binds to first public IPv6 address) 2016-03-18 23:59:44 +01:00
Miquel Sabaté Solà 79d49336a8 Used 'unconvert' to remove unneeded conversions
I've removed unneeded conversions by performing the following commands:

    $ go get -u github.com/mdempsky/unconvert
    $ go list ./... | grep -v vendor | xargs unconvert -apply

Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
2016-03-18 16:12:56 +01:00
Miquel Sabaté Solà 314a0913e2 command: deprecated the -dc flag in the agent CLI
The `-dc` flag from the agent CLI command has been deprecated in favor of
`-datacenter`. This is done this way because:

- Other CLI commands used `-datacenter`. See: event, exec and watch.
- The agent configuration file uses `datacenter`.

Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
2016-03-18 15:44:35 +01:00
James Phillips dda84c0f58 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 30dba02fa3 Adds default set of accept headers for HTTP checks. 2016-03-09 21:11:20 -08:00
James Phillips b132e8f21b 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 f4edb28ef3 Make sure UDP DNS responses aren't larger than allowed 2016-03-07 16:41:17 -08:00
James Phillips cb1bf35ce9 Updates to latest compiled ui assets. 2016-03-07 13:49:08 -08:00
James Phillips 275c84a0cc Renames "debug" endpoint and structures to "explain". 2016-03-07 10:45:39 -08:00
James Phillips 8493640b09 Adds a prepared query debug endpoint. 2016-03-07 10:45:39 -08:00
Calvin Leung Huang f6c1ffa943 Correct the rtt -wan error message 2016-03-04 16:27:30 -05:00
James Phillips bfe6f073fe Tweaks formatting of inline output messages. 2016-03-02 19:47:00 -08:00
James Phillips d709ef537b Retains the last output when a TTL check times out. 2016-03-02 17:58:01 -08:00
James Phillips bd4f2ee6b7 Adds a new PUT-based TTL check update endpoint. 2016-03-02 17:54:01 -08:00
Stefan Engstrom b20278cadc add accept header */* for agent check 2016-02-19 10:31:00 -06:00
James Phillips a29c1ee04e 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 cbdff8296f Fixes redirect from / to /ui when internal UI is enabled. 2016-02-12 16:11:32 -08:00
Chris Cooper 1327d9eff6 add missing test 2016-02-09 10:49:41 -05:00
Chris Cooper a2533d5d76 fixes issue #1661 and adds supporting test 2016-02-09 10:35:39 -05:00
James Phillips 968bd6321c Adds a sanity check to the local node info compare. 2016-02-07 15:07:23 -08:00
James Phillips 9fabd05157 Merge pull request #1698 from hashicorp/pr-1547-slackpad
Implements WAN address translation.
2016-02-07 14:26:04 -08:00
James Phillips 6797b3ee85 Adds a test to make sure we get the local address within the DC. 2016-02-07 14:16:15 -08:00
James Phillips 3be9f16030 Increases wait to account for random stagger. 2016-02-07 13:56:45 -08:00
James Phillips a61a7403a7 Factors address translation into a single function. 2016-02-07 13:39:37 -08:00
James Phillips f163522f0c Moves tagged wan address to be managed by anti-entropy, not serf. 2016-02-07 13:12:42 -08:00
James Phillips 81e416e70b Adds a test to make sure the local sync doesn't clobber tagged addresses. 2016-02-07 11:26:19 -08:00
James Phillips 79bd1fd4bb Sets up config for more address tags down the road, renames struct members. 2016-02-07 10:37:34 -08:00
Evan Gilman 71cf39b5f8 Use a map for additional node addresses 2016-02-06 23:01:45 -08:00
Evan Gilman a8fd9542dc Add tests for consul WAN translation 2016-02-06 23:01:45 -08:00
Evan Gilman 28ce1b079f 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 d18dc81749 Consider WAN addresses during Node and SRV record lookup 2016-02-06 23:01:45 -08:00
Evan Gilman 0b741350b9 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 d123b4dece 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 1a828e3927 Store WanAddress during Service/Check sync 2016-02-06 23:01:45 -08:00
James Phillips 5aedfbac34 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 a599e88507 Merge pull request #1284 from nbrownus/telemetry
Option to disable hostnames from telemetry
2016-02-06 22:00:14 -08:00
David Wittman 0b90de4d1b Fix formatting in exec help
The description for `-node` was separated by tabs instead of spaces,
causing it to be incorrectly aligned.
2016-02-06 12:28:56 -06:00
James Phillips 7273fb0470 Merge pull request #1654 from ryanslade/invalid-check-message
Updated invalid check error message.
2016-02-05 17:21:29 -08:00
Chris Cooper de4129fced Merge branch 'master' of https://github.com/alistanis/consul into use-http-package-statuses 2016-02-05 17:30:43 -05:00
Chris Cooper 0ce79f8198 add comment codes 2016-02-05 17:06:42 -05:00
Chris Cooper 4890220929 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 5ac7b893cc Use panic instead of returning a sentinel UUID values in unit tests 2016-02-01 16:42:04 -08:00
Sean Chittenden c470553b6b 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 541a98c9c7 Option to disable hostnames from telemetry 2016-01-29 13:44:48 -08:00
Ryan Slade 37c7a0e006 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 0fcdd37107 Fixes the static asset generator for new pkg path, updates assets. 2016-01-15 10:21:42 -08:00
Seth Vargo dc9131a732 Use HTTPS + www. where appropriate 2016-01-13 17:44:01 -05:00
James Phillips b21ef7330f Merge pull request #1592 from hashicorp/b-reap
Adds support for the reap lock.
2016-01-13 09:37:54 -08:00
James Phillips d22fe5ba62 Adds support for the reap lock. 2016-01-12 21:10:25 -08:00
Matt McCoy f8a6b6db83 Add consul agent help for advertise-wan 2016-01-11 14:27:54 -05:00
James Phillips 6dd0835319 Makes the timeout behavior more intuitive.
Previously, it would try once "up to" the timeout, but in practice it would
just fall through. This modifies the behavior to block until the timeout has
been reached.
2016-01-06 09:40:20 -08:00
James Phillips 87dd758199 Defaults monitor retries to 3 retries @ 1s for the consul lock command. 2016-01-05 18:34:22 -08:00
James Phillips 9323276b58 Adds monitor retries to the consul lock command. 2016-01-05 18:22:36 -08:00
James Phillips 3348cf4c0b Adds "try" support to locks and semaphores. 2016-01-05 18:22:36 -08:00
James Phillips df361afed5 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 e308bc3733 remove address splitting 2016-01-05 11:49:40 -05:00
Philippe M. Chiasson 6f316138d3 Move logged client IP to the end of the log message 2015-12-30 15:39:34 -05:00
Philippe M. Chiasson 8e938d4d38 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 f37c0facbe agent: enable ui for dev mode 2015-12-26 20:39:42 -05:00
Ryan Uber ce4cf8a542 consul: dev mode works 2015-12-26 20:19:36 -05:00
Ryan Uber b04510f934 agent: update assetfs output 2015-12-24 22:21:34 -05:00
Ryan Uber 52ad989405 agent: static UI is configurable 2015-12-24 22:21:34 -05:00
Ryan Uber 86f76205aa agent: initial web assets 2015-12-24 22:21:34 -05:00
Ryan Uber a262115679 agent: compile web assets into consul binary 2015-12-24 22:21:34 -05:00
Philippe M. Chiasson b8f8861d97 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 4dd7a5fbaa Adds a Bool helper function. 2015-12-22 10:43:32 -08:00
James Phillips d71036c4f0 Moves logger down where it's used for reaping. 2015-12-22 10:29:55 -08:00
James Phillips e1d456a079 Changes sense of option to "reap" and uses nil for "not set". 2015-12-22 10:28:10 -08:00
James Phillips 1e4aa28c9d Adds child process reaping when Consul is running as PID 1. 2015-12-21 21:47:35 -08:00
James Phillips 874d491ade 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 9e0ac674c3 Adds telemetry on number of DNS queries served, per-agent. 2015-12-21 17:01:28 -08:00
WangFenjin dcecbf4653 Fix typo 2015-12-08 17:45:01 +08:00
James Phillips b87aeec4e1 Removes the GOMAXPROCS warnings which are obsolete for Go 1.5+. 2015-11-25 17:59:16 -08:00
Philippe M. Chiasson 396df9a0c1 Add client ip to http access logs
Fixes #1447
2015-11-24 15:06:33 -05:00
James Phillips 23536f2b97 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 573f48ed3d Breaks up huge HTTP endpoint functions. 2015-11-17 09:16:04 -08:00
James Phillips a364a02da6 Avoids taking the length again when parsing DNS queries. 2015-11-17 08:40:47 -08:00
James Phillips a1e02996e5 Moves conversion of nil slices up to HTTP layer for prepared queries. 2015-11-15 17:06:00 -08:00
James Phillips 267c352c6d Adds a test to make sure a stale retry terminates. 2015-11-15 17:06:00 -08:00
James Phillips e6ccf5b9ed Returns a 404 from a get or execute of a nonexistent query. 2015-11-15 17:06:00 -08:00
James Phillips c9ef552385 Plumbs the service name back and uses agent-specific TTL settings as a fallback. 2015-11-15 17:06:00 -08:00
James Phillips cad6938474 Adds unit tests for prepared queries and DNS, using existing tests for equivalence. 2015-11-15 17:06:00 -08:00
James Phillips f9c91479ef Adds DNS support for prepared queries (needs tests). 2015-11-15 17:06:00 -08:00
James Phillips 38daaea503 Adds a slightly more flexible mock system so we can test DNS. 2015-11-15 17:06:00 -08:00
James Phillips 978fb443a7 Adds a note about obfuscating query name/ID from the logs. 2015-11-15 17:06:00 -08:00
James Phillips 124410b66c Adds an HTTP endpoint for prepared queries. 2015-11-15 17:06:00 -08:00
James Phillips a33e35fcce Moves DNS over to new shuffle and filter functions. 2015-11-15 17:06:00 -08:00
James Phillips 763d5ea8a7 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 a384baf671 Merge pull request #1293 from talwai/master
Add options to send telemetry to DogStatsD
2015-11-13 09:51:50 -08:00
talwai 01ccad69a1 Kill unused import in command.go 2015-11-13 11:14:15 -05:00
James Phillips 67408fe477 Fixes unit test fail due to expected truncated message. 2015-11-12 18:16:44 -08:00
talwai e6e842d9e7 Add DogStatsd configuration 2015-11-11 14:30:36 -05:00
James Phillips 9107521c17 Fixes a go vet finding. 2015-10-29 12:47:20 -07:00
James Phillips eb4bfa3411 Prevents agents from considering Raft information when doing sync checks. 2015-10-28 14:32:00 -07:00
James Phillips c1305a08ea Makes the version upshift code look at the correct version field. 2015-10-27 14:44:34 -07:00
Diptanu Choudhury 3b5eefb713 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 fb0cae7320 Forcing the Env variable to empty while testing the default shell logic 2015-10-26 20:35:13 -07:00
Diptanu Choudhury 9070d12b2f Added a test for selecting shell from env 2015-10-26 20:21:50 -07:00
Diptanu Choudhury 8af6ac8f16 Making an explicit check to test whether a check is of type Monitor 2015-10-26 19:52:32 -07:00
Diptanu Choudhury f8a03508ad Fixed the tests 2015-10-26 18:20:02 -07:00
Diptanu Choudhury 15ff470a79 Added a test to check if we are properly truncating docker exec outputs 2015-10-26 18:06:55 -07:00
Diptanu Choudhury 709b518d03 Added a test for exit code 1 with docker exec 2015-10-26 16:58:09 -07:00
Diptanu Choudhury c8c08586f0 Fixed the Fake Docker client to simulate Exec start failures 2015-10-26 16:54:51 -07:00
Diptanu Choudhury fd6d57ccac Not adding the docker check if we couldn't create the client 2015-10-26 16:45:12 -07:00
Diptanu Choudhury 210b968037 Making sure the script is not empty if it's a docker check 2015-10-26 16:27:48 -07:00
Diptanu Choudhury 0a657b2602 Updated the comment for CheckType 2015-10-26 15:28:13 -07:00
Diptanu Choudhury 2276ebc978 Collect and truncate the output from docker exec 2015-10-26 15:19:35 -07:00
Diptanu Choudhury 0de0abcaec Defaulting to Monitor check 2015-10-26 15:02:23 -07:00
Diptanu Choudhury d2bd1b0c3f 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 f445318732 Added some tests for docker check 2015-10-26 12:59:40 -07:00
James Phillips b50b0a8526 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 d478fa9470 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 b35836fdad Adding a debug log to indicate the exit code of failed check 2015-10-26 10:35:51 -07:00
Diptanu Choudhury 1b1518512c Registering the Exec with Docker Daemon everytime the check is invoked 2015-10-26 10:23:57 -07:00
Diptanu Choudhury c4b85010fb Implemented Docker health checks 2015-10-26 10:23:57 -07:00
James Phillips 2a51d55ce3 Runs go fmt (sorts new go-cleanhttp imports). 2015-10-23 17:14:35 -07:00
James Phillips b91e2d3a97 Completes rebase of network coordinates to new memdb. 2015-10-23 15:23:01 -07:00
James Phillips b9732e3c39 Gives RTT class a more Go-like name. 2015-10-23 15:23:01 -07:00
James Phillips c48e3e1179 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 a51e170eef Cleans up after code review, adds a -short option to "consul rtt" command. 2015-10-23 15:23:01 -07:00
James Phillips 43df5c6784 Adds a "consul rtt" command. 2015-10-23 15:23:01 -07:00
James Phillips aea2194ce3 Makes the default protocol 2 and lets 3 interoperate with 2. 2015-10-23 15:23:01 -07:00
James Phillips baa223ab4a Runs go fmt after latest rebase. 2015-10-23 15:23:01 -07:00
James Phillips 8e67c37398 Adds a test for the `DisableCoordinate` config. 2015-10-23 15:23:01 -07:00
James Phillips 3f11bfaea4 Adds coordinate of agent to self endpoint. 2015-10-23 15:23:01 -07:00
James Phillips a74bdcba49 Moves sorting up into coordinate endpoint HTTP handlers. 2015-10-23 15:23:01 -07:00
James Phillips 0e7d5871c5 Installs a friendly handler for coordinate endpoints when coordinates are disabled. 2015-10-23 15:23:01 -07:00
James Phillips def8c6087d Fixes config merge fn for disabling coordinates and adds it to JSON. 2015-10-23 15:23:01 -07:00
James Phillips a2bcef00a0 Adds endpoints for raw network coordinates. 2015-10-23 15:23:01 -07:00
James Phillips fecd639b02 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 ee1cf1e13b Adds distance sorting to health endpoint. Cleans up unit tests. 2015-10-23 15:23:01 -07:00
James Phillips 1724b9a6be Adds a magic "self" node name to distance queries. 2015-10-23 15:23:01 -07:00
James Phillips 59b710894d Adds tests for HTTP interface. Removes a stray mark. 2015-10-23 15:23:01 -07:00
James Phillips b63909cf67 Adds coordinate sorting support to catalog queries for nodes and service nodes. 2015-10-23 15:23:01 -07:00
James Phillips d7bac0e808 Turns down the coordinate sync rate a bit more. 2015-10-23 15:23:01 -07:00
James Phillips 9ba9a708f6 Scales coordinate sends to hit a fixed aggregate rate across the cluster. 2015-10-23 15:23:01 -07:00
James Phillips d8b8a3719f Simplifies the batching function and adds some comments. 2015-10-23 15:23:01 -07:00
James Phillips f71c79c53f 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 1222772452 Hardens Consul from bad coordinates from other nodes. 2015-10-23 15:23:01 -07:00
James Phillips acb0dce829 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 b6c31bdf2f Flips the sense of the coordinate enable option. 2015-10-23 15:23:01 -07:00
James Phillips 9c069c5031 Removes one more WAN leftover. 2015-10-23 15:23:01 -07:00
James Phillips edb9a119e2 Does a clean up pass on the Consul side. 2015-10-23 15:23:01 -07:00
James Phillips ac4185b888 Merges config changes after rebase. 2015-10-23 15:23:01 -07:00
Derek Chiang 139c9240ea Address comments 2015-10-23 15:23:01 -07:00
Derek Chiang 840474f170 Add a test case 2015-10-23 15:23:01 -07:00
Derek Chiang 23c08aeeb4 Use IndexedCoordinate instead 2015-10-23 15:23:01 -07:00
Derek Chiang 530e73212a Some fixes 2015-10-23 15:23:01 -07:00
Derek Chiang 2ef802b8b3 Fix a comment 2015-10-23 15:23:01 -07:00
Derek Chiang b2cff43bb5 Complete logic for sending coordinates 2015-10-23 15:23:01 -07:00
Derek Chiang 66b210afcb Some fixes 2015-10-23 15:23:01 -07:00
Derek Chiang b5bbe2bcfa Adding tests and stuff 2015-10-23 15:23:01 -07:00