aboutsummaryrefslogtreecommitdiffstats
path: root/src/k8splugin/db/consul.go
diff options
context:
space:
mode:
authorVictor Morales <victor.morales@intel.com>2019-01-24 17:46:43 -0800
committerVictor Morales <victor.morales@intel.com>2019-01-25 16:52:38 -0800
commit083465d10c8fdeaffa89aa7daa93def3eca77df1 (patch)
tree23135a724a1628e986f9c6748b82f275763cdf10 /src/k8splugin/db/consul.go
parent5c4e91705457dc4bdb5526e6f5210fa879ab659d (diff)
Use a standard Go project layout
This project wasn't following some Standard Go Project Layout guidelines(https://github.com/golang-standards/project-layout). This change pretends to organize the source code and following those guidelines. Change-Id: I61085ac20f28069cede013f83034bed06892d87c Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: MULTICLOUD-301
Diffstat (limited to 'src/k8splugin/db/consul.go')
-rw-r--r--src/k8splugin/db/consul.go118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/k8splugin/db/consul.go b/src/k8splugin/db/consul.go
deleted file mode 100644
index a61a4c10..00000000
--- a/src/k8splugin/db/consul.go
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-Copyright 2018 Intel Corporation.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package db
-
-import (
- "os"
-
- "github.com/hashicorp/consul/api"
- pkgerrors "github.com/pkg/errors"
-)
-
-// ConsulKVStore defines the a subset of Consul DB operations
-// Note: This interface is defined mainly for allowing mock testing
-type ConsulKVStore interface {
- List(prefix string, q *api.QueryOptions) (api.KVPairs, *api.QueryMeta, error)
- Get(key string, q *api.QueryOptions) (*api.KVPair, *api.QueryMeta, error)
- Put(p *api.KVPair, q *api.WriteOptions) (*api.WriteMeta, error)
- Delete(key string, w *api.WriteOptions) (*api.WriteMeta, error)
-}
-
-// ConsulStore is an implementation of the ConsulKVStore interface
-type ConsulStore struct {
- client ConsulKVStore
-}
-
-// NewConsulStore initializes a Consul Store instance using the default values
-func NewConsulStore(store ConsulKVStore) (Store, error) {
- if store == nil {
- config := api.DefaultConfig()
- config.Address = os.Getenv("DATABASE_IP") + ":8500"
-
- consulClient, err := api.NewClient(config)
- if err != nil {
- return nil, err
- }
- store = consulClient.KV()
- }
-
- return &ConsulStore{
- client: store,
- }, nil
-}
-
-// HealthCheck verifies if the database is up and running
-func (c *ConsulStore) HealthCheck() error {
- _, err := c.Read("test", "test", "test")
- if err != nil {
- return pkgerrors.New("[ERROR] Cannot talk to Datastore. Check if it is running/reachable.")
- }
- return nil
-}
-
-// Unmarshal implements any unmarshaling that is needed when using consul
-func (c *ConsulStore) Unmarshal(inp []byte, out interface{}) error {
- return nil
-}
-
-// Create is used to create a DB entry
-func (c *ConsulStore) Create(root, key, tag string, data interface{}) error {
-
- value, err := Serialize(data)
- if err != nil {
- return pkgerrors.Wrap(err, "Serializing input data")
- }
-
- p := &api.KVPair{
- Key: key,
- Value: []byte(value),
- }
- _, err = c.client.Put(p, nil)
- return err
-}
-
-// Read method returns the internalID for a particular externalID
-func (c *ConsulStore) Read(root, key, tag string) ([]byte, error) {
- key = root + "/" + key + "/" + tag
- pair, _, err := c.client.Get(key, nil)
- if err != nil {
- return nil, err
- }
- if pair == nil {
- return nil, nil
- }
- return pair.Value, nil
-}
-
-// Delete method removes an internalID from the Database
-func (c *ConsulStore) Delete(root, key, tag string) error {
- _, err := c.client.Delete(key, nil)
- return err
-}
-
-// ReadAll is used to get all ExternalIDs in a namespace
-func (c *ConsulStore) ReadAll(root, tag string) (map[string][]byte, error) {
- pairs, _, err := c.client.List(root, nil)
- if err != nil {
- return nil, err
- }
-
- //TODO: Filter results by tag and return it
- result := make(map[string][]byte)
- for _, keypair := range pairs {
- result[keypair.Key] = keypair.Value
- }
-
- return result, nil
-}