Skip to content

Commit 7400d57

Browse files
committed
Refactor WaitUntilFreshAndList to split out filtering to separate function
1 parent eebc897 commit 7400d57

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

staging/src/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -506,19 +506,10 @@ func (w *watchCache) WaitUntilFreshAndList(ctx context.Context, resourceVersion
506506
if err != nil {
507507
return nil, 0, "", err
508508
}
509-
510-
var result []interface{}
511-
for _, item := range items {
512-
elem, ok := item.(*storeElement)
513-
if !ok {
514-
return nil, 0, "", fmt.Errorf("non *storeElement returned from storage: %v", item)
515-
}
516-
if !hasPathPrefix(elem.Key, key) {
517-
continue
518-
}
519-
result = append(result, item)
509+
result, err := filterPrefix(key, items)
510+
if err != nil {
511+
return nil, 0, "", err
520512
}
521-
522513
sort.Sort(sortableStoreElements(result))
523514
return result, rv, index, nil
524515
}
@@ -554,6 +545,21 @@ func (w *watchCache) waitUntilFreshAndListItems(ctx context.Context, resourceVer
554545
return result, rv, index, err
555546
}
556547

548+
func filterPrefix(prefix string, items []interface{}) ([]interface{}, error) {
549+
var result []interface{}
550+
for _, item := range items {
551+
elem, ok := item.(*storeElement)
552+
if !ok {
553+
return nil, fmt.Errorf("non *storeElement returned from storage: %v", item)
554+
}
555+
if !hasPathPrefix(elem.Key, prefix) {
556+
continue
557+
}
558+
result = append(result, item)
559+
}
560+
return result, nil
561+
}
562+
557563
func (w *watchCache) notFresh(resourceVersion uint64) bool {
558564
w.RLock()
559565
defer w.RUnlock()

0 commit comments

Comments
 (0)