Skip to content

Commit e1ec14f

Browse files
committed
Move some code under filterListItems to decrease cyclomatic complexity
To eliminate: pkg/cache/internal/cache_reader.go:91::warning: cyclomatic complexity 12 of function (*CacheReader).List() is high (> 10) (gocyclo) pkg/client/fake/client.go:92::warning: cyclomatic complexity 12 of function (*fakeClient).List() is high (> 10) (gocyclo)
1 parent 04b1b70 commit e1ec14f

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

pkg/cache/internal/cache_reader.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,30 @@ func (c *CacheReader) List(_ context.Context, opts *client.ListOptions, out runt
116116
labelSel = opts.LabelSelector
117117
}
118118

119+
filteredItems, err := c.filterListItems(objs, labelSel)
120+
if err != nil {
121+
return err
122+
}
123+
124+
return apimeta.SetList(out, filteredItems)
125+
}
126+
127+
func (c *CacheReader) filterListItems(objs []interface{}, labelSel labels.Selector) ([]runtime.Object, error) {
119128
runtimeObjs := make([]runtime.Object, 0, len(objs))
120129
for _, item := range objs {
121130
obj, isObj := item.(runtime.Object)
122131
if !isObj {
123-
return fmt.Errorf("cache contained %T, which is not an Object", obj)
132+
return nil, fmt.Errorf("cache contained %T, which is not an Object", obj)
124133
}
125134
runtimeObjs = append(runtimeObjs, obj)
126135
}
136+
127137
filteredItems, err := objectutil.FilterWithLabels(runtimeObjs, labelSel)
128138
if err != nil {
129-
return err
139+
return nil, err
130140
}
131-
return apimeta.SetList(out, filteredItems)
141+
142+
return filteredItems, nil
132143
}
133144

134145
// objectKeyToStorageKey converts an object key to store key.

pkg/client/fake/client.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"strings"
2525

2626
"k8s.io/apimachinery/pkg/api/meta"
27+
"k8s.io/apimachinery/pkg/labels"
2728
"k8s.io/apimachinery/pkg/runtime"
2829
"k8s.io/apimachinery/pkg/runtime/schema"
2930
"k8s.io/client-go/kubernetes/scheme"
@@ -116,18 +117,23 @@ func (c *fakeClient) List(ctx context.Context, opts *client.ListOptions, list ru
116117
}
117118

118119
if opts.LabelSelector != nil {
119-
objs, err := meta.ExtractList(list)
120-
if err != nil {
121-
return err
122-
}
123-
filteredObjs, err := objectutil.FilterWithLabels(objs, opts.LabelSelector)
124-
if err != nil {
125-
return err
126-
}
127-
err = meta.SetList(list, filteredObjs)
128-
if err != nil {
129-
return err
130-
}
120+
return filterListItems(list, opts.LabelSelector)
121+
}
122+
return nil
123+
}
124+
125+
func filterListItems(list runtime.Object, labSel labels.Selector) error {
126+
objs, err := meta.ExtractList(list)
127+
if err != nil {
128+
return err
129+
}
130+
filteredObjs, err := objectutil.FilterWithLabels(objs, labSel)
131+
if err != nil {
132+
return err
133+
}
134+
err = meta.SetList(list, filteredObjs)
135+
if err != nil {
136+
return err
131137
}
132138
return nil
133139
}

0 commit comments

Comments
 (0)