mirror of
https://github.com/kubernetes/client-go.git
synced 2025-07-18 17:21:23 +00:00
Panic on failure to calculate index key
Kubernetes-commit: 65369a68a1f6ff01d8d108ccd8424f92013ae876
This commit is contained in:
parent
a6c294a7f3
commit
f660c1f78a
10
tools/cache/thread_safe_store.go
vendored
10
tools/cache/thread_safe_store.go
vendored
@ -241,7 +241,7 @@ func (c *threadSafeMap) AddIndexers(newIndexers Indexers) error {
|
|||||||
|
|
||||||
// updateIndices modifies the objects location in the managed indexes, if this is an update, you must provide an oldObj
|
// updateIndices modifies the objects location in the managed indexes, if this is an update, you must provide an oldObj
|
||||||
// updateIndices must be called from a function that already has a lock on the cache
|
// updateIndices must be called from a function that already has a lock on the cache
|
||||||
func (c *threadSafeMap) updateIndices(oldObj interface{}, newObj interface{}, key string) error {
|
func (c *threadSafeMap) updateIndices(oldObj interface{}, newObj interface{}, key string) {
|
||||||
// if we got an old object, we need to remove it before we add it again
|
// if we got an old object, we need to remove it before we add it again
|
||||||
if oldObj != nil {
|
if oldObj != nil {
|
||||||
c.deleteFromIndices(oldObj, key)
|
c.deleteFromIndices(oldObj, key)
|
||||||
@ -249,7 +249,7 @@ func (c *threadSafeMap) updateIndices(oldObj interface{}, newObj interface{}, ke
|
|||||||
for name, indexFunc := range c.indexers {
|
for name, indexFunc := range c.indexers {
|
||||||
indexValues, err := indexFunc(newObj)
|
indexValues, err := indexFunc(newObj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
panic(fmt.Errorf("unable to calculate an index entry for key %q on index %q: %v", key, name, err))
|
||||||
}
|
}
|
||||||
index := c.indices[name]
|
index := c.indices[name]
|
||||||
if index == nil {
|
if index == nil {
|
||||||
@ -266,16 +266,15 @@ func (c *threadSafeMap) updateIndices(oldObj interface{}, newObj interface{}, ke
|
|||||||
set.Insert(key)
|
set.Insert(key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// deleteFromIndices removes the object from each of the managed indexes
|
// deleteFromIndices removes the object from each of the managed indexes
|
||||||
// it is intended to be called from a function that already has a lock on the cache
|
// it is intended to be called from a function that already has a lock on the cache
|
||||||
func (c *threadSafeMap) deleteFromIndices(obj interface{}, key string) error {
|
func (c *threadSafeMap) deleteFromIndices(obj interface{}, key string) {
|
||||||
for name, indexFunc := range c.indexers {
|
for name, indexFunc := range c.indexers {
|
||||||
indexValues, err := indexFunc(obj)
|
indexValues, err := indexFunc(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
panic(fmt.Errorf("unable to calculate an index entry for key %q on index %q: %v", key, name, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
index := c.indices[name]
|
index := c.indices[name]
|
||||||
@ -289,7 +288,6 @@ func (c *threadSafeMap) deleteFromIndices(obj interface{}, key string) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *threadSafeMap) Resync() error {
|
func (c *threadSafeMap) Resync() error {
|
||||||
|
Loading…
Reference in New Issue
Block a user