mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Rename methods in api/meta to be cleaner
This commit is contained in:
parent
64d98cba73
commit
1ccb86c760
@ -373,7 +373,7 @@ func executeAPIRequest(ctx api.Context, method string, c *client.Client) bool {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("error obtaining resource version for update: %v", err)
|
glog.Fatalf("error obtaining resource version for update: %v", err)
|
||||||
}
|
}
|
||||||
jsonBase, err := meta.FindTypeMeta(obj)
|
jsonBase, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("error finding json base for update: %v", err)
|
glog.Fatalf("error finding json base for update: %v", err)
|
||||||
}
|
}
|
||||||
@ -409,7 +409,7 @@ func executeAPIRequest(ctx api.Context, method string, c *client.Client) bool {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("error setting resource version: %v", err)
|
glog.Fatalf("error setting resource version: %v", err)
|
||||||
}
|
}
|
||||||
jsonBase, err := meta.FindTypeMeta(obj)
|
jsonBase, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("error setting resource version: %v", err)
|
glog.Fatalf("error setting resource version: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -48,13 +48,13 @@ var Codec = v1beta1.Codec
|
|||||||
// ResourceVersioner describes a default versioner that can handle all types
|
// ResourceVersioner describes a default versioner that can handle all types
|
||||||
// of versioning.
|
// of versioning.
|
||||||
// TODO: when versioning changes, make this part of each API definition.
|
// TODO: when versioning changes, make this part of each API definition.
|
||||||
var ResourceVersioner = meta.NewTypeMetaResourceVersioner()
|
var ResourceVersioner = meta.NewResourceVersioner()
|
||||||
|
|
||||||
// SelfLinker can set or get the SelfLink field of all API types.
|
// SelfLinker can set or get the SelfLink field of all API types.
|
||||||
// TODO: when versioning changes, make this part of each API definition.
|
// TODO: when versioning changes, make this part of each API definition.
|
||||||
// TODO(lavalamp): Combine SelfLinker & ResourceVersioner interfaces, force all uses
|
// TODO(lavalamp): Combine SelfLinker & ResourceVersioner interfaces, force all uses
|
||||||
// to go through the InterfacesFor method below.
|
// to go through the InterfacesFor method below.
|
||||||
var SelfLinker = meta.NewTypeMetaSelfLinker()
|
var SelfLinker = meta.NewSelfLinker()
|
||||||
|
|
||||||
// VersionInterfaces contains the interfaces one should use for dealing with types of a particular version.
|
// VersionInterfaces contains the interfaces one should use for dealing with types of a particular version.
|
||||||
type VersionInterfaces struct {
|
type VersionInterfaces struct {
|
||||||
|
@ -24,9 +24,9 @@ import (
|
|||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindTypeMeta takes an arbitary api type, returns pointer to its TypeMeta field.
|
// FindAccessor takes an arbitary api type, returns pointer to its TypeMeta field.
|
||||||
// obj must be a pointer to an api type.
|
// obj must be a pointer to an api type.
|
||||||
func FindTypeMeta(obj runtime.Object) (TypeMetaInterface, error) {
|
func FindAccessor(obj runtime.Object) (Accessor, error) {
|
||||||
v, err := conversion.EnforcePtr(obj)
|
v, err := conversion.EnforcePtr(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -38,7 +38,7 @@ func FindTypeMeta(obj runtime.Object) (TypeMetaInterface, error) {
|
|||||||
}
|
}
|
||||||
typeMeta := v.FieldByName("TypeMeta")
|
typeMeta := v.FieldByName("TypeMeta")
|
||||||
if !typeMeta.IsValid() {
|
if !typeMeta.IsValid() {
|
||||||
return nil, fmt.Errorf("struct %v lacks embedded JSON type", name)
|
return nil, fmt.Errorf("struct %v lacks embedded TypeMeta type", name)
|
||||||
}
|
}
|
||||||
g, err := newGenericTypeMeta(typeMeta)
|
g, err := newGenericTypeMeta(typeMeta)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -47,67 +47,67 @@ func FindTypeMeta(obj runtime.Object) (TypeMetaInterface, error) {
|
|||||||
return g, nil
|
return g, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTypeMetaResourceVersioner returns a ResourceVersioner that can set or
|
// NewResourceVersioner returns a ResourceVersioner that can set or
|
||||||
// retrieve ResourceVersion on objects derived from TypeMeta.
|
// retrieve ResourceVersion on objects derived from TypeMeta.
|
||||||
func NewTypeMetaResourceVersioner() runtime.ResourceVersioner {
|
func NewResourceVersioner() runtime.ResourceVersioner {
|
||||||
return jsonBaseModifier{}
|
return typeMetaModifier{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// jsonBaseModifier implements ResourceVersioner and SelfLinker.
|
// typeMetaModifier implements ResourceVersioner and SelfLinker.
|
||||||
type jsonBaseModifier struct{}
|
type typeMetaModifier struct{}
|
||||||
|
|
||||||
func (v jsonBaseModifier) ResourceVersion(obj runtime.Object) (string, error) {
|
func (v typeMetaModifier) ResourceVersion(obj runtime.Object) (string, error) {
|
||||||
json, err := FindTypeMeta(obj)
|
accessor, err := FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return json.ResourceVersion(), nil
|
return accessor.ResourceVersion(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v jsonBaseModifier) SetResourceVersion(obj runtime.Object, version string) error {
|
func (v typeMetaModifier) SetResourceVersion(obj runtime.Object, version string) error {
|
||||||
json, err := FindTypeMeta(obj)
|
accessor, err := FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
json.SetResourceVersion(version)
|
accessor.SetResourceVersion(version)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v jsonBaseModifier) ID(obj runtime.Object) (string, error) {
|
func (v typeMetaModifier) Name(obj runtime.Object) (string, error) {
|
||||||
json, err := FindTypeMeta(obj)
|
accessor, err := FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return json.ID(), nil
|
return accessor.Name(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v jsonBaseModifier) SelfLink(obj runtime.Object) (string, error) {
|
func (v typeMetaModifier) SelfLink(obj runtime.Object) (string, error) {
|
||||||
json, err := FindTypeMeta(obj)
|
accessor, err := FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return json.SelfLink(), nil
|
return accessor.SelfLink(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v jsonBaseModifier) SetSelfLink(obj runtime.Object, selfLink string) error {
|
func (v typeMetaModifier) SetSelfLink(obj runtime.Object, selfLink string) error {
|
||||||
json, err := FindTypeMeta(obj)
|
accessor, err := FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
json.SetSelfLink(selfLink)
|
accessor.SetSelfLink(selfLink)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTypeMetaSelfLinker returns a SelfLinker that works on all TypeMeta SelfLink fields.
|
// NewSelfLinker returns a SelfLinker that works on all TypeMeta SelfLink fields.
|
||||||
func NewTypeMetaSelfLinker() runtime.SelfLinker {
|
func NewSelfLinker() runtime.SelfLinker {
|
||||||
return jsonBaseModifier{}
|
return typeMetaModifier{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TypeMetaInterface lets you work with a TypeMeta from any of the versioned or
|
// Accessor lets you work with object metadata from any of the versioned or
|
||||||
// internal APIruntime.Objects.
|
// internal APIruntime.Objects.
|
||||||
type TypeMetaInterface interface {
|
type Accessor interface {
|
||||||
ID() string
|
Name() string
|
||||||
SetID(ID string)
|
SetName(name string)
|
||||||
APIVersion() string
|
APIVersion() string
|
||||||
SetAPIVersion(version string)
|
SetAPIVersion(version string)
|
||||||
Kind() string
|
Kind() string
|
||||||
@ -119,19 +119,19 @@ type TypeMetaInterface interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type genericTypeMeta struct {
|
type genericTypeMeta struct {
|
||||||
id *string
|
name *string
|
||||||
apiVersion *string
|
apiVersion *string
|
||||||
kind *string
|
kind *string
|
||||||
resourceVersion *string
|
resourceVersion *string
|
||||||
selfLink *string
|
selfLink *string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g genericTypeMeta) ID() string {
|
func (g genericTypeMeta) Name() string {
|
||||||
return *g.id
|
return *g.name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g genericTypeMeta) SetID(id string) {
|
func (g genericTypeMeta) SetName(name string) {
|
||||||
*g.id = id
|
*g.name = name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g genericTypeMeta) APIVersion() string {
|
func (g genericTypeMeta) APIVersion() string {
|
||||||
@ -196,7 +196,7 @@ func fieldPtr(v reflect.Value, fieldName string, dest interface{}) error {
|
|||||||
// Returns an error if this isn't the case.
|
// Returns an error if this isn't the case.
|
||||||
func newGenericTypeMeta(v reflect.Value) (genericTypeMeta, error) {
|
func newGenericTypeMeta(v reflect.Value) (genericTypeMeta, error) {
|
||||||
g := genericTypeMeta{}
|
g := genericTypeMeta{}
|
||||||
if err := fieldPtr(v, "Name", &g.id); err != nil {
|
if err := fieldPtr(v, "Name", &g.name); err != nil {
|
||||||
return g, err
|
return g, err
|
||||||
}
|
}
|
||||||
if err := fieldPtr(v, "APIVersion", &g.apiVersion); err != nil {
|
if err := fieldPtr(v, "APIVersion", &g.apiVersion); err != nil {
|
||||||
|
@ -44,9 +44,9 @@ func TestGenericTypeMeta(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("new err: %v", err)
|
t.Fatalf("new err: %v", err)
|
||||||
}
|
}
|
||||||
// Prove g supports TypeMetaInterface.
|
// Prove g supports Accessor.
|
||||||
jbi := TypeMetaInterface(g)
|
jbi := Accessor(g)
|
||||||
if e, a := "foo", jbi.ID(); e != a {
|
if e, a := "foo", jbi.Name(); e != a {
|
||||||
t.Errorf("expected %v, got %v", e, a)
|
t.Errorf("expected %v, got %v", e, a)
|
||||||
}
|
}
|
||||||
if e, a := "a", jbi.APIVersion(); e != a {
|
if e, a := "a", jbi.APIVersion(); e != a {
|
||||||
@ -62,7 +62,7 @@ func TestGenericTypeMeta(t *testing.T) {
|
|||||||
t.Errorf("expected %v, got %v", e, a)
|
t.Errorf("expected %v, got %v", e, a)
|
||||||
}
|
}
|
||||||
|
|
||||||
jbi.SetID("bar")
|
jbi.SetName("bar")
|
||||||
jbi.SetAPIVersion("c")
|
jbi.SetAPIVersion("c")
|
||||||
jbi.SetKind("d")
|
jbi.SetKind("d")
|
||||||
jbi.SetResourceVersion("2")
|
jbi.SetResourceVersion("2")
|
||||||
@ -107,7 +107,7 @@ func TestResourceVersionerOfAPI(t *testing.T) {
|
|||||||
"api object with version": {&MyAPIObject{TypeMeta: runtime.TypeMeta{ResourceVersion: "1"}}, "1"},
|
"api object with version": {&MyAPIObject{TypeMeta: runtime.TypeMeta{ResourceVersion: "1"}}, "1"},
|
||||||
"pointer to api object with version": {&MyAPIObject{TypeMeta: runtime.TypeMeta{ResourceVersion: "1"}}, "1"},
|
"pointer to api object with version": {&MyAPIObject{TypeMeta: runtime.TypeMeta{ResourceVersion: "1"}}, "1"},
|
||||||
}
|
}
|
||||||
versioning := NewTypeMetaResourceVersioner()
|
versioning := NewResourceVersioner()
|
||||||
for key, testCase := range testCases {
|
for key, testCase := range testCases {
|
||||||
actual, err := versioning.ResourceVersion(testCase.Object)
|
actual, err := versioning.ResourceVersion(testCase.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -170,7 +170,7 @@ func TestTypeMetaSelfLinker(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
linker := NewTypeMetaSelfLinker()
|
linker := NewSelfLinker()
|
||||||
for name, item := range table {
|
for name, item := range table {
|
||||||
got, err := linker.SelfLink(item.obj)
|
got, err := linker.SelfLink(item.obj)
|
||||||
if e, a := item.succeed, err == nil; e != a {
|
if e, a := item.succeed, err == nil; e != a {
|
||||||
|
@ -36,7 +36,7 @@ func GetReference(obj runtime.Object) (*ObjectReference, error) {
|
|||||||
if obj == nil {
|
if obj == nil {
|
||||||
return nil, ErrNilObject
|
return nil, ErrNilObject
|
||||||
}
|
}
|
||||||
jsonBase, err := meta.FindTypeMeta(obj)
|
accessor, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -44,16 +44,16 @@ func GetReference(obj runtime.Object) (*ObjectReference, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
version := versionFromSelfLink.FindStringSubmatch(jsonBase.SelfLink())
|
version := versionFromSelfLink.FindStringSubmatch(accessor.SelfLink())
|
||||||
if len(version) < 2 {
|
if len(version) < 2 {
|
||||||
return nil, fmt.Errorf("unexpected self link format: %v", jsonBase.SelfLink())
|
return nil, fmt.Errorf("unexpected self link format: %v", accessor.SelfLink())
|
||||||
}
|
}
|
||||||
return &ObjectReference{
|
return &ObjectReference{
|
||||||
Kind: kind,
|
Kind: kind,
|
||||||
APIVersion: version[1],
|
APIVersion: version[1],
|
||||||
// TODO: correct Name and UID when TypeMeta makes a distinction
|
// TODO: correct Name and UID when TypeMeta makes a distinction
|
||||||
Name: jsonBase.ID(),
|
Name: accessor.Name(),
|
||||||
UID: jsonBase.ID(),
|
UID: accessor.Name(),
|
||||||
ResourceVersion: jsonBase.ResourceVersion(),
|
ResourceVersion: accessor.ResourceVersion(),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ var apiObjectFuzzer = fuzz.New().NilChance(.5).NumElements(1, 1).Funcs(
|
|||||||
func runTest(t *testing.T, codec runtime.Codec, source runtime.Object) {
|
func runTest(t *testing.T, codec runtime.Codec, source runtime.Object) {
|
||||||
name := reflect.TypeOf(source).Elem().Name()
|
name := reflect.TypeOf(source).Elem().Name()
|
||||||
apiObjectFuzzer.Fuzz(source)
|
apiObjectFuzzer.Fuzz(source)
|
||||||
j, err := meta.FindTypeMeta(source)
|
j, err := meta.FindAccessor(source)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error %v for %#v", err, source)
|
t.Fatalf("Unexpected error %v for %#v", err, source)
|
||||||
}
|
}
|
||||||
@ -160,7 +160,7 @@ func TestTypes(t *testing.T) {
|
|||||||
t.Errorf("Couldn't make a %v? %v", kind, err)
|
t.Errorf("Couldn't make a %v? %v", kind, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if _, err := meta.FindTypeMeta(item); err != nil {
|
if _, err := meta.FindAccessor(item); err != nil {
|
||||||
t.Logf("%s is not a TypeMeta and cannot be round tripped: %v", kind, err)
|
t.Logf("%s is not a TypeMeta and cannot be round tripped: %v", kind, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -564,11 +564,11 @@ func TestParseTimeout(t *testing.T) {
|
|||||||
type setTestSelfLinker struct {
|
type setTestSelfLinker struct {
|
||||||
t *testing.T
|
t *testing.T
|
||||||
expectedSet string
|
expectedSet string
|
||||||
id string
|
name string
|
||||||
called bool
|
called bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *setTestSelfLinker) ID(runtime.Object) (string, error) { return s.id, nil }
|
func (s *setTestSelfLinker) Name(runtime.Object) (string, error) { return s.name, nil }
|
||||||
func (*setTestSelfLinker) SelfLink(runtime.Object) (string, error) { return "", nil }
|
func (*setTestSelfLinker) SelfLink(runtime.Object) (string, error) { return "", nil }
|
||||||
func (s *setTestSelfLinker) SetSelfLink(obj runtime.Object, selfLink string) error {
|
func (s *setTestSelfLinker) SetSelfLink(obj runtime.Object, selfLink string) error {
|
||||||
if e, a := s.expectedSet, selfLink; e != a {
|
if e, a := s.expectedSet, selfLink; e != a {
|
||||||
@ -587,7 +587,7 @@ func TestSyncCreate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
selfLinker := &setTestSelfLinker{
|
selfLinker := &setTestSelfLinker{
|
||||||
t: t,
|
t: t,
|
||||||
id: "bar",
|
name: "bar",
|
||||||
expectedSet: "/prefix/version/foo/bar",
|
expectedSet: "/prefix/version/foo/bar",
|
||||||
}
|
}
|
||||||
handler := Handle(map[string]RESTStorage{
|
handler := Handle(map[string]RESTStorage{
|
||||||
@ -684,7 +684,7 @@ func TestAsyncCreateError(t *testing.T) {
|
|||||||
}
|
}
|
||||||
selfLinker := &setTestSelfLinker{
|
selfLinker := &setTestSelfLinker{
|
||||||
t: t,
|
t: t,
|
||||||
id: "bar",
|
name: "bar",
|
||||||
expectedSet: "/prefix/version/foo/bar",
|
expectedSet: "/prefix/version/foo/bar",
|
||||||
}
|
}
|
||||||
handler := Handle(map[string]RESTStorage{"foo": &storage}, codec, "/prefix/version", selfLinker)
|
handler := Handle(map[string]RESTStorage{"foo": &storage}, codec, "/prefix/version", selfLinker)
|
||||||
|
@ -64,14 +64,14 @@ func (h *RESTHandler) setSelfLink(obj runtime.Object, req *http.Request) error {
|
|||||||
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Like setSelfLink, but appends the object's id.
|
// Like setSelfLink, but appends the object's name.
|
||||||
func (h *RESTHandler) setSelfLinkAddID(obj runtime.Object, req *http.Request) error {
|
func (h *RESTHandler) setSelfLinkAddName(obj runtime.Object, req *http.Request) error {
|
||||||
id, err := h.selfLinker.ID(obj)
|
name, err := h.selfLinker.Name(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
newURL := *req.URL
|
newURL := *req.URL
|
||||||
newURL.Path = path.Join(h.canonicalPrefix, req.URL.Path, id)
|
newURL.Path = path.Join(h.canonicalPrefix, req.URL.Path, name)
|
||||||
newURL.RawQuery = ""
|
newURL.RawQuery = ""
|
||||||
newURL.Fragment = ""
|
newURL.Fragment = ""
|
||||||
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
||||||
@ -171,7 +171,7 @@ func (h *RESTHandler) handleRESTStorage(parts []string, req *http.Request, w htt
|
|||||||
errorJSON(err, h.codec, w)
|
errorJSON(err, h.codec, w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
op := h.createOperation(out, sync, timeout, curry(h.setSelfLinkAddID, req))
|
op := h.createOperation(out, sync, timeout, curry(h.setSelfLinkAddName, req))
|
||||||
h.finishReq(op, req, w)
|
h.finishReq(op, req, w)
|
||||||
|
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
|
14
pkg/client/cache/reflector.go
vendored
14
pkg/client/cache/reflector.go
vendored
@ -79,7 +79,7 @@ func (r *Reflector) listAndWatch() {
|
|||||||
glog.Errorf("Failed to list %v: %v", r.expectedType, err)
|
glog.Errorf("Failed to list %v: %v", r.expectedType, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
jsonBase, err := meta.FindTypeMeta(list)
|
jsonBase, err := meta.FindAccessor(list)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("Unable to understand list result %#v", list)
|
glog.Errorf("Unable to understand list result %#v", list)
|
||||||
return
|
return
|
||||||
@ -113,11 +113,11 @@ func (r *Reflector) listAndWatch() {
|
|||||||
func (r *Reflector) syncWith(items []runtime.Object) error {
|
func (r *Reflector) syncWith(items []runtime.Object) error {
|
||||||
found := map[string]interface{}{}
|
found := map[string]interface{}{}
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
jsonBase, err := meta.FindTypeMeta(item)
|
jsonBase, err := meta.FindAccessor(item)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unexpected item in list: %v", err)
|
return fmt.Errorf("unexpected item in list: %v", err)
|
||||||
}
|
}
|
||||||
found[jsonBase.ID()] = item
|
found[jsonBase.Name()] = item
|
||||||
}
|
}
|
||||||
|
|
||||||
r.store.Replace(found)
|
r.store.Replace(found)
|
||||||
@ -140,21 +140,21 @@ func (r *Reflector) watchHandler(w watch.Interface, resourceVersion *string) err
|
|||||||
glog.Errorf("expected type %v, but watch event object had type %v", e, a)
|
glog.Errorf("expected type %v, but watch event object had type %v", e, a)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
jsonBase, err := meta.FindTypeMeta(event.Object)
|
jsonBase, err := meta.FindAccessor(event.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("unable to understand watch event %#v", event)
|
glog.Errorf("unable to understand watch event %#v", event)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
switch event.Type {
|
switch event.Type {
|
||||||
case watch.Added:
|
case watch.Added:
|
||||||
r.store.Add(jsonBase.ID(), event.Object)
|
r.store.Add(jsonBase.Name(), event.Object)
|
||||||
case watch.Modified:
|
case watch.Modified:
|
||||||
r.store.Update(jsonBase.ID(), event.Object)
|
r.store.Update(jsonBase.Name(), event.Object)
|
||||||
case watch.Deleted:
|
case watch.Deleted:
|
||||||
// TODO: Will any consumers need access to the "last known
|
// TODO: Will any consumers need access to the "last known
|
||||||
// state", which is passed in event.Object? If so, may need
|
// state", which is passed in event.Object? If so, may need
|
||||||
// to change this.
|
// to change this.
|
||||||
r.store.Delete(jsonBase.ID())
|
r.store.Delete(jsonBase.Name())
|
||||||
default:
|
default:
|
||||||
glog.Errorf("unable to understand watch event %#v", event)
|
glog.Errorf("unable to understand watch event %#v", event)
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ func doUpdate(c *client.RESTClient, resource string, obj runtime.Object) (string
|
|||||||
|
|
||||||
// Update the object we are trying to send to the server with the
|
// Update the object we are trying to send to the server with the
|
||||||
// correct resource version.
|
// correct resource version.
|
||||||
typeMeta, err := meta.FindTypeMeta(obj)
|
typeMeta, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@ -150,15 +150,15 @@ func doDelete(c *client.RESTClient, resource string, obj runtime.Object) (string
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getIDFromObj(obj runtime.Object) (string, error) {
|
func getIDFromObj(obj runtime.Object) (string, error) {
|
||||||
typeMeta, err := meta.FindTypeMeta(obj)
|
typeMeta, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return typeMeta.ID(), nil
|
return typeMeta.Name(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getResourceVersionFromObj(obj runtime.Object) (string, error) {
|
func getResourceVersionFromObj(obj runtime.Object) (string, error) {
|
||||||
typeMeta, err := meta.FindTypeMeta(obj)
|
typeMeta, err := meta.FindAccessor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,8 @@ type SelfLinker interface {
|
|||||||
SetSelfLink(obj Object, selfLink string) error
|
SetSelfLink(obj Object, selfLink string) error
|
||||||
SelfLink(obj Object) (string, error)
|
SelfLink(obj Object) (string, error)
|
||||||
|
|
||||||
// Knowing ID is sometimes necessary to use a SelfLinker.
|
// Knowing Name is sometimes necessary to use a SelfLinker.
|
||||||
ID(obj Object) (string, error)
|
Name(obj Object) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// All api types must support the Object interface. It's deliberately tiny so that this is not an onerous
|
// All api types must support the Object interface. It's deliberately tiny so that this is not an onerous
|
||||||
|
@ -45,7 +45,7 @@ func (*TestResource) IsAnAPIObject() {}
|
|||||||
|
|
||||||
var scheme *runtime.Scheme
|
var scheme *runtime.Scheme
|
||||||
var codec runtime.Codec
|
var codec runtime.Codec
|
||||||
var versioner = RuntimeVersionAdapter{meta.NewTypeMetaResourceVersioner()}
|
var versioner = RuntimeVersionAdapter{meta.NewResourceVersioner()}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
scheme = runtime.NewScheme()
|
scheme = runtime.NewScheme()
|
||||||
|
Loading…
Reference in New Issue
Block a user