Allow multiple predicate functions when listing CertificateRequests
Signed-off-by: James Munnelly <james@munnelly.eu>
This commit is contained in:
parent
cf7e344425
commit
0f32bb46a8
@ -13,6 +13,7 @@ go_library(
|
||||
"//pkg/util/pki:go_default_library",
|
||||
"@com_github_go_logr_logr//:go_default_library",
|
||||
"@io_k8s_api//core/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/labels:go_default_library",
|
||||
"@io_k8s_client_go//util/workqueue:go_default_library",
|
||||
],
|
||||
|
||||
@ -22,6 +22,7 @@ import (
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
|
||||
@ -107,14 +108,27 @@ func WithCertificateRevisionPredicateFunc(revision int) CertificateRequestPredic
|
||||
}
|
||||
}
|
||||
|
||||
func ListCertificateRequestsMatchingPredicate(lister cmlisters.CertificateRequestNamespaceLister, selector labels.Selector, predicate CertificateRequestPredicateFunc) ([]*cmapi.CertificateRequest, error) {
|
||||
func WithOwnerPredicateFunc(owner metav1.Object) CertificateRequestPredicateFunc {
|
||||
return func(req *cmapi.CertificateRequest) bool {
|
||||
return metav1.IsControlledBy(req, owner)
|
||||
}
|
||||
}
|
||||
|
||||
func ListCertificateRequestsMatchingPredicate(lister cmlisters.CertificateRequestNamespaceLister, selector labels.Selector, predicates ...CertificateRequestPredicateFunc) ([]*cmapi.CertificateRequest, error) {
|
||||
reqs, err := lister.List(selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
out := make([]*cmapi.CertificateRequest, 0)
|
||||
for _, req := range reqs {
|
||||
if predicate(req) {
|
||||
matches := true
|
||||
for _, predicate := range predicates {
|
||||
if !predicate(req) {
|
||||
matches = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if matches {
|
||||
out = append(out, req)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user