@@ -43,6 +43,58 @@ var _ = Describe("Controllerutil", func() {
43
43
rs := & appsv1.ReplicaSet {}
44
44
Expect (controllerutil .SetControllerReference (& errMetaObj {}, rs , scheme .Scheme )).To (HaveOccurred ())
45
45
})
46
+
47
+ It ("should return an error if object and owner are not in the same namespace" , func () {
48
+ rs := & appsv1.ReplicaSet {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "one" }}
49
+ dep := & extensionsv1beta1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "two" }}
50
+
51
+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).To (HaveOccurred ())
52
+ })
53
+
54
+ It ("should return an error if object is already owned by another controller" , func () {
55
+ t := true
56
+ rsOwners := []metav1.OwnerReference {
57
+ metav1.OwnerReference {
58
+ Name : "foo" ,
59
+ Kind : "Deployment" ,
60
+ APIVersion : "extensions/v1beta1" ,
61
+ UID : "bar-uid" ,
62
+ Controller : & t ,
63
+ BlockOwnerDeletion : & t ,
64
+ },
65
+ }
66
+ rs := & appsv1.ReplicaSet {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "default" , OwnerReferences : rsOwners }}
67
+ dep := & extensionsv1beta1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "default" , UID : "foo-uid" }}
68
+
69
+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).To (HaveOccurred ())
70
+ })
71
+
72
+ It ("should not duplicate existing owner reference" , func () {
73
+ f := false
74
+ t := true
75
+ rsOwners := []metav1.OwnerReference {
76
+ metav1.OwnerReference {
77
+ Name : "foo" ,
78
+ Kind : "Deployment" ,
79
+ APIVersion : "extensions/v1beta1" ,
80
+ UID : "foo-uid" ,
81
+ Controller : & f ,
82
+ BlockOwnerDeletion : & t ,
83
+ },
84
+ }
85
+ rs := & appsv1.ReplicaSet {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "default" , OwnerReferences : rsOwners }}
86
+ dep := & extensionsv1beta1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : "foo" , Namespace : "default" , UID : "foo-uid" }}
87
+
88
+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).NotTo (HaveOccurred ())
89
+ Expect (rs .OwnerReferences ).To (ConsistOf (metav1.OwnerReference {
90
+ Name : "foo" ,
91
+ Kind : "Deployment" ,
92
+ APIVersion : "extensions/v1beta1" ,
93
+ UID : "foo-uid" ,
94
+ Controller : & t ,
95
+ BlockOwnerDeletion : & t ,
96
+ }))
97
+ })
46
98
})
47
99
})
48
100
0 commit comments