mirror of https://github.com/k3s-io/k3s
add ListKeys method to Store
parent
3fe17b93cf
commit
8ee9ee9920
|
@ -37,6 +37,7 @@ type Store interface {
|
|||
Update(obj interface{}) error
|
||||
Delete(obj interface{}) error
|
||||
List() []interface{}
|
||||
ListKeys() []string
|
||||
Get(obj interface{}) (item interface{}, exists bool, err error)
|
||||
GetByKey(key string) (item interface{}, exists bool, err error)
|
||||
|
||||
|
@ -195,6 +196,18 @@ func (c *cache) List() []interface{} {
|
|||
return list
|
||||
}
|
||||
|
||||
// ListKeys returns a list of all the keys of the objects currently
|
||||
// in the cache.
|
||||
func (c *cache) ListKeys() []string {
|
||||
c.lock.RLock()
|
||||
defer c.lock.RUnlock()
|
||||
list := make([]string, 0, len(c.items))
|
||||
for key := range c.items {
|
||||
list = append(list, key)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
// Index returns a list of items that match on the index function
|
||||
// Index is thread-safe so long as you treat all items as immutable
|
||||
func (c *cache) Index(indexName string, obj interface{}) ([]interface{}, error) {
|
||||
|
|
|
@ -49,6 +49,7 @@ func (u *UndeltaStore) Add(obj interface{}) error {
|
|||
u.PushFunc(u.ActualStore.List())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) Update(obj interface{}) error {
|
||||
if err := u.ActualStore.Update(obj); err != nil {
|
||||
return err
|
||||
|
@ -56,6 +57,7 @@ func (u *UndeltaStore) Update(obj interface{}) error {
|
|||
u.PushFunc(u.ActualStore.List())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) Delete(obj interface{}) error {
|
||||
if err := u.ActualStore.Delete(obj); err != nil {
|
||||
return err
|
||||
|
@ -63,15 +65,23 @@ func (u *UndeltaStore) Delete(obj interface{}) error {
|
|||
u.PushFunc(u.ActualStore.List())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) List() []interface{} {
|
||||
return u.ActualStore.List()
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) ListKeys() []string {
|
||||
return u.ActualStore.ListKeys()
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) Get(obj interface{}) (item interface{}, exists bool, err error) {
|
||||
return u.ActualStore.Get(obj)
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) GetByKey(key string) (item interface{}, exists bool, err error) {
|
||||
return u.ActualStore.GetByKey(key)
|
||||
}
|
||||
|
||||
func (u *UndeltaStore) Replace(list []interface{}) error {
|
||||
if err := u.ActualStore.Replace(list); err != nil {
|
||||
return err
|
||||
|
|
Loading…
Reference in New Issue