Add Controller to api/meta
This commit is contained in:
@@ -2773,7 +2773,7 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"$ref": "v1.OwnerReference"
|
"$ref": "v1.OwnerReference"
|
||||||
},
|
},
|
||||||
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected."
|
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."
|
||||||
},
|
},
|
||||||
"finalizers": {
|
"finalizers": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@@ -2809,6 +2809,10 @@
|
|||||||
"uid": {
|
"uid": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "UID of the referent. More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
|
"description": "UID of the referent. More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
|
||||||
|
},
|
||||||
|
"controller": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, this reference points to the managing controller."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@@ -1331,4 +1331,4 @@ Last updated 2016-05-23 07:07:20 UTC
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@@ -4107,4 +4107,4 @@ Last updated 2016-05-24 11:53:33 UTC
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@@ -6097,4 +6097,4 @@ Last updated 2016-05-24 11:53:27 UTC
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@@ -8002,4 +8002,4 @@ Last updated 2016-05-26 18:58:49 UTC
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@@ -100,6 +100,10 @@ func (meta *ObjectMeta) GetOwnerReferences() []metatypes.OwnerReference {
|
|||||||
ret[i].Name = meta.OwnerReferences[i].Name
|
ret[i].Name = meta.OwnerReferences[i].Name
|
||||||
ret[i].UID = meta.OwnerReferences[i].UID
|
ret[i].UID = meta.OwnerReferences[i].UID
|
||||||
ret[i].APIVersion = meta.OwnerReferences[i].APIVersion
|
ret[i].APIVersion = meta.OwnerReferences[i].APIVersion
|
||||||
|
if meta.OwnerReferences[i].Controller != nil {
|
||||||
|
value := *meta.OwnerReferences[i].Controller
|
||||||
|
ret[i].Controller = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
@@ -111,6 +115,10 @@ func (meta *ObjectMeta) SetOwnerReferences(references []metatypes.OwnerReference
|
|||||||
newReferences[i].Name = references[i].Name
|
newReferences[i].Name = references[i].Name
|
||||||
newReferences[i].UID = references[i].UID
|
newReferences[i].UID = references[i].UID
|
||||||
newReferences[i].APIVersion = references[i].APIVersion
|
newReferences[i].APIVersion = references[i].APIVersion
|
||||||
|
if references[i].Controller != nil {
|
||||||
|
value := *references[i].Controller
|
||||||
|
newReferences[i].Controller = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
meta.OwnerReferences = newReferences
|
meta.OwnerReferences = newReferences
|
||||||
}
|
}
|
||||||
|
@@ -359,6 +359,14 @@ func extractFromOwnerReference(v reflect.Value, o *metatypes.OwnerReference) err
|
|||||||
if err := runtime.Field(v, "UID", &o.UID); err != nil {
|
if err := runtime.Field(v, "UID", &o.UID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
var controllerPtr *bool
|
||||||
|
if err := runtime.Field(v, "Controller", &controllerPtr); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if controllerPtr != nil {
|
||||||
|
controller := *controllerPtr
|
||||||
|
o.Controller = &controller
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,6 +384,12 @@ func setOwnerReference(v reflect.Value, o *metatypes.OwnerReference) error {
|
|||||||
if err := runtime.SetField(o.UID, v, "UID"); err != nil {
|
if err := runtime.SetField(o.UID, v, "UID"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if o.Controller != nil {
|
||||||
|
controller := *(o.Controller)
|
||||||
|
if err := runtime.SetField(&controller, v, "Controller"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -781,6 +781,7 @@ func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerRef
|
|||||||
Name: references[i].Name,
|
Name: references[i].Name,
|
||||||
UID: references[i].UID,
|
UID: references[i].UID,
|
||||||
APIVersion: references[i].APIVersion,
|
APIVersion: references[i].APIVersion,
|
||||||
|
Controller: references[i].Controller,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if len(references) == 0 {
|
if len(references) == 0 {
|
||||||
|
@@ -29,5 +29,9 @@ func DeepCopy_metatypes_OwnerReference(in OwnerReference, out *OwnerReference, c
|
|||||||
out.Kind = in.Kind
|
out.Kind = in.Kind
|
||||||
out.UID = in.UID
|
out.UID = in.UID
|
||||||
out.Name = in.Name
|
out.Name = in.Name
|
||||||
|
if in.Controller != nil {
|
||||||
|
value := *in.Controller
|
||||||
|
out.Controller = &value
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@@ -26,4 +26,5 @@ type OwnerReference struct {
|
|||||||
Kind string
|
Kind string
|
||||||
UID types.UID
|
UID types.UID
|
||||||
Name string
|
Name string
|
||||||
|
Controller *bool
|
||||||
}
|
}
|
||||||
|
@@ -64,6 +64,7 @@ func getObjectMetaAndOwnerReferences() (objectMeta api.ObjectMeta, metaOwnerRefe
|
|||||||
Name: references[i].Name,
|
Name: references[i].Name,
|
||||||
UID: references[i].UID,
|
UID: references[i].UID,
|
||||||
APIVersion: references[i].APIVersion,
|
APIVersion: references[i].APIVersion,
|
||||||
|
Controller: references[i].Controller,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if len(references) == 0 {
|
if len(references) == 0 {
|
||||||
|
@@ -3629,13 +3629,7 @@ func autoConvert_v1_OwnerReference_To_api_OwnerReference(in *OwnerReference, out
|
|||||||
out.Kind = in.Kind
|
out.Kind = in.Kind
|
||||||
out.Name = in.Name
|
out.Name = in.Name
|
||||||
out.UID = in.UID
|
out.UID = in.UID
|
||||||
if in.Controller != nil {
|
out.Controller = in.Controller
|
||||||
in, out := &in.Controller, &out.Controller
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
} else {
|
|
||||||
out.Controller = nil
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3648,13 +3642,7 @@ func autoConvert_api_OwnerReference_To_v1_OwnerReference(in *api.OwnerReference,
|
|||||||
out.Kind = in.Kind
|
out.Kind = in.Kind
|
||||||
out.Name = in.Name
|
out.Name = in.Name
|
||||||
out.UID = in.UID
|
out.UID = in.UID
|
||||||
if in.Controller != nil {
|
out.Controller = in.Controller
|
||||||
in, out := &in.Controller, &out.Controller
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
} else {
|
|
||||||
out.Controller = nil
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -231,20 +231,36 @@ func (u *Unstructured) setNestedMap(value map[string]string, fields ...string) {
|
|||||||
|
|
||||||
func extractOwnerReference(src interface{}) metatypes.OwnerReference {
|
func extractOwnerReference(src interface{}) metatypes.OwnerReference {
|
||||||
v := src.(map[string]interface{})
|
v := src.(map[string]interface{})
|
||||||
|
controllerPtr, ok := (getNestedField(v, "controller")).(*bool)
|
||||||
|
if !ok {
|
||||||
|
controllerPtr = nil
|
||||||
|
} else {
|
||||||
|
if controllerPtr != nil {
|
||||||
|
controller := *controllerPtr
|
||||||
|
controllerPtr = &controller
|
||||||
|
}
|
||||||
|
}
|
||||||
return metatypes.OwnerReference{
|
return metatypes.OwnerReference{
|
||||||
Kind: getNestedString(v, "kind"),
|
Kind: getNestedString(v, "kind"),
|
||||||
Name: getNestedString(v, "name"),
|
Name: getNestedString(v, "name"),
|
||||||
APIVersion: getNestedString(v, "apiVersion"),
|
APIVersion: getNestedString(v, "apiVersion"),
|
||||||
UID: (types.UID)(getNestedString(v, "uid")),
|
UID: (types.UID)(getNestedString(v, "uid")),
|
||||||
|
Controller: controllerPtr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setOwnerReference(src metatypes.OwnerReference) map[string]interface{} {
|
func setOwnerReference(src metatypes.OwnerReference) map[string]interface{} {
|
||||||
ret := make(map[string]interface{})
|
ret := make(map[string]interface{})
|
||||||
|
controllerPtr := src.Controller
|
||||||
|
if controllerPtr != nil {
|
||||||
|
controller := *controllerPtr
|
||||||
|
controllerPtr = &controller
|
||||||
|
}
|
||||||
setNestedField(ret, src.Kind, "kind")
|
setNestedField(ret, src.Kind, "kind")
|
||||||
setNestedField(ret, src.Name, "name")
|
setNestedField(ret, src.Name, "name")
|
||||||
setNestedField(ret, src.APIVersion, "apiVersion")
|
setNestedField(ret, src.APIVersion, "apiVersion")
|
||||||
setNestedField(ret, string(src.UID), "uid")
|
setNestedField(ret, string(src.UID), "uid")
|
||||||
|
setNestedField(ret, controllerPtr, "controller")
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -236,6 +236,7 @@ func TestUnstructuredGetters(t *testing.T) {
|
|||||||
|
|
||||||
func TestUnstructuredSetters(t *testing.T) {
|
func TestUnstructuredSetters(t *testing.T) {
|
||||||
unstruct := runtime.Unstructured{}
|
unstruct := runtime.Unstructured{}
|
||||||
|
trueVar := true
|
||||||
|
|
||||||
want := runtime.Unstructured{
|
want := runtime.Unstructured{
|
||||||
Object: map[string]interface{}{
|
Object: map[string]interface{}{
|
||||||
@@ -262,12 +263,14 @@ func TestUnstructuredSetters(t *testing.T) {
|
|||||||
"name": "poda",
|
"name": "poda",
|
||||||
"apiVersion": "v1",
|
"apiVersion": "v1",
|
||||||
"uid": "1",
|
"uid": "1",
|
||||||
|
"controller": (*bool)(nil),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"kind": "Pod",
|
"kind": "Pod",
|
||||||
"name": "podb",
|
"name": "podb",
|
||||||
"apiVersion": "v1",
|
"apiVersion": "v1",
|
||||||
"uid": "2",
|
"uid": "2",
|
||||||
|
"controller": &trueVar,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"finalizers": []interface{}{
|
"finalizers": []interface{}{
|
||||||
@@ -303,6 +306,7 @@ func TestUnstructuredSetters(t *testing.T) {
|
|||||||
Name: "podb",
|
Name: "podb",
|
||||||
APIVersion: "v1",
|
APIVersion: "v1",
|
||||||
UID: "2",
|
UID: "2",
|
||||||
|
Controller: &trueVar,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
unstruct.SetOwnerReferences(newOwnerReferences)
|
unstruct.SetOwnerReferences(newOwnerReferences)
|
||||||
|
Reference in New Issue
Block a user