aboutsummaryrefslogtreecommitdiffstats
path: root/src/k8splugin/internal/db/etcd.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/k8splugin/internal/db/etcd.go')
-rw-r--r--src/k8splugin/internal/db/etcd.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/k8splugin/internal/db/etcd.go b/src/k8splugin/internal/db/etcd.go
index 5ce8135a..a3a09352 100644
--- a/src/k8splugin/internal/db/etcd.go
+++ b/src/k8splugin/internal/db/etcd.go
@@ -35,6 +35,7 @@ type EtcdConfig struct {
// EtcdStore Interface needed for mocking
type EtcdStore interface {
+ HealthCheck() error
Get(key string) ([]byte, error)
GetKeys(key string) ([]string, error)
GetValues(key string) ([][]byte, error)
@@ -96,6 +97,20 @@ func newClient(store *clientv3.Client, c EtcdConfig) (EtcdClient, error) {
}, nil
}
+// HealthCheck verifies if the database is up and running
+func (e EtcdClient) HealthCheck() error {
+
+ if e.cli == nil {
+ return pkgerrors.Errorf("Etcd Client not initialized")
+ }
+ _, err := e.cli.Get(context.Background(), "HealthCheckKey")
+ if err != nil {
+ return pkgerrors.Errorf("Error getting etcd entry: %s", err.Error())
+ }
+
+ return nil
+}
+
// Put values in Etcd DB
func (e EtcdClient) Put(key, value string) error {