open-consul/api
Peter Fern 86edd7169c Add TCP check type
Adds the ability to simply check whether a TCP socket accepts
connections to determine if it is healthy.  This is a light-weight -
though less comprehensive than scripting - method of checking network
service health.

The check parameter `tcp` should be set to the `address:port`
combination for the service to be tested.  Supports both IPv6 and IPv4,
in the case of a hostname that resolves to both, connections will be
attempted via both protocol versions, with the first successful
connection returning a successful check result.

Example check:

```json
{
  "check": {
    "id": "ssh",
    "name": "SSH (TCP)",
    "tcp": "example.com:22",
    "interval": "10s"
  }
}
```
2015-07-24 14:06:05 +10:00
..
acl.go Revert "fixed: body not closed for non HTTP 200 responses" 2015-01-19 11:51:51 +09:00
acl_test.go api: run ACL tests by default 2015-06-13 23:51:30 +02:00
agent.go Add TCP check type 2015-07-24 14:06:05 +10:00
agent_test.go Fix tests after merge 2015-05-11 18:53:09 -07:00
api.go Read select environment variables when generating the default configuration 2015-03-18 11:12:10 -04:00
api_test.go api: run ACL tests by default 2015-06-13 23:51:30 +02:00
catalog.go Add 'ServiceAddress' field to 'CatalogService's truct 2015-03-04 10:29:57 +01:00
catalog_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00
event.go Revert "fixed: body not closed for non HTTP 200 responses" 2015-01-19 11:51:51 +09:00
event_test.go api: improve test reliability 2015-05-12 12:10:25 -07:00
health.go Revert "fixed: body not closed for non HTTP 200 responses" 2015-01-19 11:51:51 +09:00
health_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00
kv.go Returns an error for a key with a '/' 2015-03-31 21:08:06 -06:00
kv_test.go Fixes a broken unit test introduced by #834. 2015-06-09 12:01:20 -07:00
lock.go Check to see why a lock acquisition failed 2015-06-05 13:23:23 -07:00
lock_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00
raw.go api: Refactoring into shared write logic 2015-02-18 15:15:02 -08:00
README.md api: initial import from armon/consul-api 2015-01-06 10:40:00 -08:00
semaphore.go Remove unused DefaultSemaphoreRetryTime 2015-05-15 08:25:02 -07:00
semaphore_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00
session.go modify RenewPeriodic to retry failed Renews until TTL elapses 2015-05-06 16:40:45 -07:00
session_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00
status.go Revert "fixed: body not closed for non HTTP 200 responses" 2015-01-19 11:51:51 +09:00
status_test.go api: run tests in parallel 2015-05-08 10:27:24 -07:00

Consul API client

This package provides the api package which attempts to provide programmatic access to the full Consul API.

Currently, all of the Consul APIs included in version 0.3 are supported.

Documentation

The full documentation is available on Godoc

Usage

Below is an example of using the Consul client:

// Get a new client, with KV endpoints
client, _ := api.NewClient(api.DefaultConfig())
kv := client.KV()

// PUT a new KV pair
p := &api.KVPair{Key: "foo", Value: []byte("test")}
_, err := kv.Put(p, nil)
if err != nil {
    panic(err)
}

// Lookup the pair
pair, _, err := kv.Get("foo", nil)
if err != nil {
    panic(err)
}
fmt.Printf("KV: %v", pair)