1/*
2Copyright 2014 The Kubernetes Authors.
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8    http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16
17package v1
18
19import (
20	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21	"k8s.io/apimachinery/pkg/types"
22)
23
24func (obj *ObjectMeta) GetObjectMeta() metav1.Object { return obj }
25
26// Namespace implements metav1.Object for any object with an ObjectMeta typed field. Allows
27// fast, direct access to metadata fields for API objects.
28func (meta *ObjectMeta) GetNamespace() string                { return meta.Namespace }
29func (meta *ObjectMeta) SetNamespace(namespace string)       { meta.Namespace = namespace }
30func (meta *ObjectMeta) GetName() string                     { return meta.Name }
31func (meta *ObjectMeta) SetName(name string)                 { meta.Name = name }
32func (meta *ObjectMeta) GetGenerateName() string             { return meta.GenerateName }
33func (meta *ObjectMeta) SetGenerateName(generateName string) { meta.GenerateName = generateName }
34func (meta *ObjectMeta) GetUID() types.UID                   { return meta.UID }
35func (meta *ObjectMeta) SetUID(uid types.UID)                { meta.UID = uid }
36func (meta *ObjectMeta) GetResourceVersion() string          { return meta.ResourceVersion }
37func (meta *ObjectMeta) SetResourceVersion(version string)   { meta.ResourceVersion = version }
38func (meta *ObjectMeta) GetSelfLink() string                 { return meta.SelfLink }
39func (meta *ObjectMeta) SetSelfLink(selfLink string)         { meta.SelfLink = selfLink }
40func (meta *ObjectMeta) GetCreationTimestamp() metav1.Time   { return meta.CreationTimestamp }
41func (meta *ObjectMeta) SetCreationTimestamp(creationTimestamp metav1.Time) {
42	meta.CreationTimestamp = creationTimestamp
43}
44func (meta *ObjectMeta) GetDeletionTimestamp() *metav1.Time { return meta.DeletionTimestamp }
45func (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *metav1.Time) {
46	meta.DeletionTimestamp = deletionTimestamp
47}
48func (meta *ObjectMeta) GetLabels() map[string]string                 { return meta.Labels }
49func (meta *ObjectMeta) SetLabels(labels map[string]string)           { meta.Labels = labels }
50func (meta *ObjectMeta) GetAnnotations() map[string]string            { return meta.Annotations }
51func (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Annotations = annotations }
52func (meta *ObjectMeta) GetFinalizers() []string                      { return meta.Finalizers }
53func (meta *ObjectMeta) SetFinalizers(finalizers []string)            { meta.Finalizers = finalizers }
54
55func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference {
56	ret := make([]metav1.OwnerReference, len(meta.OwnerReferences))
57	for i := 0; i < len(meta.OwnerReferences); i++ {
58		ret[i].Kind = meta.OwnerReferences[i].Kind
59		ret[i].Name = meta.OwnerReferences[i].Name
60		ret[i].UID = meta.OwnerReferences[i].UID
61		ret[i].APIVersion = meta.OwnerReferences[i].APIVersion
62		if meta.OwnerReferences[i].Controller != nil {
63			value := *meta.OwnerReferences[i].Controller
64			ret[i].Controller = &value
65		}
66		if meta.OwnerReferences[i].BlockOwnerDeletion != nil {
67			value := *meta.OwnerReferences[i].BlockOwnerDeletion
68			ret[i].BlockOwnerDeletion = &value
69		}
70	}
71	return ret
72}
73
74func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) {
75	newReferences := make([]metav1.OwnerReference, len(references))
76	for i := 0; i < len(references); i++ {
77		newReferences[i].Kind = references[i].Kind
78		newReferences[i].Name = references[i].Name
79		newReferences[i].UID = references[i].UID
80		newReferences[i].APIVersion = references[i].APIVersion
81		if references[i].Controller != nil {
82			value := *references[i].Controller
83			newReferences[i].Controller = &value
84		}
85		if references[i].BlockOwnerDeletion != nil {
86			value := *references[i].BlockOwnerDeletion
87			newReferences[i].BlockOwnerDeletion = &value
88		}
89	}
90	meta.OwnerReferences = newReferences
91}
92
93func (meta *ObjectMeta) GetClusterName() string {
94	return meta.ClusterName
95}
96func (meta *ObjectMeta) SetClusterName(clusterName string) {
97	meta.ClusterName = clusterName
98}
99