summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xordataexchange/crypt/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/xordataexchange/crypt/config/config.go')
-rw-r--r--vendor/github.com/xordataexchange/crypt/config/config.go201
1 files changed, 0 insertions, 201 deletions
diff --git a/vendor/github.com/xordataexchange/crypt/config/config.go b/vendor/github.com/xordataexchange/crypt/config/config.go
deleted file mode 100644
index 30864ae9..00000000
--- a/vendor/github.com/xordataexchange/crypt/config/config.go
+++ /dev/null
@@ -1,201 +0,0 @@
-package config
-
-import (
- "bytes"
- "io"
- "io/ioutil"
-
- "github.com/xordataexchange/crypt/backend"
- "github.com/xordataexchange/crypt/backend/consul"
- "github.com/xordataexchange/crypt/backend/etcd"
- "github.com/xordataexchange/crypt/encoding/secconf"
-)
-
-type KVPair struct {
- backend.KVPair
-}
-
-type KVPairs []*KVPair
-
-type configManager struct {
- keystore []byte
- store backend.Store
-}
-
-// A ConfigManager retrieves and decrypts configuration from a key/value store.
-type ConfigManager interface {
- Get(key string) ([]byte, error)
- List(key string) (KVPairs, error)
- Set(key string, value []byte) error
- Watch(key string, stop chan bool) <-chan *Response
-}
-
-type standardConfigManager struct {
- store backend.Store
-}
-
-func NewStandardConfigManager(client backend.Store) (ConfigManager, error) {
- return standardConfigManager{client}, nil
-}
-
-func NewConfigManager(client backend.Store, keystore io.Reader) (ConfigManager, error) {
- bytes, err := ioutil.ReadAll(keystore)
- if err != nil {
- return nil, err
- }
- return configManager{bytes, client}, nil
-}
-
-// NewStandardEtcdConfigManager returns a new ConfigManager backed by etcd.
-func NewStandardEtcdConfigManager(machines []string) (ConfigManager, error) {
- store, err := etcd.New(machines)
- if err != nil {
- return nil, err
- }
-
- return NewStandardConfigManager(store)
-}
-
-// NewStandardConsulConfigManager returns a new ConfigManager backed by consul.
-func NewStandardConsulConfigManager(machines []string) (ConfigManager, error) {
- store, err := consul.New(machines)
- if err != nil {
- return nil, err
- }
- return NewStandardConfigManager(store)
-}
-
-// NewEtcdConfigManager returns a new ConfigManager backed by etcd.
-// Data will be encrypted.
-func NewEtcdConfigManager(machines []string, keystore io.Reader) (ConfigManager, error) {
- store, err := etcd.New(machines)
- if err != nil {
- return nil, err
- }
- return NewConfigManager(store, keystore)
-}
-
-// NewConsulConfigManager returns a new ConfigManager backed by consul.
-// Data will be encrypted.
-func NewConsulConfigManager(machines []string, keystore io.Reader) (ConfigManager, error) {
- store, err := consul.New(machines)
- if err != nil {
- return nil, err
- }
- return NewConfigManager(store, keystore)
-}
-
-// Get retrieves and decodes a secconf value stored at key.
-func (c configManager) Get(key string) ([]byte, error) {
- value, err := c.store.Get(key)
- if err != nil {
- return nil, err
- }
- return secconf.Decode(value, bytes.NewBuffer(c.keystore))
-}
-
-// Get retrieves a value stored at key.
-// convenience function, no additional value provided over
-// `etcdctl`
-func (c standardConfigManager) Get(key string) ([]byte, error) {
- value, err := c.store.Get(key)
- if err != nil {
- return nil, err
- }
- return value, err
-}
-
-// List retrieves and decodes all secconf value stored under key.
-func (c configManager) List(key string) (KVPairs, error) {
- list, err := c.store.List(key)
- retList := make(KVPairs, len(list))
- if err != nil {
- return nil, err
- }
- for i, kv := range list {
- retList[i].Key = kv.Key
- retList[i].Value, err = secconf.Decode(kv.Value, bytes.NewBuffer(c.keystore))
- if err != nil {
- return nil, err
- }
- }
- return retList, nil
-}
-
-// List retrieves all values under key.
-// convenience function, no additional value provided over
-// `etcdctl`
-func (c standardConfigManager) List(key string) (KVPairs, error) {
- list, err := c.store.List(key)
- retList := make(KVPairs, len(list))
- if err != nil {
- return nil, err
- }
- for i, kv := range list {
- retList[i].Key = kv.Key
- retList[i].Value = kv.Value
- }
- return retList, err
-}
-
-// Set will put a key/value into the data store
-// and encode it with secconf
-func (c configManager) Set(key string, value []byte) error {
- encodedValue, err := secconf.Encode(value, bytes.NewBuffer(c.keystore))
- if err == nil {
- err = c.store.Set(key, encodedValue)
- }
- return err
-}
-
-// Set will put a key/value into the data store
-func (c standardConfigManager) Set(key string, value []byte) error {
- err := c.store.Set(key, value)
- return err
-}
-
-type Response struct {
- Value []byte
- Error error
-}
-
-func (c configManager) Watch(key string, stop chan bool) <-chan *Response {
- resp := make(chan *Response, 0)
- backendResp := c.store.Watch(key, stop)
- go func() {
- for {
- select {
- case <-stop:
- return
- case r := <-backendResp:
- if r.Error != nil {
- resp <- &Response{nil, r.Error}
- continue
- }
- value, err := secconf.Decode(r.Value, bytes.NewBuffer(c.keystore))
- resp <- &Response{value, err}
- }
- }
- }()
- return resp
-}
-
-func (c standardConfigManager) Watch(key string, stop chan bool) <-chan *Response {
- resp := make(chan *Response, 0)
- backendResp := c.store.Watch(key, stop)
- go func() {
- for {
- select {
- case <-stop:
- return
- case r := <-backendResp:
- if r.Error != nil {
- resp <- &Response{nil, r.Error}
- continue
- }
- resp <- &Response{r.Value, nil}
- }
- }
- }()
- return resp
-}