/
listers.go
107 lines (82 loc) · 3.3 KB
/
listers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package testhelpers
import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
fakekubeclientset "k8s.io/client-go/kubernetes/fake"
corev1listers "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
"knative.dev/pkg/reconciler/testing"
buildapi "github.com/pivotal/kpack/pkg/apis/build/v1alpha2"
"github.com/pivotal/kpack/pkg/client/clientset/versioned/fake"
buildlisters "github.com/pivotal/kpack/pkg/client/listers/build/v1alpha2"
"github.com/pivotal/kpack/pkg/duckbuilder"
)
var clientSetSchemes = []func(*runtime.Scheme) error{
fake.AddToScheme,
fakekubeclientset.AddToScheme,
}
type Listers struct {
sorter testing.ObjectSorter
}
func NewListers(objs []runtime.Object) Listers {
scheme := runtime.NewScheme()
for _, addTo := range clientSetSchemes {
addTo(scheme)
}
ls := Listers{
sorter: testing.NewObjectSorter(scheme),
}
ls.sorter.AddObjects(objs...)
return ls
}
func (l *Listers) indexerFor(obj runtime.Object) cache.Indexer {
return l.sorter.IndexerForObjectType(obj)
}
func (l *Listers) BuildServiceObjects() []runtime.Object {
return l.sorter.ObjectsForSchemeFunc(fake.AddToScheme)
}
func (l *Listers) GetKubeObjects() []runtime.Object {
return l.sorter.ObjectsForSchemeFunc(fakekubeclientset.AddToScheme)
}
func (l *Listers) GetImageLister() buildlisters.ImageLister {
return buildlisters.NewImageLister(l.indexerFor(&buildapi.Image{}))
}
func (l *Listers) GetBuildLister() buildlisters.BuildLister {
return buildlisters.NewBuildLister(l.indexerFor(&buildapi.Build{}))
}
func (l *Listers) GetBuilderLister() buildlisters.BuilderLister {
return buildlisters.NewBuilderLister(l.indexerFor(&buildapi.Builder{}))
}
func (l *Listers) GetBuildpackLister() buildlisters.BuildpackLister {
return buildlisters.NewBuildpackLister(l.indexerFor(&buildapi.Buildpack{}))
}
func (l *Listers) GetClusterBuilderLister() buildlisters.ClusterBuilderLister {
return buildlisters.NewClusterBuilderLister(l.indexerFor(&buildapi.ClusterBuilder{}))
}
func (l *Listers) GetClusterBuildpackLister() buildlisters.ClusterBuildpackLister {
return buildlisters.NewClusterBuildpackLister(l.indexerFor(&buildapi.ClusterBuildpack{}))
}
func (l *Listers) GetClusterStoreLister() buildlisters.ClusterStoreLister {
return buildlisters.NewClusterStoreLister(l.indexerFor(&buildapi.ClusterStore{}))
}
func (l *Listers) GetClusterStackLister() buildlisters.ClusterStackLister {
return buildlisters.NewClusterStackLister(l.indexerFor(&buildapi.ClusterStack{}))
}
func (l *Listers) GetSourceResolverLister() buildlisters.SourceResolverLister {
return buildlisters.NewSourceResolverLister(l.indexerFor(&buildapi.SourceResolver{}))
}
func (l *Listers) GetPersistentVolumeClaimLister() corev1listers.PersistentVolumeClaimLister {
return corev1listers.NewPersistentVolumeClaimLister(l.indexerFor(&corev1.PersistentVolumeClaim{}))
}
func (l *Listers) GetPodLister() corev1listers.PodLister {
return corev1listers.NewPodLister(l.indexerFor(&corev1.Pod{}))
}
func (l *Listers) GetConfigMapLister() corev1listers.ConfigMapLister {
return corev1listers.NewConfigMapLister(l.indexerFor(&corev1.ConfigMap{}))
}
func (l *Listers) GetDuckBuilderLister() *duckbuilder.DuckBuilderLister {
return &duckbuilder.DuckBuilderLister{
BuilderLister: l.GetBuilderLister(),
ClusterBuilderLister: l.GetClusterBuilderLister(),
}
}