Move OwnerReference to pkg/apis/meta/v1 and remove metatypes pkg

OwnerReference is common.
This commit is contained in:
Clayton Coleman 2016-12-03 22:42:29 -05:00
parent 8eb3e9a518
commit c30862a488
No known key found for this signature in database
GPG Key ID: 3D16906B4F1C5CB3
12 changed files with 59 additions and 92 deletions

View File

@ -18,7 +18,6 @@ package api
import ( import (
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/conversion" "k8s.io/kubernetes/pkg/conversion"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
@ -102,8 +101,8 @@ func (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Ann
func (meta *ObjectMeta) GetFinalizers() []string { return meta.Finalizers } func (meta *ObjectMeta) GetFinalizers() []string { return meta.Finalizers }
func (meta *ObjectMeta) SetFinalizers(finalizers []string) { meta.Finalizers = finalizers } func (meta *ObjectMeta) SetFinalizers(finalizers []string) { meta.Finalizers = finalizers }
func (meta *ObjectMeta) GetOwnerReferences() []metatypes.OwnerReference { func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference {
ret := make([]metatypes.OwnerReference, len(meta.OwnerReferences)) ret := make([]metav1.OwnerReference, len(meta.OwnerReferences))
for i := 0; i < len(meta.OwnerReferences); i++ { for i := 0; i < len(meta.OwnerReferences); i++ {
ret[i].Kind = meta.OwnerReferences[i].Kind ret[i].Kind = meta.OwnerReferences[i].Kind
ret[i].Name = meta.OwnerReferences[i].Name ret[i].Name = meta.OwnerReferences[i].Name
@ -117,7 +116,7 @@ func (meta *ObjectMeta) GetOwnerReferences() []metatypes.OwnerReference {
return ret return ret
} }
func (meta *ObjectMeta) SetOwnerReferences(references []metatypes.OwnerReference) { func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) {
newReferences := make([]OwnerReference, len(references)) newReferences := make([]OwnerReference, len(references))
for i := 0; i < len(references); i++ { for i := 0; i < len(references); i++ {
newReferences[i].Kind = references[i].Kind newReferences[i].Kind = references[i].Kind

View File

@ -17,8 +17,8 @@ limitations under the License.
package meta package meta
import ( import (
"k8s.io/kubernetes/pkg/api/meta/metatypes"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/apis/meta/v1/unstructured"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime/schema" "k8s.io/kubernetes/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/types"
@ -61,13 +61,14 @@ type Object interface {
SetAnnotations(annotations map[string]string) SetAnnotations(annotations map[string]string)
GetFinalizers() []string GetFinalizers() []string
SetFinalizers(finalizers []string) SetFinalizers(finalizers []string)
GetOwnerReferences() []metatypes.OwnerReference GetOwnerReferences() []metav1.OwnerReference
SetOwnerReferences([]metatypes.OwnerReference) SetOwnerReferences([]metav1.OwnerReference)
GetClusterName() string GetClusterName() string
SetClusterName(clusterName string) SetClusterName(clusterName string)
} }
var _ Object = &runtime.Unstructured{} // TODO: move me to pkg/apis/meta/v1/unstructured once Object is moved to pkg/apis/meta/v1
var _ Object = &unstructured.Unstructured{}
type ListMetaAccessor interface { type ListMetaAccessor interface {
GetListMeta() List GetListMeta() List

View File

@ -20,7 +20,6 @@ import (
"fmt" "fmt"
"reflect" "reflect"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/conversion" "k8s.io/kubernetes/pkg/conversion"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
@ -314,7 +313,7 @@ func (resourceAccessor) SetResourceVersion(obj runtime.Object, version string) e
} }
// extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object. // extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object.
func extractFromOwnerReference(v reflect.Value, o *metatypes.OwnerReference) error { func extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {
if err := runtime.Field(v, "APIVersion", &o.APIVersion); err != nil { if err := runtime.Field(v, "APIVersion", &o.APIVersion); err != nil {
return err return err
} }
@ -339,7 +338,7 @@ func extractFromOwnerReference(v reflect.Value, o *metatypes.OwnerReference) err
} }
// setOwnerReference sets v to o. v is the OwnerReferences field of an object. // setOwnerReference sets v to o. v is the OwnerReferences field of an object.
func setOwnerReference(v reflect.Value, o *metatypes.OwnerReference) error { func setOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {
if err := runtime.SetField(o.APIVersion, v, "APIVersion"); err != nil { if err := runtime.SetField(o.APIVersion, v, "APIVersion"); err != nil {
return err return err
} }
@ -521,8 +520,8 @@ func (a genericAccessor) SetFinalizers(finalizers []string) {
*a.finalizers = finalizers *a.finalizers = finalizers
} }
func (a genericAccessor) GetOwnerReferences() []metatypes.OwnerReference { func (a genericAccessor) GetOwnerReferences() []metav1.OwnerReference {
var ret []metatypes.OwnerReference var ret []metav1.OwnerReference
s := a.ownerReferences s := a.ownerReferences
if s.Kind() != reflect.Ptr || s.Elem().Kind() != reflect.Slice { if s.Kind() != reflect.Ptr || s.Elem().Kind() != reflect.Slice {
glog.Errorf("expect %v to be a pointer to slice", s) glog.Errorf("expect %v to be a pointer to slice", s)
@ -530,7 +529,7 @@ func (a genericAccessor) GetOwnerReferences() []metatypes.OwnerReference {
} }
s = s.Elem() s = s.Elem()
// Set the capacity to one element greater to avoid copy if the caller later append an element. // Set the capacity to one element greater to avoid copy if the caller later append an element.
ret = make([]metatypes.OwnerReference, s.Len(), s.Len()+1) ret = make([]metav1.OwnerReference, s.Len(), s.Len()+1)
for i := 0; i < s.Len(); i++ { for i := 0; i < s.Len(); i++ {
if err := extractFromOwnerReference(s.Index(i), &ret[i]); err != nil { if err := extractFromOwnerReference(s.Index(i), &ret[i]); err != nil {
glog.Errorf("extractFromOwnerReference failed: %v", err) glog.Errorf("extractFromOwnerReference failed: %v", err)
@ -540,7 +539,7 @@ func (a genericAccessor) GetOwnerReferences() []metatypes.OwnerReference {
return ret return ret
} }
func (a genericAccessor) SetOwnerReferences(references []metatypes.OwnerReference) { func (a genericAccessor) SetOwnerReferences(references []metav1.OwnerReference) {
s := a.ownerReferences s := a.ownerReferences
if s.Kind() != reflect.Ptr || s.Elem().Kind() != reflect.Slice { if s.Kind() != reflect.Ptr || s.Elem().Kind() != reflect.Slice {
glog.Errorf("expect %v to be a pointer to slice", s) glog.Errorf("expect %v to be a pointer to slice", s)

View File

@ -24,7 +24,6 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
@ -337,14 +336,14 @@ type MyAPIObject2 struct {
v1.ObjectMeta v1.ObjectMeta
} }
func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerReferences []metatypes.OwnerReference) { func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerReferences []metav1.OwnerReference) {
fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&myAPIObject2) fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&myAPIObject2)
references := myAPIObject2.ObjectMeta.OwnerReferences references := myAPIObject2.ObjectMeta.OwnerReferences
// This is necessary for the test to pass because the getter will return a // This is necessary for the test to pass because the getter will return a
// non-nil slice. // non-nil slice.
metaOwnerReferences = make([]metatypes.OwnerReference, 0) metaOwnerReferences = make([]metav1.OwnerReference, 0)
for i := 0; i < len(references); i++ { for i := 0; i < len(references); i++ {
metaOwnerReferences = append(metaOwnerReferences, metatypes.OwnerReference{ metaOwnerReferences = append(metaOwnerReferences, metav1.OwnerReference{
Kind: references[i].Kind, Kind: references[i].Kind,
Name: references[i].Name, Name: references[i].Name,
UID: references[i].UID, UID: references[i].UID,

View File

@ -1,18 +0,0 @@
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_binary",
"go_library",
"go_test",
"cgo_library",
)
go_library(
name = "go_default_library",
srcs = ["types.go"],
tags = ["automanaged"],
deps = ["//pkg/types:go_default_library"],
)

View File

@ -1,30 +0,0 @@
/*
Copyright 2014 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// The types defined in this package are used by the meta package to represent
// the in-memory version of objects. We cannot reuse the __internal version of
// API objects because it causes import cycle.
package metatypes
import "k8s.io/kubernetes/pkg/types"
type OwnerReference struct {
APIVersion string
Kind string
UID types.UID
Name string
Controller *bool
}

View File

@ -24,7 +24,6 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
"k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apimachinery/registered"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
@ -67,12 +66,12 @@ func TestHasObjectMetaSystemFieldValues(t *testing.T) {
} }
} }
func getObjectMetaAndOwnerReferences() (objectMeta api.ObjectMeta, metaOwnerReferences []metatypes.OwnerReference) { func getObjectMetaAndOwnerReferences() (objectMeta api.ObjectMeta, metaOwnerReferences []metav1.OwnerReference) {
fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&objectMeta) fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&objectMeta)
references := objectMeta.OwnerReferences references := objectMeta.OwnerReferences
metaOwnerReferences = make([]metatypes.OwnerReference, 0) metaOwnerReferences = make([]metav1.OwnerReference, 0)
for i := 0; i < len(references); i++ { for i := 0; i < len(references); i++ {
metaOwnerReferences = append(metaOwnerReferences, metatypes.OwnerReference{ metaOwnerReferences = append(metaOwnerReferences, metav1.OwnerReference{
Kind: references[i].Kind, Kind: references[i].Kind,
Name: references[i].Name, Name: references[i].Name,
UID: references[i].UID, UID: references[i].UID,

View File

@ -18,7 +18,6 @@ package v1
import ( import (
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/types"
) )
@ -54,8 +53,8 @@ func (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Ann
func (meta *ObjectMeta) GetFinalizers() []string { return meta.Finalizers } func (meta *ObjectMeta) GetFinalizers() []string { return meta.Finalizers }
func (meta *ObjectMeta) SetFinalizers(finalizers []string) { meta.Finalizers = finalizers } func (meta *ObjectMeta) SetFinalizers(finalizers []string) { meta.Finalizers = finalizers }
func (meta *ObjectMeta) GetOwnerReferences() []metatypes.OwnerReference { func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference {
ret := make([]metatypes.OwnerReference, len(meta.OwnerReferences)) ret := make([]metav1.OwnerReference, len(meta.OwnerReferences))
for i := 0; i < len(meta.OwnerReferences); i++ { for i := 0; i < len(meta.OwnerReferences); i++ {
ret[i].Kind = meta.OwnerReferences[i].Kind ret[i].Kind = meta.OwnerReferences[i].Kind
ret[i].Name = meta.OwnerReferences[i].Name ret[i].Name = meta.OwnerReferences[i].Name
@ -69,7 +68,7 @@ func (meta *ObjectMeta) GetOwnerReferences() []metatypes.OwnerReference {
return ret return ret
} }
func (meta *ObjectMeta) SetOwnerReferences(references []metatypes.OwnerReference) { func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) {
newReferences := make([]OwnerReference, len(references)) newReferences := make([]OwnerReference, len(references))
for i := 0; i < len(references); i++ { for i := 0; i < len(references); i++ {
newReferences[i].Kind = references[i].Kind newReferences[i].Kind = references[i].Kind

View File

@ -30,6 +30,8 @@ import (
"strings" "strings"
"github.com/ugorji/go/codec" "github.com/ugorji/go/codec"
"k8s.io/kubernetes/pkg/types"
) )
// TypeMeta describes an individual object in an API response or request // TypeMeta describes an individual object in an API response or request
@ -71,6 +73,26 @@ type ListMeta struct {
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,2,opt,name=resourceVersion"` ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,2,opt,name=resourceVersion"`
} }
// OwnerReference contains enough information to let you identify an owning
// object. Currently, an owning object must be in the same namespace, so there
// is no namespace field.
type OwnerReference struct {
// API version of the referent.
APIVersion string `json:"apiVersion" protobuf:"bytes,5,opt,name=apiVersion"`
// Kind of the referent.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds
Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"`
// Name of the referent.
// More info: http://kubernetes.io/docs/user-guide/identifiers#names
Name string `json:"name" protobuf:"bytes,3,opt,name=name"`
// UID of the referent.
// More info: http://kubernetes.io/docs/user-guide/identifiers#uids
UID types.UID `json:"uid" protobuf:"bytes,4,opt,name=uid,casttype=k8s.io/kubernetes/pkg/types.UID"`
// If true, this reference points to the managing controller.
// +optional
Controller *bool `json:"controller,omitempty" protobuf:"varint,6,opt,name=controller"`
}
// ExportOptions is the query options to the standard REST get call. // ExportOptions is the query options to the standard REST get call.
type ExportOptions struct { type ExportOptions struct {
TypeMeta `json:",inline"` TypeMeta `json:",inline"`

View File

@ -24,7 +24,6 @@ import (
"time" "time"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apimachinery/registered"
@ -215,7 +214,7 @@ func TestUnstructuredGetters(t *testing.T) {
t.Errorf("GetAnnotations() = %s, want %s", got, want) t.Errorf("GetAnnotations() = %s, want %s", got, want)
} }
refs := unstruct.GetOwnerReferences() refs := unstruct.GetOwnerReferences()
expectedOwnerReferences := []metatypes.OwnerReference{ expectedOwnerReferences := []metav1.OwnerReference{
{ {
Kind: "Pod", Kind: "Pod",
Name: "poda", Name: "poda",
@ -301,7 +300,7 @@ func TestUnstructuredSetters(t *testing.T) {
unstruct.SetDeletionTimestamp(&date) unstruct.SetDeletionTimestamp(&date)
unstruct.SetLabels(map[string]string{"test_label": "test_value"}) unstruct.SetLabels(map[string]string{"test_label": "test_value"})
unstruct.SetAnnotations(map[string]string{"test_annotation": "test_value"}) unstruct.SetAnnotations(map[string]string{"test_annotation": "test_value"})
newOwnerReferences := []metatypes.OwnerReference{ newOwnerReferences := []metav1.OwnerReference{
{ {
Kind: "Pod", Kind: "Pod",
Name: "poda", Name: "poda",

View File

@ -26,7 +26,6 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
@ -52,7 +51,7 @@ type monitor struct {
} }
type objectReference struct { type objectReference struct {
metatypes.OwnerReference metav1.OwnerReference
// This is needed by the dynamic client // This is needed by the dynamic client
Namespace string Namespace string
} }
@ -72,7 +71,7 @@ type node struct {
dependents map[*node]struct{} dependents map[*node]struct{}
// When processing an Update event, we need to compare the updated // When processing an Update event, we need to compare the updated
// ownerReferences with the owners recorded in the graph. // ownerReferences with the owners recorded in the graph.
owners []metatypes.OwnerReference owners []metav1.OwnerReference
} }
func (ownerNode *node) addDependent(dependent *node) { func (ownerNode *node) addDependent(dependent *node) {
@ -138,7 +137,7 @@ type Propagator struct {
// exist in the p.uidToNode yet, a "virtual" node will be created to represent // exist in the p.uidToNode yet, a "virtual" node will be created to represent
// the owner. The "virtual" node will be enqueued to the dirtyQueue, so that // the owner. The "virtual" node will be enqueued to the dirtyQueue, so that
// processItem() will verify if the owner exists according to the API server. // processItem() will verify if the owner exists according to the API server.
func (p *Propagator) addDependentToOwners(n *node, owners []metatypes.OwnerReference) { func (p *Propagator) addDependentToOwners(n *node, owners []metav1.OwnerReference) {
for _, owner := range owners { for _, owner := range owners {
ownerNode, ok := p.uidToNode.Read(owner.UID) ownerNode, ok := p.uidToNode.Read(owner.UID)
if !ok { if !ok {
@ -170,7 +169,7 @@ func (p *Propagator) insertNode(n *node) {
} }
// removeDependentFromOwners remove n from owners' dependents list. // removeDependentFromOwners remove n from owners' dependents list.
func (p *Propagator) removeDependentFromOwners(n *node, owners []metatypes.OwnerReference) { func (p *Propagator) removeDependentFromOwners(n *node, owners []metav1.OwnerReference) {
for _, owner := range owners { for _, owner := range owners {
ownerNode, ok := p.uidToNode.Read(owner.UID) ownerNode, ok := p.uidToNode.Read(owner.UID)
if !ok { if !ok {
@ -189,13 +188,13 @@ func (p *Propagator) removeNode(n *node) {
// TODO: profile this function to see if a naive N^2 algorithm performs better // TODO: profile this function to see if a naive N^2 algorithm performs better
// when the number of references is small. // when the number of references is small.
func referencesDiffs(old []metatypes.OwnerReference, new []metatypes.OwnerReference) (added []metatypes.OwnerReference, removed []metatypes.OwnerReference) { func referencesDiffs(old []metav1.OwnerReference, new []metav1.OwnerReference) (added []metav1.OwnerReference, removed []metav1.OwnerReference) {
oldUIDToRef := make(map[string]metatypes.OwnerReference) oldUIDToRef := make(map[string]metav1.OwnerReference)
for i := 0; i < len(old); i++ { for i := 0; i < len(old); i++ {
oldUIDToRef[string(old[i].UID)] = old[i] oldUIDToRef[string(old[i].UID)] = old[i]
} }
oldUIDSet := sets.StringKeySet(oldUIDToRef) oldUIDSet := sets.StringKeySet(oldUIDToRef)
newUIDToRef := make(map[string]metatypes.OwnerReference) newUIDToRef := make(map[string]metav1.OwnerReference)
for i := 0; i < len(new); i++ { for i := 0; i < len(new); i++ {
newUIDToRef[string(new[i].UID)] = new[i] newUIDToRef[string(new[i].UID)] = new[i]
} }
@ -372,7 +371,7 @@ func (p *Propagator) processEvent() {
case (event.eventType == addEvent || event.eventType == updateEvent) && !found: case (event.eventType == addEvent || event.eventType == updateEvent) && !found:
newNode := &node{ newNode := &node{
identity: objectReference{ identity: objectReference{
OwnerReference: metatypes.OwnerReference{ OwnerReference: metav1.OwnerReference{
APIVersion: typeAccessor.GetAPIVersion(), APIVersion: typeAccessor.GetAPIVersion(),
Kind: typeAccessor.GetKind(), Kind: typeAccessor.GetKind(),
UID: accessor.GetUID(), UID: accessor.GetUID(),

View File

@ -27,7 +27,6 @@ import (
_ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/api/install"
"k8s.io/kubernetes/pkg/api/meta/metatypes"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apimachinery/registered"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
@ -170,7 +169,7 @@ func TestProcessItem(t *testing.T) {
gc := setupGC(t, clientConfig) gc := setupGC(t, clientConfig)
item := &node{ item := &node{
identity: objectReference{ identity: objectReference{
OwnerReference: metatypes.OwnerReference{ OwnerReference: metav1.OwnerReference{
Kind: pod.Kind, Kind: pod.Kind,
APIVersion: pod.APIVersion, APIVersion: pod.APIVersion,
Name: pod.Name, Name: pod.Name,
@ -326,8 +325,8 @@ func TestDependentsRace(t *testing.T) {
go func() { go func() {
for i := 0; i < updates; i++ { for i := 0; i < updates; i++ {
dependent := &node{} dependent := &node{}
gc.propagator.addDependentToOwners(dependent, []metatypes.OwnerReference{{UID: ownerUID}}) gc.propagator.addDependentToOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
gc.propagator.removeDependentFromOwners(dependent, []metatypes.OwnerReference{{UID: ownerUID}}) gc.propagator.removeDependentFromOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
} }
}() }()
go func() { go func() {
@ -366,7 +365,7 @@ func TestGCListWatcher(t *testing.T) {
func podToGCNode(pod *v1.Pod) *node { func podToGCNode(pod *v1.Pod) *node {
return &node{ return &node{
identity: objectReference{ identity: objectReference{
OwnerReference: metatypes.OwnerReference{ OwnerReference: metav1.OwnerReference{
Kind: pod.Kind, Kind: pod.Kind,
APIVersion: pod.APIVersion, APIVersion: pod.APIVersion,
Name: pod.Name, Name: pod.Name,