...
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/rbac"
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/rbac/rolebinding"
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 &rbac.RoleBinding{} },
39 NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
40 DefaultQualifiedResource: rbac.Resource("rolebindings"),
41 SingularQualifiedResource: rbac.Resource("rolebinding"),
42
43 CreateStrategy: rolebinding.Strategy,
44 UpdateStrategy: rolebinding.Strategy,
45 DeleteStrategy: rolebinding.Strategy,
46
47 TableConvertor: printerstorage.TableConvertor{TableGenerator: printers.NewTableGenerator().With(printersinternal.AddHandlers)},
48 }
49 options := &generic.StoreOptions{RESTOptions: optsGetter}
50 if err := store.CompleteWithOptions(options); err != nil {
51 return nil, err
52 }
53
54 return &REST{store}, nil
55 }
56
View as plain text