From e21e802fc6367e27b987efc9e2a1eebfc4f67d98 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Sun, 2 Jul 2023 18:20:12 +0200 Subject: [PATCH] libnetwork/datastore: remove unused DeleteTree() method Signed-off-by: Sebastiaan van Stijn --- libnetwork/datastore/datastore.go | 21 ------------- libnetwork/datastore/mock_store.go | 6 ---- libnetwork/internal/kvstore/boltdb/boltdb.go | 32 -------------------- libnetwork/internal/kvstore/kvstore.go | 3 -- 4 files changed, 62 deletions(-) diff --git a/libnetwork/datastore/datastore.go b/libnetwork/datastore/datastore.go index 38d064ba52..a947d9118f 100644 --- a/libnetwork/datastore/datastore.go +++ b/libnetwork/datastore/datastore.go @@ -20,8 +20,6 @@ type DataStore interface { PutObjectAtomic(kvObject KVObject) error // DeleteObjectAtomic performs an atomic delete operation DeleteObjectAtomic(kvObject KVObject) error - // DeleteTree deletes a record - DeleteTree(kvObject KVObject) error // List returns of a list of KVObjects belonging to the parent // key. The caller must pass a KVObject of the same type as // the objects that need to be listed @@ -437,22 +435,3 @@ del_cache: return nil } - -// DeleteTree unconditionally deletes a record from the store -func (ds *datastore) DeleteTree(kvObject KVObject) error { - ds.Lock() - defer ds.Unlock() - - // cleanup the cache first - if ds.cache != nil { - // If persistent store is skipped, sequencing needs to - // happen in cache. - ds.cache.del(kvObject, kvObject.Skip()) - } - - if kvObject.Skip() { - return nil - } - - return ds.store.DeleteTree(Key(kvObject.KeyPrefix()...)) -} diff --git a/libnetwork/datastore/mock_store.go b/libnetwork/datastore/mock_store.go index 52a6fda740..424761a57c 100644 --- a/libnetwork/datastore/mock_store.go +++ b/libnetwork/datastore/mock_store.go @@ -65,12 +65,6 @@ func (s *MockStore) List(prefix string) ([]*store.KVPair, error) { return nil, ErrNotImplemented } -// DeleteTree deletes a range of values at "directory" -func (s *MockStore) DeleteTree(prefix string) error { - delete(s.db, prefix) - return nil -} - // Watch a single key for modifications func (s *MockStore) Watch(key string, stopCh <-chan struct{}) (<-chan *store.KVPair, error) { return nil, ErrNotImplemented diff --git a/libnetwork/internal/kvstore/boltdb/boltdb.go b/libnetwork/internal/kvstore/boltdb/boltdb.go index 548716548a..f46b5aac9d 100644 --- a/libnetwork/internal/kvstore/boltdb/boltdb.go +++ b/libnetwork/internal/kvstore/boltdb/boltdb.go @@ -370,38 +370,6 @@ func (b *BoltDB) Close() { } } -// DeleteTree deletes a range of keys with a given prefix -func (b *BoltDB) DeleteTree(keyPrefix string) error { - var ( - db *bolt.DB - err error - ) - b.mu.Lock() - defer b.mu.Unlock() - - if db, err = b.getDBhandle(); err != nil { - return err - } - defer b.releaseDBhandle() - - err = db.Update(func(tx *bolt.Tx) error { - bucket := tx.Bucket(b.boltBucket) - if bucket == nil { - return store.ErrKeyNotFound - } - - cursor := bucket.Cursor() - prefix := []byte(keyPrefix) - - for key, _ := cursor.Seek(prefix); bytes.HasPrefix(key, prefix); key, _ = cursor.Next() { - _ = bucket.Delete(key) - } - return nil - }) - - return err -} - // Watch has to implemented at the library level since its not supported by BoltDB func (b *BoltDB) Watch(key string, stopCh <-chan struct{}) (<-chan *store.KVPair, error) { return nil, store.ErrCallNotSupported diff --git a/libnetwork/internal/kvstore/kvstore.go b/libnetwork/internal/kvstore/kvstore.go index 477602441d..58704d25f9 100644 --- a/libnetwork/internal/kvstore/kvstore.go +++ b/libnetwork/internal/kvstore/kvstore.go @@ -56,9 +56,6 @@ type Store interface { // List the content of a given prefix List(directory string) ([]*KVPair, error) - // DeleteTree deletes a range of keys under a given directory - DeleteTree(directory string) error - // AtomicPut performs an atomic CAS operation on a single value. // Pass previous = nil to create a new key. AtomicPut(key string, value []byte, previous *KVPair) (*KVPair, error)