...
1
16
17 package clusterrole
18
19 import (
20 "context"
21
22 rbacv1 "k8s.io/api/rbac/v1"
23 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24 genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
25 "k8s.io/apiserver/pkg/registry/rest"
26 "k8s.io/kubernetes/pkg/apis/rbac"
27 rbacv1helpers "k8s.io/kubernetes/pkg/apis/rbac/v1"
28 )
29
30
31 type Registry interface {
32 GetClusterRole(ctx context.Context, name string, options *metav1.GetOptions) (*rbacv1.ClusterRole, error)
33 }
34
35
36 type storage struct {
37 rest.Getter
38 }
39
40
41
42 func NewRegistry(s rest.StandardStorage) Registry {
43 return &storage{s}
44 }
45
46 func (s *storage) GetClusterRole(ctx context.Context, name string, options *metav1.GetOptions) (*rbacv1.ClusterRole, error) {
47 obj, err := s.Get(ctx, name, options)
48 if err != nil {
49 return nil, err
50 }
51
52 ret := &rbacv1.ClusterRole{}
53 if err := rbacv1helpers.Convert_rbac_ClusterRole_To_v1_ClusterRole(obj.(*rbac.ClusterRole), ret, nil); err != nil {
54 return nil, err
55 }
56 return ret, nil
57 }
58
59
60 type AuthorizerAdapter struct {
61 Registry Registry
62 }
63
64
65 func (a AuthorizerAdapter) GetClusterRole(name string) (*rbacv1.ClusterRole, error) {
66 return a.Registry.GetClusterRole(genericapirequest.NewContext(), name, &metav1.GetOptions{})
67 }
68
View as plain text