@@ -506,19 +506,10 @@ func (w *watchCache) WaitUntilFreshAndList(ctx context.Context, resourceVersion
506
506
if err != nil {
507
507
return nil , 0 , "" , err
508
508
}
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
520
512
}
521
-
522
513
sort .Sort (sortableStoreElements (result ))
523
514
return result , rv , index , nil
524
515
}
@@ -554,6 +545,21 @@ func (w *watchCache) waitUntilFreshAndListItems(ctx context.Context, resourceVer
554
545
return result , rv , index , err
555
546
}
556
547
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
+
557
563
func (w * watchCache ) notFresh (resourceVersion uint64 ) bool {
558
564
w .RLock ()
559
565
defer w .RUnlock ()
0 commit comments