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
catalog_test.go api: fix TestAPI_CatalogNodes test 2017-07-07 09:22:34 +02:00
coordinate.go
coordinate_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
event.go
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
kv_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
lock.go
lock_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
operator.go
operator_area.go
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
operator_keyring_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
operator_raft.go
operator_raft_test.go api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
prepared_query.go
prepared_query_test.go api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02:00
raw.go
README.md
semaphore.go
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
snapshot_test.go api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02:00
status.go
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)