bf2e553785
The permit pool controls the number of outstanding operations that can be queued for Consul (and inmem, for testing purposes). This prevents possible situations where Vault launches thousands of concurrent connections to Consul if e.g. a huge number of leases need to be expired. Fixes #677
86 lines
1.5 KiB
Go
86 lines
1.5 KiB
Go
package physical
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/hashicorp/consul/api"
|
|
)
|
|
|
|
func TestConsulBackend(t *testing.T) {
|
|
addr := os.Getenv("CONSUL_ADDR")
|
|
if addr == "" {
|
|
t.SkipNow()
|
|
}
|
|
|
|
conf := api.DefaultConfig()
|
|
conf.Address = addr
|
|
client, err := api.NewClient(conf)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
randPath := fmt.Sprintf("vault-%d/", time.Now().Unix())
|
|
defer func() {
|
|
client.KV().DeleteTree(randPath, nil)
|
|
}()
|
|
|
|
b, err := NewBackend("consul", map[string]string{
|
|
"address": addr,
|
|
"path": randPath,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
testBackend(t, b)
|
|
testBackend_ListPrefix(t, b)
|
|
}
|
|
|
|
func TestConsulHABackend(t *testing.T) {
|
|
addr := os.Getenv("CONSUL_ADDR")
|
|
if addr == "" {
|
|
t.SkipNow()
|
|
}
|
|
|
|
conf := api.DefaultConfig()
|
|
conf.Address = addr
|
|
client, err := api.NewClient(conf)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
randPath := fmt.Sprintf("vault-%d/", time.Now().Unix())
|
|
defer func() {
|
|
client.KV().DeleteTree(randPath, nil)
|
|
}()
|
|
|
|
b, err := NewBackend("consul", map[string]string{
|
|
"address": addr,
|
|
"path": randPath,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
ha, ok := b.(HABackend)
|
|
if !ok {
|
|
t.Fatalf("consul does not implement HABackend")
|
|
}
|
|
testHABackend(t, ha, ha)
|
|
|
|
detect, ok := b.(AdvertiseDetect)
|
|
if !ok {
|
|
t.Fatalf("consul does not implement AdvertiseDetect")
|
|
}
|
|
host, err := detect.DetectHostAddr()
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if host == "" {
|
|
t.Fatalf("bad addr: %v", host)
|
|
}
|
|
}
|