open-consul/api
Illirgway 46915108e7 Fix bug with unused (replaced with "") CONSUL_HTTP_AUTH in some places
example: https://github.com/hashicorp/consul/blob/master/watch/plan.go#L26

	conf := consulapi.DefaultConfig()
	conf.Address = address
	conf.Datacenter = p.Datacenter
	conf.Token = p.Token                             # <-- replace Token from DefaultConfig/CONSUL_HTTP_AUTH with ""
	client, err := consulapi.NewClient(conf)

how to reproduce bug:
0. consul -> localhost:8500 with more than 0 service checks
1. deny all for anonymous token
2. create appropriate acl <token> for watch checks (agent:read + node:read,service:read)
3. bash:
CONSUL_HTTP_AUTH=<token> consul watch -http-addr=localhost:8500 -type=checks # --> return []
consul watch -http-addr=localhost:8500 -type=checks -token=<token> # -> return { .... right json result .... }
2017-08-16 01:51:18 +03:00
..
acl.go Adds a new /v1/acl/bootstrap API (#3349) 2017-08-02 17:05:18 -07:00
acl_test.go Adds a new /v1/acl/bootstrap API (#3349) 2017-08-02 17:05:18 -07:00
agent.go Adds a guard to make sure that empty log lines don't close consul monitor. 2017-08-08 16:05:29 -07:00
agent_test.go Update api structs for metrics endpoint 2017-08-08 12:33:59 -07:00
api.go Fix bug with unused (replaced with "") CONSUL_HTTP_AUTH in some places 2017-08-16 01:51:18 +03:00
api_test.go api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02:00
catalog.go Add datacenter to catalog node API (#2917) 2017-04-18 05:02:24 -07:00
catalog_test.go api: fix TestAPI_CatalogNodes test 2017-07-07 09:22:34 +02:00
coordinate.go Adds router into RPC paths with work in progress on coordinates. 2017-03-16 16:42:18 -07:00
coordinate_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02: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: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
health.go api: Add ServiceTags to Health state endpoint (#153) 2017-04-28 15:00:08 -07:00
health_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
kv.go Issue #2905: Add check-not-exists to TXN endpoint 2017-04-20 17:50:52 -07:00
kv_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
lock.go golint: Untangle if blocks with return in else 2017-04-25 09:26:13 -07:00
lock_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
operator.go Moves operator sub-functions into their own files. 2017-03-30 12:35:50 -07:00
operator_area.go Adds missing area API. 2017-03-21 23:11:15 -07:00
operator_autopilot.go Add UpgradeVersionTag to autopilot config 2017-07-18 13:35:41 -07:00
operator_autopilot_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
operator_keyring.go Moves operator sub-functions into their own files. 2017-03-30 12:35:50 -07:00
operator_keyring_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
operator_raft.go Moves operator sub-functions into their own files. 2017-03-30 12:35:50 -07:00
operator_raft_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
prepared_query.go Add tests for node meta in prepared queries and update docs 2017-01-23 19:17:30 -05:00
prepared_query_test.go api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02:00
raw.go api: Refactoring into shared write logic 2015-02-18 15:15:02 -08:00
README.md Use HTTPS + www. where appropriate 2016-01-13 17:44:01 -05:00
semaphore.go golint: Untangle if blocks with return in else 2017-04-25 09:26:13 -07:00
semaphore_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
session.go Expands and rework context support in the API client. (#3273) 2017-07-14 17:30:08 -07:00
session_test.go Expands and rework context support in the API client. (#3273) 2017-07-14 17:30:08 -07:00
snapshot.go Adds support for snapshots and restores. (#2396) 2016-10-25 19:20:24 -07:00
snapshot_test.go api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02: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: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02: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.6.0 are supported.

Documentation

The full documentation is available on Godoc

Usage

Below is an example of using the Consul client:

// Get a new client
client, err := api.NewClient(api.DefaultConfig())
if err != nil {
    panic(err)
}

// Get a handle to the KV API
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)