update dependencies

Signed-off-by: hongming <talonwan@yunify.com>
This commit is contained in:
hongming
2020-12-22 16:48:26 +08:00
parent 4a11a50544
commit fe6c5de00f
2857 changed files with 252134 additions and 115656 deletions

View File

@@ -17,6 +17,9 @@ limitations under the License.
package predicate
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/event"
logf "sigs.k8s.io/controller-runtime/pkg/internal/log"
)
@@ -41,6 +44,8 @@ type Predicate interface {
var _ Predicate = Funcs{}
var _ Predicate = ResourceVersionChangedPredicate{}
var _ Predicate = GenerationChangedPredicate{}
var _ Predicate = or{}
var _ Predicate = and{}
// Funcs is a function that implements Predicate.
type Funcs struct {
@@ -89,6 +94,26 @@ func (p Funcs) Generic(e event.GenericEvent) bool {
return true
}
// NewPredicateFuncs returns a predicate funcs that applies the given filter function
// on CREATE, UPDATE, DELETE and GENERIC events. For UPDATE events, the filter is applied
// to the new object.
func NewPredicateFuncs(filter func(meta metav1.Object, object runtime.Object) bool) Funcs {
return Funcs{
CreateFunc: func(e event.CreateEvent) bool {
return filter(e.Meta, e.Object)
},
UpdateFunc: func(e event.UpdateEvent) bool {
return filter(e.MetaNew, e.ObjectNew)
},
DeleteFunc: func(e event.DeleteEvent) bool {
return filter(e.Meta, e.Object)
},
GenericFunc: func(e event.GenericEvent) bool {
return filter(e.Meta, e.Object)
},
}
}
// ResourceVersionChangedPredicate implements a default update predicate function on resource version change
type ResourceVersionChangedPredicate struct {
Funcs
@@ -112,10 +137,7 @@ func (ResourceVersionChangedPredicate) Update(e event.UpdateEvent) bool {
log.Error(nil, "UpdateEvent has no new metadata", "event", e)
return false
}
if e.MetaNew.GetResourceVersion() == e.MetaOld.GetResourceVersion() {
return false
}
return true
return e.MetaNew.GetResourceVersion() != e.MetaOld.GetResourceVersion()
}
// GenerationChangedPredicate implements a default update predicate function on Generation change.
@@ -156,8 +178,95 @@ func (GenerationChangedPredicate) Update(e event.UpdateEvent) bool {
log.Error(nil, "Update event has no new metadata", "event", e)
return false
}
if e.MetaNew.GetGeneration() == e.MetaOld.GetGeneration() {
return false
return e.MetaNew.GetGeneration() != e.MetaOld.GetGeneration()
}
// And returns a composite predicate that implements a logical AND of the predicates passed to it.
func And(predicates ...Predicate) Predicate {
return and{predicates}
}
type and struct {
predicates []Predicate
}
func (a and) Create(e event.CreateEvent) bool {
for _, p := range a.predicates {
if !p.Create(e) {
return false
}
}
return true
}
func (a and) Update(e event.UpdateEvent) bool {
for _, p := range a.predicates {
if !p.Update(e) {
return false
}
}
return true
}
func (a and) Delete(e event.DeleteEvent) bool {
for _, p := range a.predicates {
if !p.Delete(e) {
return false
}
}
return true
}
func (a and) Generic(e event.GenericEvent) bool {
for _, p := range a.predicates {
if !p.Generic(e) {
return false
}
}
return true
}
// Or returns a composite predicate that implements a logical OR of the predicates passed to it.
func Or(predicates ...Predicate) Predicate {
return or{predicates}
}
type or struct {
predicates []Predicate
}
func (o or) Create(e event.CreateEvent) bool {
for _, p := range o.predicates {
if p.Create(e) {
return true
}
}
return false
}
func (o or) Update(e event.UpdateEvent) bool {
for _, p := range o.predicates {
if p.Update(e) {
return true
}
}
return false
}
func (o or) Delete(e event.DeleteEvent) bool {
for _, p := range o.predicates {
if p.Delete(e) {
return true
}
}
return false
}
func (o or) Generic(e event.GenericEvent) bool {
for _, p := range o.predicates {
if p.Generic(e) {
return true
}
}
return false
}