diff options
Diffstat (limited to 'src/k8splugin/internal/db/etcd.go')
-rw-r--r-- | src/k8splugin/internal/db/etcd.go | 15 |
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 { |