From bbeac9a596074d0af6e5be60448567517978a388 Mon Sep 17 00:00:00 2001 From: Lukasz Rajewski Date: Fri, 1 Oct 2021 09:35:35 +0200 Subject: Further fixes for config delete operation The issue was related with insufficient handlijg of different versions of config vs their delete operation handled by the plugin. Issue-ID: MULTICLOUD-1332 Signed-off-by: Lukasz Rajewski Change-Id: I90d896720fa89ebd66cb3290cdd9401272f5e3fd --- src/k8splugin/internal/db/etcd.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/k8splugin/internal/db/etcd.go') diff --git a/src/k8splugin/internal/db/etcd.go b/src/k8splugin/internal/db/etcd.go index a435b435..e455cc1a 100644 --- a/src/k8splugin/internal/db/etcd.go +++ b/src/k8splugin/internal/db/etcd.go @@ -39,6 +39,7 @@ type EtcdStore interface { GetAll(key string) ([][]byte, error) Put(key, value string) error Delete(key string) error + DeletePrefix(keyPrefix string) error } // EtcdClient for Etcd @@ -151,3 +152,16 @@ func (e EtcdClient) Delete(key string) error { } return nil } + +// Delete values by prefix from Etcd DB +func (e EtcdClient) DeletePrefix(keyPrefix string) error { + + if e.cli == nil { + return pkgerrors.Errorf("Etcd Client not initialized") + } + _, err := e.cli.Delete(context.Background(), keyPrefix, clientv3.WithPrefix()) + if err != nil { + return pkgerrors.Errorf("Delete prefix failed etcd entry:%s", err.Error()) + } + return nil +} -- cgit 1.2.3-korg