...
1
16
17 package storage
18
19 import (
20 "k8s.io/apimachinery/pkg/runtime"
21 "k8s.io/apiserver/pkg/registry/generic"
22 genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
23 "k8s.io/kubernetes/pkg/apis/resource"
24 "k8s.io/kubernetes/pkg/printers"
25 printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
26 printerstorage "k8s.io/kubernetes/pkg/printers/storage"
27 "k8s.io/kubernetes/pkg/registry/resource/resourceslice"
28 )
29
30
31 type REST struct {
32 *genericregistry.Store
33 }
34
35
36 func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, error) {
37 store := &genericregistry.Store{
38 NewFunc: func() runtime.Object { return &resource.ResourceSlice{} },
39 NewListFunc: func() runtime.Object { return &resource.ResourceSliceList{} },
40 PredicateFunc: resourceslice.Match,
41 DefaultQualifiedResource: resource.Resource("resourceslices"),
42 SingularQualifiedResource: resource.Resource("resourceslice"),
43
44 CreateStrategy: resourceslice.Strategy,
45 UpdateStrategy: resourceslice.Strategy,
46 DeleteStrategy: resourceslice.Strategy,
47 ReturnDeletedObject: true,
48
49 TableConvertor: printerstorage.TableConvertor{TableGenerator: printers.NewTableGenerator().With(printersinternal.AddHandlers)},
50 }
51 options := &generic.StoreOptions{
52 RESTOptions: optsGetter,
53 AttrFunc: resourceslice.GetAttrs,
54 TriggerFunc: resourceslice.TriggerFunc,
55 Indexers: resourceslice.Indexers(),
56 }
57 if err := store.CompleteWithOptions(options); err != nil {
58 return nil, err
59 }
60
61 return &REST{store}, nil
62 }
63
View as plain text