Sean Chittenden
18885e3214
cycleServer is a pure function, save the result
2016-03-23 22:10:50 -07:00
Sean Chittenden
4ec9ed4de2
Missed unit test cruft
2016-03-23 22:10:50 -07:00
Sean Chittenden
b906e40811
Update comments to reflect reality
2016-03-23 22:10:50 -07:00
Sean Chittenden
1a09a5b2cf
Remove additional cruft from ServerManager's channels
...
No longer needed code.
2016-03-23 22:10:50 -07:00
Sean Chittenden
c980d492c6
Emulate a TryLock using atomic.CompareAndSwap
...
Prevent possible queueing behind serverConfigLock in the event that a server fails on a busy host.
2016-03-23 22:10:50 -07:00
Sean Chittenden
102dcafe76
Make use of interfaces
...
Use an interface instead of serf.Serf as arg to NewServerManager. Bonus points for improved testability.
Pointed out by: @slackpad
2016-03-23 22:10:50 -07:00
Sean Chittenden
231768faea
Simplify error handling
...
Rely on Serf for liveliness. In the event of a failure, simply cycle the server to the end of the list. If the server is unhealthy, Serf will reap the dead server.
Additional simplifications:
*) Only rebalance servers based on timers, not when a new server is readded to the cluster.
*) Back out the failure count in server_details.ServerDetails
2016-03-23 22:10:50 -07:00
Sean Chittenden
0c519aa90d
Unbreak client tests by reverting to original test
...
Debugging code crept into the actual test and hung out for much longer than it should have.
2016-03-23 22:10:50 -07:00
Sean Chittenden
26e51376d9
Introduce asynchronous management of consul server lists
...
Instead of blocking the RPC call path and performing a potentially expensive calculation (including a call to `c.LANMembers()`), introduce a channel to request a rebalance. Some events don't force a reshuffle, instead the extend the duration of the current rebalance window because the environment thrashed enough to redistribute a client's load.
2016-03-23 22:10:50 -07:00
Sean Chittenden
6ed37d1d8d
Comment nits
2016-03-23 22:10:50 -07:00
Sean Chittenden
c8ab3ae4cb
Use saveServerConfig vs atomic.Value.Store(config)
2016-03-23 22:10:50 -07:00
Sean Chittenden
12377e80e6
Commit a handful of refactoring && copy/paste-o fixes
2016-03-23 22:10:50 -07:00
Sean Chittenden
c1c17f158b
Mutate copies of serverCfg.servers, not original
...
Removing any ambiguity re: ownership of the mutated server lists is a win for maintenance and debugging.
2016-03-23 22:10:50 -07:00
Sean Chittenden
753766cc5d
rebalanceTimer may be nil during initialization
...
When first starting the server manager, it's possible that the rebalanceTimer in serverConfig will be nil, test accordingly.
2016-03-23 22:10:50 -07:00
Sean Chittenden
d0e2792d5c
Properly retain a pointer to the rebalanceTimer
2016-03-23 22:10:50 -07:00
Sean Chittenden
62785de865
Cosmetic and various other wordsmithing cleanups
2016-03-23 22:10:50 -07:00
Sean Chittenden
31de4290cf
Document the various functions and their locking
2016-03-23 22:10:50 -07:00
Sean Chittenden
ffcd939feb
Use config convenience method to get config
...
'cause ELETTHECOMPILERSDOTHEWORK. I don't need that cluttering up the subconscious with more complexity.
2016-03-23 22:10:50 -07:00
Sean Chittenden
ed7fee7a3c
Move consul.serverConfig out of the consul package
...
Relocated to its own package, server_manager. This now greatly simplifies the RPC() call path and appropriately hides the locking behind the package boundary. More work is needed to be done here
2016-03-23 22:10:50 -07:00
Sean Chittenden
ab80393198
Rename serverConfigMtx to serverConfigLock
...
Pointed out by: @slackpad
2016-03-23 22:10:50 -07:00
Sean Chittenden
1866d94285
Refactor out the management of Consul servers
...
Move the management of c.consulServers (fka c.consuls) into consul/server_manager.go.
This commit brings in a background task that proactively manages the server list and:
*) reshuffles the list
*) manages the timer out of the RPC() path
*) uses atomics to detect a server has failed
This is a WIP, more work in testing needs to be completed.
2016-03-23 22:10:50 -07:00
Sean Chittenden
73497f7915
Move consul.serverConfig out of the consul package
...
Relocated to its own package, server_manager. This now greatly simplifies the RPC() call path and appropriately hides the locking behind the package boundary. More work is needed to be done here
2016-03-23 22:10:50 -07:00
Sean Chittenden
2a52d3eb80
Rename serverConfigMtx to serverConfigLock
...
Pointed out by: @slackpad
2016-03-23 22:10:32 -07:00
Sean Chittenden
49425c5371
Refactor out the management of Consul servers
...
Move the management of c.consulServers (fka c.consuls) into consul/server_manager.go.
This commit brings in a background task that proactively manages the server list and:
*) reshuffles the list
*) manages the timer out of the RPC() path
*) uses atomics to detect a server has failed
This is a WIP, more work in testing needs to be completed.
2016-03-23 22:09:46 -07:00
Sean Chittenden
ebdccf0f35
Move consul.serverConfig out of the consul package
...
Relocated to its own package, server_manager. This now greatly simplifies the RPC() call path and appropriately hides the locking behind the package boundary. More work is needed to be done here
2016-03-23 22:05:29 -07:00
Sean Chittenden
b7213d9daa
Rename serverConfigMtx to serverConfigLock
...
Pointed out by: @slackpad
2016-03-23 22:05:05 -07:00
Sean Chittenden
e29b8de0a6
Refactor out the management of Consul servers
...
Move the management of c.consulServers (fka c.consuls) into consul/server_manager.go.
This commit brings in a background task that proactively manages the server list and:
*) reshuffles the list
*) manages the timer out of the RPC() path
*) uses atomics to detect a server has failed
This is a WIP, more work in testing needs to be completed.
2016-03-23 22:03:20 -07:00
Sean Chittenden
3730eaf6df
Commit miss re: consuls variable rename
2016-03-23 16:24:29 -07:00
Sean Chittenden
b33648ca5c
Move consul.serverConfig out of the consul package
...
Relocated to its own package, server_manager. This now greatly simplifies the RPC() call path and appropriately hides the locking behind the package boundary. More work is needed to be done here
2016-03-23 16:16:22 -07:00
Sean Chittenden
f3a69c939d
Refactor consul.serverParts into server_details.ServerDetails
...
This may be short-lived, but it also seems like this is going to lead us down a path where ServerDetails is going to evolve into a more powerful package that will encapsulate more behavior behind a coherent API.
2016-03-23 16:15:47 -07:00
Sean Chittenden
b3192ca410
Rename serverConfigMtx to serverConfigLock
...
Pointed out by: @slackpad
2016-03-23 16:15:47 -07:00
Sean Chittenden
82458fa9e8
Handle the case where there are no healthy servers
...
Pointed out by: @slackpad
2016-03-23 16:15:47 -07:00
Sean Chittenden
09d4c6439c
Refactor out the management of Consul servers
...
Move the management of c.consulServers (fka c.consuls) into consul/server_manager.go.
This commit brings in a background task that proactively manages the server list and:
*) reshuffles the list
*) manages the timer out of the RPC() path
*) uses atomics to detect a server has failed
This is a WIP, more work in testing needs to be completed.
2016-03-23 16:15:47 -07:00
Sean Chittenden
6bda2c007c
Add a flag to denote that a server is disabled
...
A server is not normally disabled, but in the event of an RPC error, we want to mark a server as down to allow for fast failover to a different server. This value must be an int in order to support atomic operations.
Additionally, this is the preliminary work required to bring up a server in a disabled state. RPC health checks in the future could mark the server as alive, thereby creating an organic "slow start" feature for Consul.
2016-03-23 16:14:59 -07:00
Sean Chittenden
7de85906c1
Rename `lastServer` to `preferredServer`
...
Expanding the domain of lastServer beyond RPC() changes the meaning of this variable. Rename accordingly to match the intent coming in a subsequent commit: a background thread will be in charge of rotating preferredServer.
2016-03-23 16:14:59 -07:00
Sean Chittenden
2949980a64
Warn if serf events have queued up past 80% of the limit
...
It is theoretically possible that the number of queued serf events can back up. If this happens, emit a warning message if there are more than 200 events in queue.
Most notably, this can happen if `c.consulServerLock` is held for an "extended period of time". The probability of anyone ever seeing this log message is hopefully low to nonexistent, but if it happens, the warning message indicating a large number of serf events fired while a lock was held is likely to be helpful (vs serf mysteriously blocking when attempting to add an event to a channel).
2016-03-23 16:14:11 -07:00
Sean Chittenden
2a0c12460d
Commit miss re: consuls variable rename
2016-03-23 16:13:49 -07:00
Sean Chittenden
3ac1bcc799
Remove lastRPCTime
...
This mechanism isn't going to provide much value in the future. Preemptively reduce the complexity of future work.
2016-03-23 16:13:49 -07:00
Sean Chittenden
72b7856045
Rename c.consuls to c.consulServers
...
Prep for breaking out maintenance of consuls into a new goroutine.
2016-03-23 16:10:27 -07:00
Sean Chittenden
d1ef4ec7e2
Use `rand.Int31n()` to get power of two optimization
...
In cases where i+1 is a power of two, skip one modulo operation.
2016-03-23 16:00:39 -07:00
James Phillips
92e947dcc3
Gets rid of flaky sort check.
...
If we get a coordinate then this test will fail, so we only check the
first item in the list, which is deterministic.
2016-03-21 17:30:05 -07:00
James Phillips
265a8d4053
Increases timeouts for coordinate tests.
...
We take the interval and add the random stagger to it, so 2X is cutting it
too close and the unit tests are often flaky.
2016-03-21 16:44:35 -07:00
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
James Phillips
18e12aa886
Adds more specific checks for ipv6 addresses.
2016-03-19 16:14:45 -07:00
James Phillips
e4ca18089f
Removes leader from members and changes name since it's an address.
2016-03-18 17:07:11 -07:00
Sergey Romanov
11b73bb1a5
#735 add information about leader to consul members
2016-03-18 17:05:40 -07:00
Wim
508bc796a8
Allow [::] as a bind address (binds to first public IPv6 address)
2016-03-18 23:59:44 +01:00
Calvin Leung Huang
7215d9bdef
Obfuscate token for lookupACL error
2016-03-15 17:16:25 -04:00
James Phillips
a9d640c024
Hardens the match interoplator against negative arguments.
2016-03-07 13:32:32 -08:00
James Phillips
63c826c2c0
Adds a comment about the embedded struct.
2016-03-07 10:45:39 -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
James Phillips
918b1ace47
Applies prefix ACL to a catch-all template as a special case.
2016-03-07 10:45:39 -08:00
James Phillips
3c512fc089
Adds a test for the custom prepared query template indexer.
2016-03-07 10:45:39 -08:00
James Phillips
39d3094d50
Adds core query template tests to the state store.
2016-03-07 10:45:39 -08:00
James Phillips
06087633f0
Adds in basic query template lookups and vendors newly-updated memdb as well as improved iradix tree.
2016-03-07 10:45:39 -08:00
James Phillips
142e69befe
Adds tests for the low-level template functions.
2016-03-07 10:45:39 -08:00
James Phillips
b578fbbfc4
Adds tests for the string visitor.
2016-03-07 10:45:39 -08:00
James Phillips
2a9a5f823e
Factors rendering down into the resolve function.
2016-03-07 10:45:39 -08:00
James Phillips
8e25451232
Splits walk functions out from the rest of the template code.
2016-03-07 10:45:39 -08:00
James Phillips
fa60d575bf
Integrates templates into state store and endpoint (sans tests).
2016-03-07 10:45:39 -08:00
James Phillips
62405110dc
Wraps the prepared query to also store the compiled template.
2016-03-07 10:45:39 -08:00
James Phillips
98281be7df
Adds basic query template compiler and renderer.
2016-03-07 10:45:39 -08:00
Mike Cowgill
25613895e3
one line schema change to not allow missing for sessions Table node index, Fixes #1774
2016-03-02 21:19:53 -08:00
James Phillips
f0150ff5ce
Adds missing token redact in the GET path.
2016-02-26 15:59:00 -08:00
James Phillips
48f2089d7f
Merge pull request #1757 from hashicorp/f-revert-1667
...
Reverts server connection rebalancing changes from #1667
2016-02-24 18:07:13 -08:00
James Phillips
c75256ac8b
Adds a check for users re-submitting the redacted token.
2016-02-24 17:35:26 -08:00
James Phillips
2f7eac8b86
Renames "prepared_query" ACL policy to "query".
2016-02-24 17:02:06 -08:00
James Phillips
3b91618d7d
Changes to more idiomatic "ok" pattern for prefix getter.
2016-02-24 16:26:43 -08:00
James Phillips
1c7ee582f9
Renames a unit test.
2016-02-24 16:17:20 -08:00
James Phillips
d660311fbb
Revert "Merge pull request #1667 from hashicorp/b-redistribute-clients"
...
This reverts commit 8f30dea4209491ebbe4ef9ab94dd8052d17bdbe9, reversing
changes made to eb27a02956e7e052c0bec6f96a0c0f7f6675f6a6.
2016-02-24 15:38:03 -08:00
James Phillips
54f0b7bbb6
Completes switch of prepared_query ACLs to govern query names.
2016-02-24 01:26:16 -08:00
James Phillips
633c231d67
Creates new "prepared-query" ACL type and new token capture behavior.
...
Prior to this change, prepared queries had the following behavior for
ACLs, which will need to change to support templates:
1. A management token, or a token with read access to the service being
queried needed to be provided in order to create a prepared query.
2. The token used to create the prepared query was stored with the query
in the state store and used to execute the query.
3. A management token, or the token used to create the query needed to be
supplied to perform and CRUD operations on an existing prepared query.
This was pretty subtle and complicated behavior, and won't work for
templates since the service name is computed at execution time. To solve
this, we introduce a new "prepared-query" ACL type, where the prefix
applies to the query name for static prepared query types and to the
prefix for template prepared query types.
With this change, the new behavior is:
1. A management token, or a token with "prepared-query" write access to
the query name or (soon) the given template prefix is required to do
any CRUD operations on a prepared query, or to list prepared queries
(the list is filtered by this ACL).
2. You will no longer need a management token to list prepared queries,
but you will only be able to see prepared queries that you have access
to (you get an empty list instead of permission denied).
3. When listing or getting a query, because it was easy to capture
management tokens given the past behavior, this will always blank out
the "Token" field (replacing the contents as <hidden>) for all tokens
unless a management token is supplied. Going forward, we should
discourage people from binding tokens for execution unless strictly
necessary.
4. No token will be captured by default when a prepared query is created.
If the user wishes to supply an execution token then can pass it in via
the "Token" field in the prepared query definition. Otherwise, this
field will default to empty.
5. At execution time, we will use the captured token if it exists with the
prepared query definition, otherwise we will use the token that's passed
in with the request, just like we do for other RPCs (or you can use the
agent's configured token for DNS).
6. Prepared queries with no name (accessible only by ID) will not require
ACLs to create or modify (execution time will depend on the service ACL
configuration). Our argument here is that these are designed to be
ephemeral and the IDs are as good as an ACL. Management tokens will be
able to list all of these.
These changes enable templates, but also enable delegation of authority to
manage the prepared query namespace.
2016-02-23 17:12:43 -08:00
James Phillips
f398e1880e
Adds a test for node registration and tagged addresses.
2016-02-07 13:15:22 -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
3f50d2ae7e
Adds an FSM persist and restore test for tagged addresses.
2016-02-07 11:36:39 -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
e166d2a4c7
Use idiomatic name for wan_addr serf tag
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
Evan Gilman
fc61143b46
Store WanAddress during node registration
2016-02-06 23:01:45 -08:00
Evan Gilman
369e501dd5
Store WanAddress on Node
2016-02-06 23:01:45 -08:00
Sean Chittenden
fc82b351b8
Use the server's address in debug logging, not the c.lastServer, which may be nil
2016-02-02 15:51:28 -08:00
Sean Chittenden
58225e0ee3
Remove unnecessary check, test was moved further up in scope
2016-02-02 11:13:58 -08:00
Sean Chittenden
6452b498e1
Use panic instead of returning a sentinel UUID values in unit tests
2016-02-01 23:15:19 -08:00
Sean Chittenden
ef8bbca48f
Continually rebalance client connections
...
Introduce a low-level background connection expiration mechanism wherein connections will be recycled periodically based on the size and health of the cluster.
For the vast majority of consul users, this will mean an average connection age of 150s. For 10K node clusters it will take ~3min for clusters to rebalance their connections. In the pathological case for a 100K cluster where 99K clients are in the minority talking to 1x server it will take ~26min to rebalance all connections.
It's possibe for clients recovering from a parititon to become fixated on a single server until the server or agent is restarted. This is of particular interest to long-running environments with stable agents, where `allow_stale` is true, and partitions occur periodically.
2016-01-30 17:13:50 -08:00
Sean Chittenden
8a37e76cb0
Use rand.Int31n() vs unconditionally using modulus
2016-01-30 15:47:58 -08:00
Sean Chittenden
727bb42b1d
Merge branch 'f-consul-lib' of ssh://github.com/hashicorp/consul into b-redistribute-clients
2016-01-30 15:40:54 -08:00
Sean Chittenden
b216d4c11f
Rename clientRPCCache to clientRPCConnMaxIdle, change value
...
Increase the max idle time for agents talking to servers from 30s to 127s in order to allow for the reuse of connections that are being initiated by cron.
127s was chosen as the first prime above 120s (arbitrarily chose to use a prime) with the intent of reusing connections who are used by once-a-minute cron(8) jobs *and* who use a 60s jitter window (e.g. in vixie cron job execution can drift by up to 59s per job, or 119s for a once-a-minute cron job).
2016-01-30 15:27:46 -08:00
Sean Chittenden
e83a5b7a70
Reuse the results from gettimeofday(2)...
...
Inside of a single RPC call, reuse time.Now().
2016-01-30 14:39:17 -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
James Phillips
0010b788ed
Prevents watches from being orphaned when KVS blocking queries loop.
2016-01-20 07:18:47 -08:00
James Phillips
e0ae4878f6
Merge pull request #948 from hashicorp/iface-down-fix
...
Don't try to bind on address from inactive interface
2016-01-14 17:00:54 -08:00
Ryan Uber
e3ac96679e
consul: address comments
2016-01-05 09:45:36 -08:00
Ryan Uber
689698eefa
consul: disable serf snapshots in dev mode
2015-12-26 20:39:49 -05:00
Ryan Uber
ce4cf8a542
consul: dev mode works
2015-12-26 20:19:36 -05:00
James Phillips
533c79bd2b
Cleans up some small `go vet` findings.
2015-12-18 22:14:48 -08:00
James Phillips
92531812b6
Adds source address logging on RPC errors.
2015-12-16 14:03:03 -08:00
James Phillips
38bdcc9907
Adds a check to make sure query names can't be registered twice.
2015-12-02 09:04:51 -08:00
Armon Dadgar
a033d7aed2
consul: shrink yamux recv buffer on idle streams
2015-11-27 17:20:57 -08:00
James Phillips
0e3f4af4ac
Makes all the query ops the correct type.
2015-11-17 09:27:10 -08:00
James Phillips
86bc3db7b3
Returns a zero index for a lookup error case.
2015-11-17 09:25:20 -08:00
James Phillips
bc60491890
Removes a useless empty import and fixes some stale comments.
2015-11-17 08:29:20 -08:00
James Phillips
f4943c1613
Makes UUID regex case-insensitive.
2015-11-16 22:57: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
c032dee945
Adds a paranoia set of the nodes slice to nil.
2015-11-15 17:06:00 -08:00
James Phillips
a0211db3b9
Adds a test to ensure we don't return a nil slice.
2015-11-15 17:06:00 -08:00
James Phillips
375312f07a
Gets rid of some unused constants.
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
7762a828d3
Adds query metadata to prepared query execute response.
2015-11-15 17:06:00 -08:00
James Phillips
0c02365bf2
Makes an empty prepared query list an empty slice, not a nil one.
2015-11-15 17:06:00 -08:00
James Phillips
3029906254
Adds a unit test for the new RTT getDatacentersByDistance fn.
2015-11-15 17:06:00 -08:00
James Phillips
697e2f4e71
Completes FSM support for prepared queries.
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
b209c2afe2
Adds an RPC endpoint injection method for testing.
2015-11-15 17:06:00 -08:00
James Phillips
4051db4e88
Changes Lookup to Get since we don't need it (only Execute does).
2015-11-15 17:06:00 -08:00
James Phillips
095806584d
Always increments the failovers counter, even for error-ed DCs.
2015-11-15 17:06:00 -08:00
James Phillips
07361d3e96
Adds test for remote datacenter selection and query logic.
2015-11-15 17:06:00 -08:00
James Phillips
6a1c571a38
Adds a test for the server wrapper.
2015-11-15 17:06:00 -08:00
James Phillips
9428f025f9
Adds tag filter tests.
2015-11-15 17:06:00 -08:00
James Phillips
da5cf9cdf2
Adds execute tests for prepared queries.
2015-11-15 17:06:00 -08:00
James Phillips
7c8404df4c
Adds status information about failovers to query results.
2015-11-15 17:06:00 -08:00
James Phillips
dc517aa288
Removes unused ACL filter.
2015-11-15 17:06:00 -08:00
James Phillips
00ea015770
Adds execute leader forward test for prepared queries.
2015-11-15 17:06:00 -08:00
James Phillips
264e86e533
Adds a leader forwarding case for prepared queries.
2015-11-15 17:06:00 -08:00
James Phillips
bb0f136412
Adds tests for query lookup and list endpoints.
2015-11-15 17:06:00 -08:00
James Phillips
495d00c0b8
Adds query parsing unit tests.
2015-11-15 17:06:00 -08:00
James Phillips
72f6c8a261
Adds ACL cases for apply.
2015-11-15 17:06:00 -08:00
James Phillips
76a55eed53
Completes non-ACL version of apply test.
2015-11-15 17:06:00 -08:00
James Phillips
bc0fba43d8
Adds lookup and list endpoints and basic end-to-end apply test.
2015-11-15 17:06:00 -08:00
James Phillips
3b3c7c02e4
Checks for valid UUIDs before calling in to index function.
2015-11-15 17:06:00 -08:00
James Phillips
ec5249357e
Clarifies comment about name vs. ID.
2015-11-15 17:06:00 -08:00
James Phillips
61e6cbc560
Skips unknown DCs during queries and chugs along in the face of errors.
2015-11-15 17:06:00 -08:00
James Phillips
0141438e6c
Moves sort to a query-time decision and adds back the limit.
2015-11-15 17:06:00 -08:00
James Phillips
25fac70924
Adds an explicit ACL check that will fail vs. trying other DCs.
2015-11-15 17:06:00 -08:00
James Phillips
347bb847c2
Changes "not" prefix from "~" to "!".
2015-11-15 17:06:00 -08:00
James Phillips
09034a84bd
Adds prefix "prepared" to everything prepared query-related.
2015-11-15 17:06:00 -08:00
James Phillips
2183565d83
Adds basic structure for prepared queries (needs tests).
2015-11-15 17:06:00 -08:00
James Phillips
6e7faa6239
Factors code for pulling the sorted list of DCs into a common place.
2015-11-15 17:06:00 -08:00
James Phillips
6a70cb9885
Adds a better shuffle test (similar to DNS).
2015-11-15 17:06:00 -08:00
James Phillips
781f9611e8
Changes structs and state store for prepared queries.
2015-11-15 17:06:00 -08:00
James Phillips
55f49d6e73
Merge pull request #1413 from hashicorp/b-coord-raft-errors
...
Adds a check for in-band error returns in the coordinate RaftApply.
2015-11-15 17:05:19 -08:00
James Phillips
26cf0a2974
Extends the session TTL max to 24 hours, and adds a warning to the docs.
2015-11-15 16:51:00 -08:00
James Phillips
04dffd7c46
Adds a check for in-band error returns in the coordinate RaftApply.
2015-11-15 16:50:46 -08:00
James Phillips
5b0697fc67
Changes batch update failure to a WARN since it's nbd.
2015-10-29 09:26:24 -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
7c44a9b6c9
Fixes a bad error message.
2015-10-28 12:40:47 -07:00
James Phillips
5449096bc2
Adds a check for the minimum version as well.
2015-10-27 15:56:36 -07:00
James Phillips
1c678effde
Sets the ignore flag on coordinate update Raft log entries.
2015-10-27 14:44:34 -07:00
James Phillips
c1305a08ea
Makes the version upshift code look at the correct version field.
2015-10-27 14:44:34 -07:00
James Phillips
b91e2d3a97
Completes rebase of network coordinates to new memdb.
2015-10-23 15:23:01 -07:00
James Phillips
132e1d813b
Fixes configs now that Serf always caches coordinates.
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
7dd88f7de6
Zeroes out the height when testing exact distances.
2015-10-23 15:23:01 -07:00
James Phillips
7d5e29f6c6
Cleans up after latest rebase.
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
a2bcef00a0
Adds endpoints for raw network coordinates.
2015-10-23 15:23:01 -07:00
James Phillips
e900fef95a
Fixes bad name for DC forwarding of Coordinate.Get.
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
019f656f39
Switches to the median over all DC nodes with known coordinates.
2015-10-23 15:23:01 -07:00
James Phillips
5609b2e889
Adds explicit check for empty node in source parameter.
2015-10-23 15:23:01 -07:00
James Phillips
5d75ce7852
Moves disable checks down into the sort routine.
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
033e8e6625
Adds sort of DCs in catalog queries based on RTT. Cleans up.
...
* Makes the catalog endpoint respect disabling coordinates for all
RTT-sorting query types.
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
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
a93a1a68b6
Adds snapshot save and restore of coordinates.
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
e02ae7b6b4
Takes the node name out of the coordinate get call.
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
b805215237
Address comments
2015-10-23 15:23:01 -07:00
Derek Chiang
7d70d8b1d7
Add test for the GetWAN endpoint
2015-10-23 15:23:01 -07:00
Derek Chiang
e03a9d4c38
Add an endpoint for getting WAN coordinates
2015-10-23 15:23:01 -07:00
Derek Chiang
213f5a15e6
Fix tests
2015-10-23 15:23:01 -07:00
Derek Chiang
eb599a1745
Address comments
2015-10-23 15:23:01 -07:00
Derek Chiang
66d5a129bf
Add state store tests
2015-10-23 15:23:01 -07:00
Derek Chiang
88550714ca
Add more tests
2015-10-23 15:23:01 -07:00
Derek Chiang
139c9240ea
Address comments
2015-10-23 15:23:01 -07:00
Derek Chiang
23c08aeeb4
Use IndexedCoordinate instead
2015-10-23 15:23:01 -07:00
Derek Chiang
979c0c6c9e
Improve a test
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
019da1dae4
Fix tests
2015-10-23 15:23:01 -07:00
Derek Chiang
66b210afcb
Some fixes
2015-10-23 15:23:01 -07:00
Derek Chiang
def0a2f5ab
Change GET API a little bit
2015-10-23 15:23:01 -07:00
Derek Chiang
b5bbe2bcfa
Adding tests and stuff
2015-10-23 15:23:01 -07:00
Derek Chiang
e54c8f2ea0
Start adding stuff
2015-10-23 15:23:01 -07:00
James Phillips
aae298a179
Cleans up a little whitespace with go fmt.
2015-10-20 18:41:05 -07:00
James Phillips
54535d45d7
Gets rid of error prefixing in leader.go.
2015-10-20 13:37:11 -07:00
James Phillips
eb93d1d9ad
Puts all restore operations into a single transaction and optimizes watches.
2015-10-19 23:06:59 -07:00
James Phillips
96c5c9de2b
Gets rid of unique constraint on sessions index in session_checks.
2015-10-19 17:41:50 -07:00
James Phillips
3e93055cef
Switches sessions over to UUIDFieldIndex.
2015-10-19 17:09:02 -07:00
James Phillips
d905804514
Adds a special case for fill KVS listings to avoid a tombstone scan.
2015-10-19 16:22:27 -07:00
James Phillips
22a46f7bf5
Makes the iterator naming more consistent.
2015-10-19 15:51:11 -07:00
James Phillips
9a2fdff4c4
Converts sessions and ACLs over to iterators.
2015-10-19 14:56:22 -07:00
James Phillips
d459d94b3f
Converts KVS snapshot over to iterator.
2015-10-19 14:07:57 -07:00
James Phillips
498c4a989a
Converts nodes, services, checks to iterators duing dumps; fixes tag drift bug.
...
Realized that the conversions ServiceNode <-> NodeService were incomplete in a
few places so centralized those and added some tests.
2015-10-19 13:55:35 -07:00
James Phillips
8ee52e9850
Gets rid of non-idomatic "state_store" alias in FSM.
2015-10-16 14:07:48 -07:00
James Phillips
adef4894df
Ports a couple of new RPC calls to the updated codec mechanism.
2015-10-15 15:09:13 -07:00
James Phillips
268255dcbe
Runs go fmt after latest changes.
2015-10-15 14:59:09 -07:00
James Phillips
e982f976eb
Adds unit tests for new structs clone functions.
2015-10-15 14:59:09 -07:00
James Phillips
46be9fa2cf
Adds benchmarks back in to the state store.
2015-10-15 14:59:09 -07:00
James Phillips
6db1a8624d
Removes a todo that's no longer needed.
2015-10-15 14:59:09 -07:00
James Phillips
82f275d126
Adds unit tests for the graveyard.
2015-10-15 14:59:09 -07:00
James Phillips
e285af5d1c
Does some go fmt after latest round of changes.
2015-10-15 14:59:09 -07:00
James Phillips
409fd57e4a
Adds a delay test.
2015-10-15 14:59:09 -07:00
James Phillips
73ad5f0695
Adds watch unit tests and does some related watch cleanup.
2015-10-15 14:59:09 -07:00
James Phillips
9fce4aaf35
Adds tests for GC.
2015-10-15 14:59:09 -07:00
James Phillips
ca220c9717
Adds clone for service nodes so we don't twiddle the database's object.
2015-10-15 14:59:09 -07:00
James Phillips
25d7746f38
Fixes remaining non-KV index calclulations and adds a general getWatchTables thing.
2015-10-15 14:59:09 -07:00
James Phillips
32e2439f93
Fixes index management for KVS.
2015-10-15 14:59:09 -07:00
James Phillips
37da1faaf2
Makes session invalidate loops use a separate slice to protect the iterator.
2015-10-15 14:59:09 -07:00
James Phillips
8504646900
Makes all delete loops use a separate slice to protect the iterator.
2015-10-15 14:59:09 -07:00
James Phillips
768f6fd8db
Cleans up some go vet warnings.
2015-10-15 14:59:09 -07:00
James Phillips
495b276e44
Gets rid of todo that we discussed is ok.
2015-10-15 14:59:09 -07:00
James Phillips
3fedffbffb
Gets rid of the transitional "New" suffix on state store and RPC.
2015-10-15 14:59:09 -07:00
James Phillips
263c7e3fd3
Deletes the old state store and all its accoutrements.
2015-10-15 14:59:09 -07:00
James Phillips
3f07f0685f
Nukes old state store's connection to FSM and RPC.
2015-10-15 14:59:09 -07:00
James Phillips
450886246d
Integrates session TTL tests with new state store.
2015-10-15 14:59:09 -07:00
James Phillips
a15c24f771
Integrates new state store into internal endpoint.
2015-10-15 14:59:09 -07:00
James Phillips
76bdeadefb
Abstracts the table names away from the RPC call sites.
2015-10-15 14:59:09 -07:00
James Phillips
7a8e5b2866
Integrates new state store into session endpoint; returns table index always.
2015-10-15 14:59:09 -07:00
James Phillips
1463e6100a
Integrates new state store into leader and catalog/health endpoints.
2015-10-15 14:59:09 -07:00
James Phillips
6203c1e585
Integrates KVS endopint with new state store (changes KVSList to match old behavior).
2015-10-15 14:59:09 -07:00
James Phillips
837d8994b4
Cuts FSM unit tests over to new state store.
2015-10-15 14:59:09 -07:00
James Phillips
92e48b87bf
Adds twiddling of the real state store in snapshot tests.
2015-10-15 14:59:09 -07:00
James Phillips
87ff8d031c
Ports over session invalidation tests (and fixes some bugs).
2015-10-15 14:59:09 -07:00
James Phillips
8072138c9a
Adds a note about updating sessions after they are created.
2015-10-15 14:59:09 -07:00
James Phillips
a09571133c
Beefs up node and service watch tests for multi-table triggers.
2015-10-15 14:59:09 -07:00
James Phillips
ae21a33aca
Adds session snapshot/restore and basic watch tests (and fixes some bugs).
2015-10-15 14:59:09 -07:00
James Phillips
1725063067
Adds tombstone tests and gets rid of unused logger.
2015-10-15 14:59:09 -07:00
James Phillips
391c04de90
Makes sure we don't create a full table watch for tombstones.
2015-10-15 14:59:09 -07:00
James Phillips
4be951571e
Adds snapshot/restore and watch tests for KVS.
2015-10-15 14:59:09 -07:00
James Phillips
9bfe2c32f6
Allows lock holder to re-lock and set a KV, adds tests for corner cases around sessions.
2015-10-15 14:59:09 -07:00
James Phillips
1088145060
Adds kvs lock/unlock tests.
2015-10-15 14:59:09 -07:00
James Phillips
2c0ba7e44b
Adds snap and watch tests for nodes, services, and checks.
2015-10-15 14:59:09 -07:00
James Phillips
f7fca62dcd
Adds node snap and watch tests as well as a general watch test.
2015-10-15 14:59:09 -07:00
James Phillips
e25fb6c5ed
De-generalizes graveyard since that ended up as a YAGNI (only useful for KV).
2015-10-15 14:59:09 -07:00
James Phillips
e7de7a2b8c
Cleans up unit tests for consistency.
2015-10-15 14:59:09 -07:00
James Phillips
1bf432d5af
Adds ensure registration unit test (and fixes bugs).
2015-10-15 14:59:09 -07:00
James Phillips
e5773635e7
Adds reap tombstone test (and fixes bugs).
2015-10-15 14:59:09 -07:00
James Phillips
8a39581ae0
Adds ACL snapshot/restore test.
2015-10-15 14:59:09 -07:00
James Phillips
2dae65a6ec
Adds a watch tester helper that helps cut the cruft.
2015-10-15 14:59:09 -07:00
James Phillips
04b365495d
Completes state store for KV, sessions, tombstones, and nodes/services/checks (needs tests and integration).
2015-10-15 14:59:09 -07:00
James Phillips
edae626f36
Integrates new state store for ACLs.
2015-10-15 14:59:09 -07:00
James Phillips
cbcd977a39
Gets new structs changes to compile, adds some corner case handling and extra unit tests.
2015-10-15 14:59:09 -07:00
Ryan Uber
4cf5f6223e
consul/state: list acls
2015-10-15 14:59:09 -07:00
Ryan Uber
69b0ee0e5a
consul/state: implement acl delete
2015-10-15 14:59:09 -07:00
Ryan Uber
6e7c3e3579
consul/state: basic acl set/get/delete
2015-10-15 14:59:09 -07:00
Ryan Uber
e30c3cdea8
consul/state: basic session destroy works
2015-10-15 14:59:09 -07:00
Ryan Uber
747527fef5
consul/state: more tests
2015-10-15 14:59:09 -07:00
Ryan Uber
d0e349b190
consul/state: refactor some tests
2015-10-15 14:59:09 -07:00
Ryan Uber
d5f3648846
consul/state: session lookup by node id works
2015-10-15 14:59:09 -07:00
Ryan Uber
82fa9347e1
consul/state: add session list method
2015-10-15 14:59:09 -07:00
Ryan Uber
0d0b3c91ef
consul/state: adding session registration
2015-10-15 14:59:09 -07:00
Ryan Uber
a613f65e41
consul/state: adding tree delete for kvs store
2015-10-15 14:59:09 -07:00
Ryan Uber
66a211a70e
consul/state: list keys from the kv with a prefix/separator
2015-10-15 14:59:09 -07:00
Ryan Uber
0171c2ba3d
consul/state: fix for maxIndex and better tests
2015-10-15 14:59:09 -07:00
Ryan Uber
b0ae1c0967
consul/state: add CAS method for kv set
2015-10-15 14:59:09 -07:00
Ryan Uber
dc997beef3
consul/state: initial pass at CAS delete operation for kvs
2015-10-15 14:59:09 -07:00
Ryan Uber
57c36c274b
consul/state: adding KVSList for listing a given prefix
2015-10-15 14:59:09 -07:00
Ryan Uber
9b4f8cd800
consul/state: adding shallow delete for kvs store
2015-10-15 14:59:09 -07:00
Ryan Uber
b2dc11fed4
consul/state: basic k/v operations
2015-10-15 14:59:09 -07:00
Ryan Uber
a511e8a42d
consul/state: adding node dump methods
2015-10-15 14:59:09 -07:00
Ryan Uber
0df0b1674e
consul/state: testing service registration update
2015-10-15 14:59:09 -07:00
Ryan Uber
c3cd5051ba
consul/state: fetch node/check sets by service ID
2015-10-15 14:59:09 -07:00
Ryan Uber
d88ef90479
consul/state: filter checks by state
2015-10-15 14:59:09 -07:00
Ryan Uber
2249bec117
consul/state: support check lookups by service name
2015-10-15 14:59:09 -07:00
Ryan Uber
9fe029abc3
consul/state: return highest index for queries with compound results
2015-10-15 14:59:09 -07:00
Ryan Uber
e6a9db17d7
consul/state: cleanup
2015-10-15 14:59:09 -07:00
Ryan Uber
e114b5040f
consul/state: better tests for index table updates
2015-10-15 14:59:09 -07:00
Ryan Uber
c3ad758e0e
consul/state: test helpers
2015-10-15 14:59:09 -07:00
Ryan Uber
5d63160bb6
consul/state: node checks are removed with their associated nodes
2015-10-15 14:59:09 -07:00
Ryan Uber
329c88d8b7
consul/state: services are removed with their associated nodes
2015-10-15 14:59:09 -07:00
Ryan Uber
5bb69db6b3
consul/state: remove checks during service deregistration
2015-10-15 14:59:09 -07:00
Ryan Uber
db1bcdc863
consul/state: add check deletion method
2015-10-15 14:59:09 -07:00
Ryan Uber
ee8a1dc5d2
consul/state: set index if we have an existing health check
2015-10-15 14:59:09 -07:00
Ryan Uber
d6380e31cc
consul/state: negative tests
2015-10-15 14:59:09 -07:00
Ryan Uber
f9e8ca252c
consul/state: basic health check retrieval works
2015-10-15 14:59:09 -07:00
Ryan Uber
b6af94a8ff
consul/state: persisting health checks works
2015-10-15 14:59:09 -07:00
Ryan Uber
0a000f63a3
consul/state: test for index modification during deletes
2015-10-15 14:59:09 -07:00
Ryan Uber
8ae69b6878
consul/state: add service delete functions
2015-10-15 14:59:09 -07:00
Ryan Uber
5a8d8b0362
consul/state: working on node deletion
2015-10-15 14:59:09 -07:00
Ryan Uber
766c367ef4
consul/state: add function for returning all nodes
2015-10-15 14:59:09 -07:00
Ryan Uber
8fea5f8dc5
consul/state: track highest index when querying services
2015-10-15 14:59:09 -07:00
Ryan Uber
08553f0fef
consul/state: querying node services works
2015-10-15 14:59:09 -07:00
Ryan Uber
859ffe14e1
consul/state: read transactions don't block writes
2015-10-15 14:59:09 -07:00
Ryan Uber
a5d5577cdd
consul/state: more tests for EnsureNode/GetNode
2015-10-15 14:59:09 -07:00
Ryan Uber
f0dd8b2923
consul/state: working on service registration storage
2015-10-15 14:59:09 -07:00
Ryan Uber
011e7584b4
consul/state: node registration and retrieval works
2015-10-15 14:59:09 -07:00
Ryan Uber
6778c8d3ff
consul/state: start tests for schema
2015-10-15 14:59:09 -07:00
Ryan Uber
f30437bade
consul/state: round out schema
2015-10-15 14:59:09 -07:00
Ryan Uber
f253c39cb1
consul/state: starting on new state store
2015-10-15 14:59:09 -07:00
Ryan Uber
ae7cdfaf8d
consul: comment msgpack handle
2015-10-15 14:57:29 -07:00
Ryan Uber
cc7aa44459
consul: revert session endpoint test
2015-10-15 12:31:48 -07:00
Ryan Uber
33741f9156
consul: initial pass at refactoring RPC using net-rpc-msgpackrpc
2015-10-13 22:15:23 -07:00
Dale Wijnand
c5168e1263
Fix a bunch of typos.
2015-09-15 13:22:08 +01:00
James Phillips
b25797a808
Merge pull request #1187 from sfncook/enable_tag_drift_03
...
Enable tag drift 03
2015-09-11 15:35:32 -07:00
Anthony Scalisi
8d733b7fca
remove various typos
2015-09-11 12:29:54 -07:00
Shawn Cook
99be758411
Rename EnableTagOverride and update formatting
2015-09-11 08:35:29 -07:00
Shawn Cook
2f04917261
Merge remote-tracking branch 'hashicorp/master' into enable_tag_drift_03
2015-09-10 14:55:30 -07:00
William Tisäter
4ce2af3bd4
Bind to loopback only as last resort
2015-09-02 12:24:44 +02:00
William Tisäter
1013f2f494
Don't try to bind on address from inactive interface
2015-09-02 12:24:36 +02:00
William Tisäter
4267814e5b
Treat 127.0.0.0/8 and 169.254.0.0/16 as private network
2015-09-02 12:24:14 +02:00
James Phillips
c0127e9932
Bumps protocol version back down as we've made memberlist smarter.
2015-08-31 11:16:34 -07:00
Shawn Cook
d4ec6aa630
Update tests - NodeService init needs bool
2015-08-20 09:09:26 -07:00
Shawn Cook
f6814c89ed
EnableTagDrift in NodeService struct
2015-08-18 10:34:55 -07:00
Mac Browning
04eb37ffb6
consul: refactor GetPrivateIP for testability
2015-08-15 17:44:32 -04:00
James Phillips
8df55b6964
Changes to an unbuffered channel, since we just close it.
2015-08-13 11:38:02 -07:00
James Phillips
1c6414e806
Cleans up locking and factors markForUse into a Conn method.
2015-08-13 10:01:05 -07:00
James Phillips
18711b40b8
Gets rid of follow up attempts if the lead thread can't connect.
2015-08-12 20:14:48 -07:00
James Phillips
7d9db86b03
Adds missing ref count for the race condition case.
2015-08-12 19:26:01 -07:00
James Phillips
0efc49b510
Fixes #1165 by having threads wait for any outstanding connect to finish.
2015-08-12 18:48:15 -07:00
Ryan Uber
36bddeca25
consul: filter services by ACL when using ChecksInState.
2015-07-27 16:57:56 -07:00
Ryan Uber
6d38027689
Merge pull request #1090 from hashicorp/f-keyring-acl
...
Keyring ACLs
2015-07-24 10:23:18 -07:00
Armon Dadgar
f1a83a8954
Merge pull request #1119 from trumant/multiple_private_IPs
...
Fixes #1099 by raising an error when we multiple private IPs are found
2015-07-22 17:32:00 -07:00
Travis Truman
e18a93ed54
Fixes #1099 by raising an error when we multiple private IPs are found
2015-07-16 22:25:02 -04:00
Ryan Uber
6d27334ee1
consul: fixes for events and related tests
2015-07-14 11:38:26 -07:00
Ryan Uber
4ef6545583
acl: initial pass at keyring ACLs
2015-07-06 18:28:09 -06:00
Armon Dadgar
fd2bead478
consul: fixing test using wrong FSM
2015-07-06 14:33:58 -06:00
Ryan Uber
503fa1eed1
Merge pull request #1046 from hashicorp/f-event-acl
...
Event ACLs
2015-07-02 07:02:07 -07:00
Ryan Uber
d2eac37579
agent: remove unnecessary EventFire function
2015-07-02 06:56:27 -07:00
Tiru Srikantha
f1932e5e46
Add RFC 6598 private IP range
...
Fixes #1031 by adding 100.64.0.0/10 as a private IP range.
2015-06-19 12:20:30 -07:00
Ryan Uber
e6923a4832
consul: always fire events from server nodes
2015-06-18 18:13:29 -07:00
Ryan Uber
6e9adae494
consul: use acl cache struct in server
2015-06-18 18:13:29 -07:00
Ryan Uber
e04a23801e
consul: split ACL cache into a reusable struct
2015-06-18 18:13:29 -07:00
Ryan Uber
d84fa3c98d
consul: check ACLs when firing events
2015-06-18 18:13:29 -07:00
Ryan Uber
d600fad4e7
consul: fast path a typed nil during ACL filtering
2015-06-12 16:46:15 -07:00
Ryan Uber
2b1a19a906
consul: fail badly if an unsupported type is passed to the ACL filter
2015-06-11 17:06:35 -07:00
Ryan Uber
593b4b3dd6
consul: fix log message
2015-06-11 15:00:26 -07:00
Ryan Uber
63a2737cac
consul: testing acl filters in isolation
2015-06-11 14:14:43 -07:00
Ryan Uber
e413b0e7c7
consul: better tests for acl filtering
2015-06-11 13:23:49 -07:00
Ryan Uber
5aeb8202d6
consul: testing internal endpoint acl filtering
2015-06-11 13:05:33 -07:00
Ryan Uber
aa87f2b73c
consul: rename function to avoid collision and clean up
2015-06-11 13:04:47 -07:00
Ryan Uber
1ff496d6dd
consul: break acl filtering into a separate struct
2015-06-11 12:08:21 -07:00
Ryan Uber
404d4d653c
consul: testing health endpoint service acl filtering
2015-06-11 09:39:35 -07:00
Ryan Uber
1e2751511d
consul: testing catalog endpoint acl filtering
2015-06-10 22:14:58 -07:00
Ryan Uber
c8629de127
consul: begin testing discovery ACLs
2015-06-10 19:25:58 -07:00
Ryan Uber
4f9161f485
consul: use anonymous function for acl filtering
2015-06-10 18:43:48 -07:00
Ryan Uber
b115047919
consul: filter internal endpoints for acls
2015-06-10 18:40:40 -07:00
Ryan Uber
4f3e661b8c
acl: initial pass at service discovery acls
2015-06-10 18:40:09 -07:00
James Phillips
7b8aae37cb
Bumps protocol version to 3 to get serf version 5.
2015-06-02 17:50:35 -07:00
Sam Boyer
bdc5983463
Condense switch fallthroughs into expr lists
2015-05-26 21:30:14 -04:00
Armon Dadgar
f91069f9d5
consul: adding StopWatch test
2015-05-14 18:32:19 -07:00
Armon Dadgar
2c9592c5ee
consul: lower default query time and add small stagger
2015-05-14 17:59:43 -07:00
Armon Dadgar
e5c8fce96a
consul: adding randomStagger util method
2015-05-14 17:59:11 -07:00
Armon Dadgar
23a1df1548
consul: proactively clear timers
2015-05-14 17:42:47 -07:00
Armon Dadgar
2bc43844bc
consul: ensure blocking query cleans any lingering state
2015-05-14 17:38:42 -07:00
Armon Dadgar
6f433c9ad8
consul: Adding methods to stop watching for changes
2015-05-14 17:33:02 -07:00
Armon Dadgar
abbf4456f2
consul: adding Clear to NotifyGroup
2015-05-14 17:30:30 -07:00
Armon Dadgar
430100a0c8
Merge pull request #927 from hashicorp/f-tls
...
Add new `verify_server_hostname` to mitigate possibility of MITM
2015-05-11 18:15:16 -07:00
Armon Dadgar
f797130228
Fixing merge conflict
2015-05-11 16:48:10 -07:00
Armon Dadgar
9642384429
consul: support the new TLS wrapper
2015-05-11 15:15:36 -07:00
Armon Dadgar
3bf337a6ac
consul: thread the target DC through the RPC path
2015-05-11 13:09:19 -07:00
Armon Dadgar
a1de4b17c2
consul: use tlsutil.Wrapper instead of tls.Config directly
2015-05-11 13:09:19 -07:00
Armon Dadgar
2ca41b15df
consul: updating for Raft API changes
2015-05-08 11:35:52 -07:00
Armon Dadgar
2d2fc71e0d
consul: more telemetry on RPCs and queries
2015-05-07 17:25:12 -07:00
Armon Dadgar
e474e34528
Merge pull request #909 from hashicorp/f-create
...
Support ACL upsert behavior
2015-05-06 11:22:11 -07:00
Armon Dadgar
9b9c737a82
consul: Adding flag to support future incompatible commands. Future self will thank me.
2015-05-05 19:44:21 -07:00
Armon Dadgar
f86e7d13d5
consul: ACL.Apply allows upserting with custom ID
2015-05-05 19:19:45 -07:00
Armon Dadgar
cbc29d1cde
consul: fixing overly redundant logging
2015-05-05 13:00:47 -07:00
Armon Dadgar
efaed93b91
Merge pull request #816 from pepov/master
...
Support different advertise address for WAN gossip
2015-05-04 15:40:25 -07:00
Ryan Mills
2bd5bf04bd
Remove 'unknown' as one of the valid states when setting the initial state of a check.
2015-04-13 20:46:01 +00:00
Ryan Mills
370853d7ff
Allow specifying a status field in the agent/service/register and agent/check/register endpoints.
...
This status must be one of the valid check statuses: 'passing', 'warning', 'critical', 'unknown'.
If the status field is not present or the empty string, the default of 'critical' is used.
2015-04-12 02:00:31 +00:00
Ryan Uber
8ebee678cc
Merge pull request #857 from hashicorp/f-boltdb
...
Raft uses BoltDB
2015-04-10 18:30:07 -07:00
Armon Dadgar
32f3d17931
consul: do not clear connection cache on RPC errors
2015-04-07 14:17:20 -07:00
pepov
8abcf3d541
add test using separate advertise addresses for wan and for lan
2015-03-28 16:08:19 +01:00
Michael Fraenkel
c00c4ebaaa
Support SesionTTLMin configuration
...
- Allow setting SessionTTLMin
- Validate on the Server
2015-03-27 05:13:57 -07:00
Ryan Uber
41aa5aeb09
consul: swap over to raft-boltdb
2015-03-26 20:01:52 -07:00
Ryan Uber
275d99e1dc
consul: allow returning custom error for merge delegate
2015-02-22 18:24:10 -08:00
Ryan Breen
53afd77e2d
s/data center/datacenter/g
2015-02-19 17:45:47 -05:00
Armon Dadgar
f3fd072418
Revert "* use defer to avoid tracking lock"
...
This reverts commit a030abdefc54470394a2a44008e02f3b3d0510ec.
This commit causes a connection to be leaked if there is a race with
another concurrent RPC.
2015-02-16 14:04:47 -08:00
Emil Hessman
70a6cdac6d
consul: clean up TempDirs in FSM tests
2015-01-26 08:34:23 +01:00
Armon Dadgar
7e27d923be
Merge pull request #621 from hashicorp/f-leave
...
Changing interaction between Leave and RemovePeers
2015-01-21 16:28:19 -08:00
Ryan Uber
27de0adf3b
agent: support multiple checks per service
2015-01-20 21:48:42 -08:00
Armon Dadgar
280a1c9c12
consul: Testing leave as leader and non-leader
2015-01-20 16:30:56 -08:00
Armon Dadgar
a695909a85
consul: Wait for RemovePeer in Leave as a follower
2015-01-20 16:19:54 -08:00
Armon Dadgar
aec0dedd01
consul: remove ourself from raft peer set if we are the leader
2015-01-20 16:19:29 -08:00
Armon Dadgar
ea7a0134c8
consul: Do not remove ourself as raft peer in Serf event handler
2015-01-20 16:13:54 -08:00
Armon Dadgar
133cf457a3
consul: Use new LogCache to improve write throughput
2015-01-14 15:49:58 -08:00
Armon Dadgar
1956c07034
consul: Fixing potential issue with blocking queries for {Session,ACL}.Get
2015-01-13 12:02:30 -08:00
Armon Dadgar
9a43063778
consul: Fixing blocking query returning old result
2015-01-13 11:51:24 -08:00
Ryan Uber
f3fad2180c
consul: fix server left test
2015-01-09 19:10:17 -08:00
Ryan Uber
084643abee
consul: improve test reliability for session ttls
2015-01-09 17:18:11 -08:00
Armon Dadgar
2408aa741d
consul: Testing KVSDeleteCAS in FSM
2015-01-08 17:26:12 -08:00
Armon Dadgar
e735c881a0
consul: Test the KVSDeleteCheckAndSet method
2015-01-08 17:24:36 -08:00
Armon Dadgar
d680696afe
consul: Expose the KVSDeleteCAS operation in FSM
2015-01-08 17:08:44 -08:00
Armon Dadgar
781aeb84d5
consul: Implement KVSDeleteCheckAndSet
2015-01-08 17:08:32 -08:00
Armon Dadgar
fbc77b7501
consul: Adding KVSDeleteCAS operation type
2015-01-08 17:08:17 -08:00
Armon Dadgar
2cd89e60ed
consul: Do not override the node address
2015-01-08 10:57:15 -08:00
Armon Dadgar
957fa1f5ec
consul: Fixing merge conflict
2015-01-08 10:42:19 -08:00
Armon Dadgar
2c9dac682a
consul: Remove cruft from KV watching
2015-01-07 18:10:18 -08:00
Armon Dadgar
5b972294f8
consul: Enforce lock-delay with delete behavior
2015-01-07 15:48:27 -08:00