@@ -39,20 +39,20 @@ func New(obj resource.Object) ResourceHandlerProvider {
39
39
ObjectTyper : scheme ,
40
40
TableConvertor : rest .NewDefaultTableConvertor (gvr .GroupResource ()),
41
41
}
42
- return newStore (obj .New , obj .NewList , gvr , s , optsGetter , nil )
42
+ return newStore (scheme , obj .New , obj .NewList , gvr , s , optsGetter , nil )
43
43
}
44
44
}
45
45
46
46
// NewWithStrategy returns a new etcd backed request handler using the provided Strategy.
47
47
func NewWithStrategy (obj resource.Object , s Strategy ) ResourceHandlerProvider {
48
48
return func (scheme * runtime.Scheme , optsGetter generic.RESTOptionsGetter ) (rest.Storage , error ) {
49
49
gvr := obj .GetGroupVersionResource ()
50
- return newStore (obj .New , obj .NewList , gvr , s , optsGetter , nil )
50
+ return newStore (scheme , obj .New , obj .NewList , gvr , s , optsGetter , nil )
51
51
}
52
52
}
53
53
54
54
// StoreFn defines a function which modifies the Store before it is initialized.
55
- type StoreFn func (* genericregistry.Store , * generic.StoreOptions )
55
+ type StoreFn func (* runtime. Scheme , * genericregistry.Store , * generic.StoreOptions )
56
56
57
57
// NewWithFn returns a new etcd backed request handler, applying the StoreFn to the Store.
58
58
func NewWithFn (obj resource.Object , fn StoreFn ) ResourceHandlerProvider {
@@ -63,13 +63,15 @@ func NewWithFn(obj resource.Object, fn StoreFn) ResourceHandlerProvider {
63
63
ObjectTyper : scheme ,
64
64
TableConvertor : rest .NewDefaultTableConvertor (gvr .GroupResource ()),
65
65
}
66
- return newStore (obj .New , obj .NewList , gvr , s , optsGetter , fn )
66
+ return newStore (scheme , obj .New , obj .NewList , gvr , s , optsGetter , fn )
67
67
}
68
68
}
69
69
70
70
// newStore returns a RESTStorage object that will work against API services.
71
71
func newStore (
72
- single , list func () runtime.Object , gvr schema.GroupVersionResource ,
72
+ scheme * runtime.Scheme ,
73
+ single , list func () runtime.Object ,
74
+ gvr schema.GroupVersionResource ,
73
75
s Strategy , optsGetter generic.RESTOptionsGetter , fn StoreFn ) (* genericregistry.Store , error ) {
74
76
store := & genericregistry.Store {
75
77
NewFunc : single ,
@@ -80,11 +82,12 @@ func newStore(
80
82
CreateStrategy : s ,
81
83
UpdateStrategy : s ,
82
84
DeleteStrategy : s ,
85
+ StorageVersioner : gvr .GroupVersion (),
83
86
}
84
87
85
88
options := & generic.StoreOptions {RESTOptions : optsGetter , AttrFunc : GetAttrs }
86
89
if fn != nil {
87
- fn (store , options )
90
+ fn (scheme , store , options )
88
91
}
89
92
if err := store .CompleteWithOptions (options ); err != nil {
90
93
return nil , err
0 commit comments