Skip to content

Commit

Permalink
✨ Migrate controllerutil AddFinalizer and RemoveFinalizer to controll…
Browse files Browse the repository at this point in the history
…erutil.Object and remove *WithError functions
  • Loading branch information
dmvolod committed May 23, 2020
1 parent 2f1457b commit 66caedd
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 38 deletions.
27 changes: 2 additions & 25 deletions pkg/controller/controllerutil/controllerutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (

"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
Expand Down Expand Up @@ -238,7 +237,7 @@ func mutate(f MutateFn, key client.ObjectKey, obj runtime.Object) error {
type MutateFn func() error

// AddFinalizer accepts a metav1 object and adds the provided finalizer if not present.
func AddFinalizer(o metav1.Object, finalizer string) {
func AddFinalizer(o Object, finalizer string) {
f := o.GetFinalizers()
for _, e := range f {
if e == finalizer {
Expand All @@ -248,19 +247,8 @@ func AddFinalizer(o metav1.Object, finalizer string) {
o.SetFinalizers(append(f, finalizer))
}

// AddFinalizerWithError tries to convert a runtime object to a metav1 object and add the provided finalizer.
// It returns an error if the provided object cannot provide an accessor.
func AddFinalizerWithError(o runtime.Object, finalizer string) error {
m, err := meta.Accessor(o)
if err != nil {
return err
}
AddFinalizer(m, finalizer)
return nil
}

// RemoveFinalizer accepts a metav1 object and removes the provided finalizer if present.
func RemoveFinalizer(o metav1.Object, finalizer string) {
func RemoveFinalizer(o Object, finalizer string) {
f := o.GetFinalizers()
for i := 0; i < len(f); i++ {
if f[i] == finalizer {
Expand All @@ -271,17 +259,6 @@ func RemoveFinalizer(o metav1.Object, finalizer string) {
o.SetFinalizers(f)
}

// RemoveFinalizerWithError tries to convert a runtime object to a metav1 object and remove the provided finalizer.
// It returns an error if the provided object cannot provide an accessor.
func RemoveFinalizerWithError(o runtime.Object, finalizer string) error {
m, err := meta.Accessor(o)
if err != nil {
return err
}
RemoveFinalizer(m, finalizer)
return nil
}

// ContainsFinalizer checks a metav1 object that the provided finalizer is present.
func ContainsFinalizer(o Object, finalizer string) bool {
f := o.GetFinalizers()
Expand Down
13 changes: 0 additions & 13 deletions pkg/controller/controllerutil/controllerutil_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -407,21 +407,8 @@ var _ = Describe("Controllerutil", func() {
})

Describe("Finalizers", func() {
var obj runtime.Object = &errRuntimeObj{}
var deploy *appsv1.Deployment

Describe("AddFinalizerWithError", func() {
It("should return an error if object can't provide accessor", func() {
Expect(controllerutil.AddFinalizerWithError(obj, testFinalizer)).To(HaveOccurred())
})
})

Describe("RemoveFinalizerWithError", func() {
It("should return an error if object can't provide accessor", func() {
Expect(controllerutil.RemoveFinalizerWithError(obj, testFinalizer)).To(HaveOccurred())
})
})

Describe("AddFinalizer", func() {
deploy = &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Expand Down

0 comments on commit 66caedd

Please sign in to comment.