Commit Graph

107 Commits (e44bcb971675b607a4ea3db9d7a8392598f2d349)

Author SHA1 Message Date
Ryan Uber 2973cd9131 agent: first pass at service maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber f01bb5cf3b agent: error if binding to existing socket file 2015-01-16 12:39:15 -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 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 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
Thordur Bjornsson 1435818792 handle ?pretty similarly to ?stale, ?consistent etc. 2015-01-02 08:00:08 +01: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
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
Armon Dadgar 485f0a0c93 agent: Fixing port collision in tests 2014-11-19 11:51:25 -08:00
Atin Malaviya 61f1d24f39 consul.Config() helper to generate the tlsutil.Config{} struct, 30 second keepalive, use keepalive for HTTP and HTTPS 2014-11-18 17:56:48 -05:00
Atin Malaviya f1f8c88228 Moved TLS Config stuff to tlsutil package 2014-11-18 11:03:36 -05:00
Atin Malaviya f4fd8453ed Added HTTPS support via a new HTTPS Port configuration option similar to the HTTP Port. 2014-11-17 14:29:35 -05:00
Armon Dadgar 84649b5423 agent: Fixing multiple headers for /v1/event/list endpoint. Fixes #361 2014-10-13 17:53:54 -07:00
Armon Dadgar 77e94cfd38 agent: First pass at event endpoints 2014-08-28 13:42:07 -07:00
Armon Dadgar 3e4bd6a2ec agent: ACL violation returns 403 code 2014-08-22 12:59:47 -07:00
Armon Dadgar 343f69504b agent: Rename acl delete to destroy 2014-08-18 15:46:58 -07:00
Armon Dadgar 88c2a9c947 agent: Adding token parsing 2014-08-18 15:46:23 -07:00
Armon Dadgar fee3524dea agent: Special handler if ACL support is disabled 2014-08-18 15:46:23 -07:00
Armon Dadgar 78049ad240 agent: ACL endpoint tests 2014-08-18 15:46:21 -07:00
Armon Dadgar 22658aa781 agent: ACL endpoint 2014-08-18 15:46:21 -07:00
Eric Connell a5775aae24 modified so ?pretty=anything will work 2014-08-01 14:28:46 -06:00
Eric Connell e3c4052982 make pretty condition more readable 2014-08-01 14:24:36 -06:00
Eric Connell 90e8e1d97b added URL query parameter of "pretty=true" to output formatted json from the HTTP API 2014-08-01 14:11:51 -06:00
William Tisäter d0e447d29b Add `/v1/agent/self` and return local agent config 2014-05-27 01:15:33 +02:00
Armon Dadgar 0119ec7f0a agent: First pass at session endpoints 2014-05-20 16:25:29 -07:00
Armon Dadgar 416ff8f7d6 agent: Adding UI services endpoint 2014-04-30 23:43:59 -04:00
Armon Dadgar acf67a1630 agent: Adding node UI endpoint 2014-04-30 23:43:59 -04:00
Armon Dadgar fbce850317 agent: Adding nodes UI endpoint 2014-04-30 23:43:59 -04:00
Armon Dadgar 3fe10ccb57 agent: Redirect to UI if we have one 2014-04-30 23:43:58 -04:00
Armon Dadgar 1a4cb628f5 agent: Simplify serving of ui files 2014-04-30 23:43:57 -04:00
Armon Dadgar f0c9ba4c01 agent: Improving UI file serving 2014-04-30 23:43:56 -04:00
Armon Dadgar e20b70b9f6 agent: Adding endpoint to serve the UI 2014-04-30 23:43:56 -04:00
Armon Dadgar 2739abab7b agent: Pass UiDir into the HTTP layer 2014-04-30 23:43:56 -04:00
Armon Dadgar 57a45ead6b Merge pull request #68 from hashicorp/f-consistency
Adding support for "stale" and "consistent" read modes
2014-04-21 15:55:31 -07:00
Armon Dadgar 00bedd4020 agent: Fix decoding of checks. Fixes #60 2014-04-21 15:02:36 -07:00
Armon Dadgar 386d60f8b2 agent: Remove wrapQuery, call setMeta directly 2014-04-21 12:40:11 -07:00
Armon Dadgar 3fbbbc4eea agent: Parse the consistency flags 2014-04-21 12:26:12 -07:00
Armon Dadgar 78f7cb1d5a agent: Fixing similar deregister routing bug with checks 2014-04-18 10:56:00 -07:00
Armon Dadgar b40039b5b8 agent: Fix service deregister routing 2014-04-18 10:54:18 -07:00
Jacques Fuentes 3506b38a40 Ensure we write json header before writing bytes
In net/http once we've issued a Write() the response is sent
over the wire including the header! The tests didn't catch
this because I used a net/http/httptest.RequestRecorder
which doesn't follow those semantics.
2014-04-17 14:53:07 -04:00
Jacques Fuentes 2b6ee141cb HTTP: add content-type: application/json header 2014-04-17 14:38:14 -04:00
Armon Dadgar 6cfde2bf12 agent: First pass at KVS endpoints 2014-03-31 17:12:10 -07:00
Armon Dadgar c7d27cf424 agent: Use EnableDebug to control adding pprof HTTP endpoints 2014-03-19 17:50:57 -07:00
Armon Dadgar c58c53f448 agent: RPC changes and blocking query support 2014-02-05 14:36:13 -08:00
Armon Dadgar 959ea3d5ec agent: Skeleton for HTTP based service/check registration 2014-01-30 14:58:36 -08:00
Armon Dadgar cb7541c7af Exposing the agent checks and services over HTTP endpoints 2014-01-20 15:00:52 -10:00
Armon Dadgar 779bc3b50b First pass at health endpoints 2014-01-10 15:13:37 -08:00
Armon Dadgar 5a087809dc Adding more HTTP endpoints 2014-01-03 17:15:51 -08:00
Armon Dadgar 0061b9a105 Adding DNS based node lookup 2014-01-02 17:58:58 -08:00
Armon Dadgar 1e035d5453 Rename HTTP server method 2014-01-02 11:45:58 -08:00
Armon Dadgar 5c874584be Adding index page with 404 catchall 2013-12-24 17:09:51 -08:00
Armon Dadgar 37aa0ae7a5 Better error logging 2013-12-24 12:22:42 -08:00
Armon Dadgar ead9c42abc Finish implementing the HTTP catalog interface 2013-12-24 11:55:14 -08:00
Armon Dadgar 39d9e3e78f More HTTP endpoints 2013-12-23 16:20:51 -08:00
Armon Dadgar f062e31be7 Adding catalog datacenter http methods 2013-12-23 14:26:34 -08:00
Armon Dadgar 469245a06d Working on Agent HTTP interface 2013-12-23 11:38:51 -08:00