Ryan Uber
2973cd9131
agent: first pass at service maintenance mode
2015-01-16 15:37:51 -08:00
Ryan Uber
41ec10a120
command: fix env var reader for HTTP addr
2015-01-16 14:01:20 -08:00
Ryan Uber
f01bb5cf3b
agent: error if binding to existing socket file
2015-01-16 12:39:15 -08:00
Ryan Uber
56c3e488a9
agent: test socket file overwrite
2015-01-16 10:37:13 -08:00
Ryan Uber
e2eff5698e
command: style fixes for env addr reading
2015-01-16 10:19:04 -08:00
Ryan Uber
4c3ec248a5
agent: fixing up tests
2015-01-16 09:58:37 -08:00
Ryan Uber
bf48651c58
agent: only ignore errors on IsNotExist()
2015-01-16 09:14:52 -08:00
Ryan Uber
4675cdf01c
agent: beginning refactor
2015-01-16 00:45:03 -08:00
Jeff Mitchell
9fcea08dbb
Ensure a socket is created for permissions adjustment tests and fix some
...
items pointed out in the code review
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-15 14:33:44 +00:00
Jeff Mitchell
32d2c6b848
Add a Unix socket RPC test. I modified some code in the testing library to not make assumptions about the listening socket; all RPC tests still pass. Still to do: Unix socket HTTP test.
...
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell
0cc009c480
Remove unnecessary ClientListenerAddr function. Rework config test functions to be cleaner. Start of runtime tests.
...
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell
8362e3e9eb
Tests for populateUnixSocket. Still need to write tests for the other major function, and basic socket listening tests.
...
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell
11a3ce0bdd
RPC and HTTP interfaces fully generically-sockified so Unix is supported.
...
Client works for RPC; will honor CONSUL_RPC_ADDR. HTTP works via consul/api;
honors CONSUL_HTTP_ADDR.
The format of a Unix socket in configuration data is:
"unix://[/path/to/socket];[username or uid];[gid];[mode]"
Obviously, the user must have appropriate permissions to create the socket
file in the given path and assign the requested uid/gid. Also note that Go does
not support gid lookups from group name, so gid must be numeric. See
https://codereview.appspot.com/101310044
When connecting from the client, the format is just the first part of the
above line:
"unix://[/path/to/socket]"
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Armon Dadgar
96c7ce120e
command/agent: Minor cleanups
2015-01-13 12:18:18 -08:00
Armon Dadgar
713d30c73e
Merge pull request #592 from nicholascapo/check-http
...
command/agent: Add simple HTTP check type
2015-01-13 12:11:50 -08:00
Armon Dadgar
aedaf7a7c8
Merge pull request #595 from ebroder/dns-only-passing
...
Add "only_passing" option to DNS config
2015-01-13 12:07:22 -08:00
Evan Broder
a0228a64e2
Add more thorough testing for only_passing behavior
2015-01-13 14:59:24 +01:00
Nicholas Capo
641476a822
command/agent: Add tests for HTTP Check
2015-01-13 00:09:42 +00:00
Ryan Uber
b2fbaea18c
agent: make dns randomization test more reliable
2015-01-12 16:05:41 -08:00
Nicholas Capo
98eb935392
command/agent: HTTP Check: Create httpClient in Start()
...
For long (>10s) interval checks the http timeout is 10s, otherwise thetimeout is the interval. This means that a check *should* return
before the next check begins.
2015-01-13 00:01:15 +00:00
Nicholas Capo
bcb983edbe
command/agent: HTTP Check: Include response in check status
2015-01-12 22:35:28 +00:00
Nicholas Capo
50853265dd
command/agent: Stop HTTP checks when the check is removed
2015-01-12 22:34:39 +00:00
Nicholas Capo
6a2d763d5c
command/agent: HTTP check: Any 2xx is OK, 429 is WARNING
2015-01-12 21:58:57 +00:00
Evan Broder
ee6d59d4dd
Add "only_passing" option to DNS config
...
This excludes nodes from DNS results if their healthchecks are in any
non-passing state, not just if they're critical.
2015-01-10 13:17:11 +01:00
Ryan Uber
5bf1abf7ef
agent: fix local_test.go
2015-01-09 16:44:12 -08:00
Ryan Uber
c2188440b2
agent: wrap deferred anti-entropy sync test in WaitForResult
2015-01-09 16:42:44 -08:00
Nicholas Capo
fb5ba8d97d
command/agent: Add simple HTTP check type
...
These checks make an `HTTP GET` request every Interval to the specified URL.
The status of the service depends on the HTTP Response Code.
`200` is passing, `503` is warning and anything else is failing.
2015-01-09 16:43:24 -06:00
Armon Dadgar
d05ed7baa6
agent: Testing the KV DELETE with cas
2015-01-08 17:31:32 -08:00
Armon Dadgar
3e0f77682a
agent: Support the ?cas parameter to KV DELETE
2015-01-08 17:08:58 -08:00
Armon Dadgar
9f4955151a
agent: Testing anti-entropy with service address
2015-01-08 12:02:04 -08:00
Armon Dadgar
77a3bfd606
agent: Adding test for DNS lookup with service address
2015-01-08 11:58:32 -08:00
Armon Dadgar
419447d9f7
agent: Fix de-duplication of SRV with service address
2015-01-08 10:47:41 -08:00
Armon Dadgar
23b9c96169
consul: Fixing merge conflict
2015-01-08 10:42:19 -08:00
Armon Dadgar
f2e1065246
agent: Testing reverse lookup with custom TLD
2015-01-08 10:24:49 -08:00
dankennedy
63af8d08e1
replaced consul domain with configured domain. Fixes #582
2015-01-08 10:16:05 +00:00
Ryan Uber
a24f6e3d4d
agent: test service and check unloading
2015-01-07 22:32:14 -08:00
Ryan Uber
51fe9f32ff
agent: consolidate service loading code, better logging
2015-01-07 22:01:43 -08:00
Ryan Uber
cfde9313de
agent: separate service and check loading/unloading concerns
2015-01-07 22:01:20 -08:00
Ryan Uber
0b9f2b0954
agent: persist service/check data using hashed service/check IDs ( fixes #573 )
2015-01-07 19:11:21 -08:00
Ryan Uber
d97305e376
command: check LastIndex is not zero while waiting for leader
2015-01-07 15:18:00 -08:00
Armon Dadgar
7b7c1afe1b
command/exec: Use TTL for local and foreign
2015-01-07 14:27:29 -08:00
Armon Dadgar
ce83322e16
command/exec: Support foreign datacenters
2015-01-07 14:22:40 -08:00
Ryan Uber
c2177c0ed5
Merge pull request #581 from hashicorp/f-consulapi
...
Bring in consulapi
2015-01-07 12:09:44 -08:00
Ryan Uber
5555e0eb9b
api: initial import from armon/consul-api
2015-01-06 10:40:00 -08:00
Ryan Uber
db3c502dcc
Merge pull request #576 from hashicorp/f-verify-config
...
agent: reject config with invalid options
2015-01-05 14:51:28 -08:00
Daniel Malon
bd65cbb7d7
use the service specific address in SRV response
2015-01-05 22:48:30 +00:00
Ryan Uber
42ace3a6b5
agent: use mapstructure's Metadata.Unused to detect extraneous config
2015-01-05 14:41:19 -08:00
Ryan Uber
b8740b62da
agent: reject config with invalid options
2015-01-05 12:30:03 -08:00
Armon Dadgar
f86d7c3a09
Merge pull request #558 from ceh/http-api-response-headers
...
add ability to specify response headers on the HTTP API
2015-01-05 11:36:08 -08:00
Daniel Malon
051ac8eb0b
advertise specific address for a service
...
Enable setting a specific address in a service definition for advertise. If no specific address is given it will fallback to the node address and reassemble the old behaviour.
2015-01-02 21:10:05 +00:00
Thordur Bjornsson
a12ffef8b6
Test both ?pretty both bare and with value.
2015-01-02 09:15:41 +01:00
Thordur Bjornsson
1435818792
handle ?pretty similarly to ?stale, ?consistent etc.
2015-01-02 08:00:08 +01:00
Ryan Uber
e9615c50e6
agent: test pretty printed json
2015-01-01 14:27:10 -08:00
Emil Hessman
cb764c35e5
add ability to specify response headers on the HTTP API
...
Add an config object that allows adding HTTP header response fields to every
HTTP API response.
Each specified header is added to every response from all HTTP API endpoints.
Each individual endpoint may overwrite the specified header, which makes sure
that Consul headers such as 'X-Consul-Index' is enforced by the API.
2014-12-28 19:17:08 +01:00
Ryan Breen
f2bd641402
Clean up log line and reduce test time.
2014-12-18 09:00:51 -05:00
Ryan Breen
d82ef7bb8c
Test that staggered checks run within the defined interval.
2014-12-17 22:39:11 -05:00
Ryan Breen
2e58f54a26
Well, that sure is cleaner.
2014-12-17 22:24:41 -05:00
Ryan Breen
60dacecb39
Add a randomized start before running CheckMonitors.
2014-12-17 21:44:12 -05:00
lalyos
89f271a9da
Add default rpc address configuration option as CONSUL_RPC_ADDR env variable
...
Similar as in serf: https://github.com/hashicorp/serf/pull/210
2014-12-16 12:18:34 +01:00
Armon Dadgar
a5a9f051cd
consul: Ignore zero ttl on session
2014-12-12 19:17:04 -08:00
Armon Dadgar
29afa881f4
Merge pull request #524 from amalaviy/session_ttl
...
Consul Session TTLs
2014-12-12 14:42:25 -08:00
Atin Malaviya
ac54010027
Fixed clearSessionTimer, created invalidateSession, added invalid TTL test
2014-12-11 05:34:31 -05:00
Atin Malaviya
60915629f6
Took out usage of snapshot SessionListTTL
2014-12-10 21:37:06 -05:00
Atin Malaviya
0f9723e6f8
Remove hardcoded wait time in session TTL tests
2014-12-10 21:04:09 -05:00
Atin Malaviya
5229f3b44d
Clean up code based on feedback from armon
2014-12-10 20:49:06 -05:00
Atin Malaviya
624c465e2b
Added more tests. Also added return of 404 if the session id to renew is not found
2014-12-10 10:02:23 -05:00
Atin Malaviya
4732c36d88
Consul Session TTLs
...
The design of the session TTLs is based on the Google Chubby approach
(http://research.google.com/archive/chubby-osdi06.pdf ). The Session
struct has an additional TTL field now. This attaches an implicit
heartbeat based failure detector. Tracking of heartbeats is done by
the current leader and not persisted via the Raft log. The implication
of this is during a leader failover, we do not retain the last
heartbeat times.
Similar to Chubby, the TTL represents a lower-bound. Consul promises
not to terminate a session before the TTL has expired, but is allowed
to extend the expiration past it. This enables us to reset the TTL on
a leader failover. The TTL is also extended when the client does a
heartbeat. Like Chubby, this means a TTL is extended on creation,
heartbeat or failover.
Additionally, because we must account for time requests are in transit
and the relative rates of clocks on the clients and servers, Consul
will take the conservative approach of internally multiplying the TTL
by 2x. This helps to compensate for network latency and clock skew
without violating the contract.
Reference: https://docs.google.com/document/d/1Y5-pahLkUaA7Kz4SBU_mehKiyt9yaaUGcBTMZR7lToY/edit?usp=sharing
2014-12-07 12:38:22 -05:00
Ali Abbas
d73e1cae85
since dns.TXT is an external dependency, it is safer to add keys to the fields to avoid some potential ordering issues if changes in this field occur with upstream
2014-12-06 13:13:35 +01:00
Ali Abbas
a84a88b3f5
remove control flow on errExit by switching from bool to int
2014-12-06 12:50:38 +01:00
Chavez
de0d2d7b78
agent: agent test fixes
2014-12-05 10:36:44 -08:00
Veres Lajos
3b1068387a
typofixes - https://github.com/vlajos/misspell_fixer
2014-12-04 23:25:06 +00:00
Armon Dadgar
5887242db2
agent: Handle service ACLs when doing anti-entropy
2014-12-01 11:43:01 -08:00
Ryan Uber
81d4e5cfd4
agent: fixup all check definitions from json config
2014-11-30 18:27:37 -08:00
Ryan Uber
dd4fadfc9e
agent: persist CheckType with health checks
2014-11-29 12:54:37 -08:00
Ryan Uber
b7587cac42
agent: allow config reload to modify checks/services persistence
...
This change consolidates loading services and checks from both config
and persisted state into methods on the agent. As part of this, we
introduce optional persistence when calling RemoveCheck/RemoveService.
Fixes a bug where config reloads would kill persisted services/checks.
Also fixes an edge case:
1. A service or check is registered via the HTTP API
2. A new service or check definition with the same ID is added to config
3. Config is reloaded
The desired behavior (which this implements) is:
1. All services and checks deregistered in memory
2. All services and checks in config are registered first
3. All persisted checks are restored using the same logic as the agent
start sequence, which prioritizes config over persisted, and removes
any persistence files if new config counterparts are present.
2014-11-26 12:46:42 -08:00
Ali Abbas
a4656f1ecf
fix Sprintf formatting
2014-11-25 20:06:33 +01:00
Ali Abbas
e395420af6
cleanup unreachable code
2014-11-25 19:54:30 +01:00
Ryan Uber
9f9087badb
agent: prefer config over persisted services/checks ( #497 )
2014-11-24 19:40:53 -08:00
Armon Dadgar
f74d3dbd92
Merge pull request #497 from hashicorp/f-persist
...
Persist locally registered services and checks
2014-11-24 11:14:08 -08:00
Armon Dadgar
50e21b071c
agent: Adding TODO for future optimization
2014-11-24 11:09:04 -08:00
Ryan Uber
2ebe85414f
agent: pass error through when writing state files
2014-11-24 01:58:39 -08:00
Ryan Uber
79ba25b94d
agent: default restored checks to critical status
2014-11-24 01:15:18 -08:00
Ryan Uber
46a5272a8a
agent: first pass at local service and check persistence
2014-11-24 01:10:27 -08:00
lalyos
8f04401648
agent: implementing reverse dns lookup for ipv4 and ipv6
2014-11-23 09:16:37 +01:00
Armon Dadgar
f57efbc778
Merge pull request #487 from amalaviy/ephemeral_keys
...
Ephemeral Nodes for via Session behavior settings.
2014-11-21 10:11:52 -08:00
Ryan Uber
dbd420fc4b
agent: make event buffer test non-sequential
2014-11-20 21:56:50 -08:00
Ryan Uber
da96fb5499
agent: Test event order preservation for watches
2014-11-20 20:35:52 -08:00
Ryan Uber
96619b7f88
agent: Preserve ordering of event buffer. Fixes #479
2014-11-20 19:51:08 -08:00
Atin Malaviya
6ef03a806c
Clean up tests, use switch to default session.Behavior value if unspecified, unrecognized
2014-11-20 14:29:18 -05:00
Atin Malaviya
47241fc1c8
Ephemeral Nodes for via Session behavior settings.
...
Added a "delete" behavior for session invalidation, in addition to
the default "release" behavior. On session invalidation, the sessions
Behavior field is checked and if it is set to "delete", all nodes owned
by the session are deleted. If it is "release", then just the locks
are released as default.
2014-11-20 11:34:45 -05:00
Ryan Uber
28bd9810a7
agent: remove unused config variable
2014-11-19 23:18:12 -08:00
Ryan Uber
c283754381
Rebase against upstream
2014-11-19 16:45:49 -08:00
Ryan Uber
bc0eb4c16d
agent: fix gossip encryption detection
2014-11-19 16:37:40 -08:00
Ryan Uber
8a652c6ffa
agent: fix loading keyring on agent start
2014-11-19 16:37:40 -08:00
Ryan Uber
ab5fbe4094
agent: ignore -encrypt if provided when keyring exists
2014-11-19 16:37:40 -08:00
Ryan Uber
4203e7ab6d
consul: clean up comments, fix globalRPC tests
2014-11-19 16:37:40 -08:00
Ryan Uber
0cafb129ee
consul: more tests, remove unused KeyManager() method
2014-11-19 16:37:40 -08:00
Ryan Uber
648c7cdc8e
consul: simplify keyring operations
2014-11-19 16:36:19 -08:00
Ryan Uber
1398538ae2
command/keyring: adjust command help
2014-11-19 16:36:18 -08:00
Ryan Uber
e60c909276
command/keyring: clean up tests
2014-11-19 16:36:18 -08:00
Ryan Uber
0b8fe6cc83
agent: fix test cases
2014-11-19 16:36:18 -08:00
Ryan Uber
c945311baf
agent: make rpc tests more reliable
2014-11-19 16:36:01 -08:00
Ryan Uber
bc2b2120fa
agent: -encrypt appends to keyring if one exists
2014-11-19 16:36:01 -08:00
Ryan Uber
22b2c63304
command/agent: fix up gossip encryption indicator
2014-11-19 16:35:37 -08:00
Ryan Uber
7a74f559b9
command: remove -init argument from keyring, auto-persist keyrings when using agent -encrypt
2014-11-19 16:35:13 -08:00
Ryan Uber
1f9d13dc73
agent: squash some more common keyring semantics
2014-11-19 16:34:18 -08:00
Ryan Uber
59a7938d1f
agent: guard against empty keyring files
2014-11-19 16:34:18 -08:00
Ryan Uber
7b4b87ccf1
consul: use keyring operation type to cut out duplicated logic
2014-11-19 16:34:18 -08:00
Ryan Uber
c11f6b5152
agent: fix install key test
2014-11-19 16:34:18 -08:00
Ryan Uber
daf77c3f5b
command/keyring: cleanup
2014-11-19 16:34:18 -08:00
Ryan Uber
6a3271980e
command/keyring: refactor, adjust tests
2014-11-19 16:34:18 -08:00
Ryan Uber
91ad3461f4
command: fix panic when client RPC is asked for a keyring operation
2014-11-19 16:34:17 -08:00
Ryan Uber
9d01174521
consul: kill unused struct fields
2014-11-19 16:34:17 -08:00
Ryan Uber
a163db2269
command/keyring: remove unneeded -wan arg, fix tests
2014-11-19 16:34:17 -08:00
Ryan Uber
f86904ee59
agent: adjust rpc client tests for keyring
2014-11-19 16:34:17 -08:00
Ryan Uber
fcba072246
command: fixing test cases for keyring
2014-11-19 16:34:17 -08:00
Ryan Uber
e9f8f7f2d7
command/keyring: clean up output
2014-11-19 16:34:17 -08:00
Ryan Uber
9056e617cb
consul: cross-dc key rotation works
2014-11-19 16:34:17 -08:00
Ryan Uber
2bdeaa0c6a
consul: restructuring
2014-11-19 16:34:17 -08:00
Ryan Uber
8dec2744da
consul: refactor keyring, repeat RPC calls to all DC's
2014-11-19 16:34:17 -08:00
Ryan Uber
cfbf2b4f94
command: allow wan ring to be modified separately from lan pools
2014-11-19 16:33:34 -08:00
Ryan Uber
431b366d4f
agent: split keyring functionality out of agent.go
2014-11-19 16:32:32 -08:00
Ryan Uber
5ab4a590d7
command: test generated keyring file content and conflicting args for agent
2014-11-19 16:32:06 -08:00
Ryan Uber
621aafa9b4
agent: test loading keyring files for client and server
2014-11-19 16:31:40 -08:00
Ryan Uber
2220ccdac2
command: various cleanup
2014-11-19 16:31:06 -08:00
Ryan Uber
d906d16d15
agent: add tests for keyring presence checks
2014-11-19 16:31:06 -08:00
Ryan Uber
77519a5439
command/keyring: add tests for init
2014-11-19 16:31:06 -08:00
Ryan Uber
353b67826a
command: use separate key files for LAN/WAN
2014-11-19 16:31:06 -08:00
Ryan Uber
67d78628a3
command: renamed keys to keyring to disambiguate usage
2014-11-19 16:31:06 -08:00
Ryan Uber
530f3ba747
command/keys: refactor, restrict key operations to server nodes
2014-11-19 16:31:06 -08:00
Ryan Uber
8a40f3888c
agent: move keyring initialization out of agent, add -init option to keys command
2014-11-19 16:31:06 -08:00
Ryan Uber
0952535e33
agent: fix keyring loading when config is passed off
2014-11-19 16:31:06 -08:00
Ryan Uber
b6037ef323
agent: clean up keyring file implementation
2014-11-19 16:31:06 -08:00
Ryan Uber
fcb0961436
agent: refactor keyring loader
2014-11-19 16:31:06 -08:00
Ryan Uber
df68820645
agent: install/use/remove key tests
2014-11-19 16:30:22 -08:00
Ryan Uber
2280434e16
agent: add rpc tests for listing lan/wan gossip keys
2014-11-19 16:30:22 -08:00
Ryan Uber
e78c235dcf
command/keys: test network connection failure
2014-11-19 16:30:22 -08:00
Ryan Uber
5bf70bc605
command/keys: adding more tests
2014-11-19 16:30:22 -08:00
Ryan Uber
90de483871
command/keys: begin tests
2014-11-19 16:30:22 -08:00
Ryan Uber
46ce9e936f
command/keys: remove key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
1ac6b10aed
command/keys: use key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
222adc92a0
command/keys: customize info message when listing keys
2014-11-19 16:30:22 -08:00
Ryan Uber
7b6f3d6dcc
agent: install key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
3a68d9e506
command/keys: use PrefixedUi for keys command
2014-11-19 16:30:22 -08:00
Ryan Uber
0f611572cc
command/keys: fail fast if no actionable args were passed
2014-11-19 16:30:21 -08:00
Ryan Uber
e4251a3372
agent: fix inversed lan/wan key listing
2014-11-19 16:30:21 -08:00
Ryan Uber
9b4707a329
command/keys: list keys working end-to-end
2014-11-19 16:30:21 -08:00
Ryan Uber
f771f2ef92
command: add option for -wan to keys command
2014-11-19 16:30:21 -08:00
Ryan Uber
67b179ccc9
command: basic rpc works for keys command
2014-11-19 16:30:21 -08:00
Ryan Uber
4dd1b42477
consul: use rpc layer only for key management functions, add rpc commands
2014-11-19 16:30:21 -08:00