From ecebe958d21311d4ed388e15a3be57f7bc077ab7 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Wed, 29 Oct 2014 17:27:46 -0700 Subject: [PATCH] Allow ObjectReferences to be passed to Eventf ... in place of the object they reference. --- pkg/api/ref.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/api/ref.go b/pkg/api/ref.go index 36eb647eb19..b1a46267b16 100644 --- a/pkg/api/ref.go +++ b/pkg/api/ref.go @@ -36,6 +36,10 @@ func GetReference(obj runtime.Object) (*ObjectReference, error) { if obj == nil { return nil, ErrNilObject } + if ref, ok := obj.(*ObjectReference); ok { + // Don't make a reference to a reference. + return ref, nil + } meta, err := meta.Accessor(obj) if err != nil { return nil, err @@ -57,3 +61,7 @@ func GetReference(obj runtime.Object) (*ObjectReference, error) { ResourceVersion: meta.ResourceVersion(), }, nil } + +// Allow clients to preemptively get a reference to an API object and pass it to places that +// intend only to get a reference to that object. This simplifies the event recording interface. +func (*ObjectReference) IsAnAPIObject() {}