traefik-certs-dumper/tests/test.go
2019-04-20 10:02:37 +02:00

112 lines
2.0 KiB
Go

package main
import (
"bufio"
"bytes"
"compress/gzip"
"fmt"
"io/ioutil"
"os"
"time"
"github.com/abronan/valkeyrie"
"github.com/abronan/valkeyrie/store"
"github.com/abronan/valkeyrie/store/boltdb"
"github.com/abronan/valkeyrie/store/consul"
etcdv3 "github.com/abronan/valkeyrie/store/etcd/v3"
"github.com/abronan/valkeyrie/store/zookeeper"
)
const (
storeKey = "traefik/acme/account/object"
)
func main() {
writeDataToBackends()
}
func writeDataToBackends() {
storeConfig := &store.Config{
ConnectionTimeout: 3 * time.Second,
Bucket: "traefik",
}
consul.Register()
etcdv3.Register()
zookeeper.Register()
boltdb.Register()
consulStore, err := valkeyrie.NewStore(
store.CONSUL,
[]string{"localhost:8500"},
storeConfig,
)
if err != nil {
fmt.Println(err)
return
}
etcdv3Store, err := valkeyrie.NewStore(
store.ETCDV3,
[]string{"localhost:2379"},
storeConfig,
)
if err != nil {
fmt.Println(err)
return
}
zkStore, err := valkeyrie.NewStore(
store.ZK,
[]string{"localhost:2181"},
storeConfig,
)
if err != nil {
fmt.Println(err)
return
}
boltdbStore, err := valkeyrie.NewStore(
store.BOLTDB,
[]string{"/tmp/my.db"},
storeConfig,
)
if err != nil {
fmt.Println(err)
return
}
f, _ := os.Open("/tmp/acme.json")
reader := bufio.NewReader(f)
content, _ := ioutil.ReadAll(reader)
var b bytes.Buffer
gz := gzip.NewWriter(&b)
_, err = gz.Write(content)
if err != nil {
return
}
if err = gz.Flush(); err != nil {
return
}
if err = gz.Close(); err != nil {
return
}
if err := boltdbStore.Put(storeKey, b.Bytes(), nil); err == nil {
fmt.Println("successfully updated boltdb")
}
if err := zkStore.Put(storeKey, b.Bytes(), nil); err == nil {
fmt.Println("successfully updated zookeeper")
}
if err := etcdv3Store.Put(storeKey, b.Bytes(), nil); err == nil {
fmt.Println("successfully updated etcd")
}
if err := consulStore.Put(storeKey, b.Bytes(), nil); err == nil {
fmt.Println("successfully updated consul")
}
}