package certificates
import (
"gitbucket.jerxie.com/yangyangxie/AnthosCertManager/pkg/util/predicate"
"k8s.io/apimachinery/pkg/labels"
corev1 "k8s.io/api/core/v1"
corelisters "k8s.io/client-go/listers/core/v1"
acmapi "gitbucket.jerxie.com/yangyangxie/AnthosCertManager/pkg/apis/anthoscertmanager/v1"
acmlisters "gitbucket.jerxie.com/yangyangxie/AnthosCertManager/pkg/client/listers/anthoscertmanager/v1"
)
// ListCertificateRequestsMatchingPredicates will list CertificateRequest
// resources using the provided lister, optionally applying the given predicate
// functions to filter the CertificateRequest resources returned.
func ListCertificateRequestsMatchingPredicates(lister acmlisters.CertificateRequestNamespaceLister, selector labels.Selector, predicates ...predicate.Func) ([]*acmapi.CertificateRequest, error) {
reqs, err := lister.List(selector)
if err != nil {
return nil, err
}
funcs := predicate.Funcs(predicates)
out := make([]*acmapi.CertificateRequest, 0)
for _, req := range reqs {
if funcs.Evaluate(req) {
out = append(out, req)
}
}
return out, nil
}
// ListCertificatesMatchingPredicates will list Certificate resources using
// the provided lister, optionally applying the given predicate functions to
// filter the Certificate resources returned.
func ListCertificatesMatchingPredicates(lister acmlisters.CertificateNamespaceLister, selector labels.Selector, predicates ...predicate.Func) ([]*acmapi.Certificate, error) {
reqs, err := lister.List(selector)
if err != nil {
return nil, err
}
funcs := predicate.Funcs(predicates)
out := make([]*acmapi.Certificate, 0)
for _, req := range reqs {
if funcs.Evaluate(req) {
out = append(out, req)
}
}
return out, nil
}
// ListSecretsMatchingPredicates will list Secret resources using
// the provided lister, optionally applying the given predicate functions to
// filter the Secret resources returned.
func ListSecretsMatchingPredicates(lister corelisters.SecretNamespaceLister, selector labels.Selector, predicates ...predicate.Func) ([]*corev1.Secret, error) {
reqs, err := lister.List(selector)
if err != nil {
return nil, err
}
funcs := predicate.Funcs(predicates)
out := make([]*corev1.Secret, 0)
for _, req := range reqs {
if funcs.Evaluate(req) {
out = append(out, req)
}
}
return out, nil
}