...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package k8s
16
17 import (
18 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
19 )
20
21 func EnsureFinalizer(o metav1.Object, finalizer string) (found bool) {
22 for _, f := range o.GetFinalizers() {
23 if f == finalizer {
24 return true
25 }
26 }
27 o.SetFinalizers(append(o.GetFinalizers(), finalizer))
28 return false
29 }
30
31 func EnsureFinalizers(o metav1.Object, finalizers ...string) (found bool) {
32 found = true
33 for _, f := range finalizers {
34 partialFound := EnsureFinalizer(o, f)
35 if !partialFound {
36 found = false
37 }
38 }
39 return found
40 }
41
42 func RemoveFinalizer(o metav1.Object, finalizer string) {
43 found := false
44 var finalizers []string
45 for _, f := range o.GetFinalizers() {
46 if f != finalizer {
47 finalizers = append(finalizers, f)
48 } else {
49 found = true
50 }
51 }
52 if found {
53 o.SetFinalizers(finalizers)
54 }
55 }
56
57 func HasFinalizer(o metav1.Object, finalizer string) bool {
58 for _, f := range o.GetFinalizers() {
59 if f == finalizer {
60 return true
61 }
62 }
63 return false
64 }
65
View as plain text