mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 04:52:08 +00:00
add ListKeys method to Store
This commit is contained in:
parent
3fe17b93cf
commit
8ee9ee9920
13
pkg/client/cache/store.go
vendored
13
pkg/client/cache/store.go
vendored
@ -37,6 +37,7 @@ type Store interface {
|
|||||||
Update(obj interface{}) error
|
Update(obj interface{}) error
|
||||||
Delete(obj interface{}) error
|
Delete(obj interface{}) error
|
||||||
List() []interface{}
|
List() []interface{}
|
||||||
|
ListKeys() []string
|
||||||
Get(obj interface{}) (item interface{}, exists bool, err error)
|
Get(obj interface{}) (item interface{}, exists bool, err error)
|
||||||
GetByKey(key string) (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
|
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 returns a list of items that match on the index function
|
||||||
// Index is thread-safe so long as you treat all items as immutable
|
// Index is thread-safe so long as you treat all items as immutable
|
||||||
func (c *cache) Index(indexName string, obj interface{}) ([]interface{}, error) {
|
func (c *cache) Index(indexName string, obj interface{}) ([]interface{}, error) {
|
||||||
|
10
pkg/client/cache/undelta_store.go
vendored
10
pkg/client/cache/undelta_store.go
vendored
@ -49,6 +49,7 @@ func (u *UndeltaStore) Add(obj interface{}) error {
|
|||||||
u.PushFunc(u.ActualStore.List())
|
u.PushFunc(u.ActualStore.List())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UndeltaStore) Update(obj interface{}) error {
|
func (u *UndeltaStore) Update(obj interface{}) error {
|
||||||
if err := u.ActualStore.Update(obj); err != nil {
|
if err := u.ActualStore.Update(obj); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -56,6 +57,7 @@ func (u *UndeltaStore) Update(obj interface{}) error {
|
|||||||
u.PushFunc(u.ActualStore.List())
|
u.PushFunc(u.ActualStore.List())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UndeltaStore) Delete(obj interface{}) error {
|
func (u *UndeltaStore) Delete(obj interface{}) error {
|
||||||
if err := u.ActualStore.Delete(obj); err != nil {
|
if err := u.ActualStore.Delete(obj); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -63,15 +65,23 @@ func (u *UndeltaStore) Delete(obj interface{}) error {
|
|||||||
u.PushFunc(u.ActualStore.List())
|
u.PushFunc(u.ActualStore.List())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UndeltaStore) List() []interface{} {
|
func (u *UndeltaStore) List() []interface{} {
|
||||||
return u.ActualStore.List()
|
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) {
|
func (u *UndeltaStore) Get(obj interface{}) (item interface{}, exists bool, err error) {
|
||||||
return u.ActualStore.Get(obj)
|
return u.ActualStore.Get(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UndeltaStore) GetByKey(key string) (item interface{}, exists bool, err error) {
|
func (u *UndeltaStore) GetByKey(key string) (item interface{}, exists bool, err error) {
|
||||||
return u.ActualStore.GetByKey(key)
|
return u.ActualStore.GetByKey(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UndeltaStore) Replace(list []interface{}) error {
|
func (u *UndeltaStore) Replace(list []interface{}) error {
|
||||||
if err := u.ActualStore.Replace(list); err != nil {
|
if err := u.ActualStore.Replace(list); err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user