Skip to content

Commit

Permalink
fix: add list/get/delete option forward to kube-apiserver
Browse files Browse the repository at this point in the history
  • Loading branch information
choujimmy committed Mar 19, 2020
1 parent db66a97 commit 7e6a32e
Showing 1 changed file with 27 additions and 8 deletions.
35 changes: 27 additions & 8 deletions pkg/platform/util/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ package util

import (
"context"
"reflect"
"strings"

"k8s.io/apimachinery/pkg/api/errors"
metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand All @@ -31,7 +28,10 @@ import (
"k8s.io/apimachinery/pkg/watch"
"k8s.io/apiserver/pkg/registry/rest"
clientrest "k8s.io/client-go/rest"
"reflect"
"strings"
platforminternalclient "tkestack.io/tke/api/client/clientset/internalversion/typed/platform/internalversion"
"tkestack.io/tke/api/platform"
"tkestack.io/tke/pkg/platform/apiserver/filter"
)

Expand Down Expand Up @@ -64,6 +64,22 @@ func (s *Store) NamespaceScoped() bool {
return s.Namespaced
}

func listOptions(o *metainternalversion.ListOptions) *v1.ListOptions {
if o == nil {
return &v1.ListOptions{}
}
return &v1.ListOptions{
LabelSelector: o.LabelSelector.String(),
FieldSelector: o.FieldSelector.String(),
Watch: o.Watch,
AllowWatchBookmarks: o.AllowWatchBookmarks,
ResourceVersion: o.ResourceVersion,
TimeoutSeconds: o.TimeoutSeconds,
Limit: o.Limit,
Continue: o.Continue,
}
}

// List returns a list of items matching labels and field according to the
// backend kubernetes api server.
func (s *Store) List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) {
Expand Down Expand Up @@ -92,7 +108,7 @@ func (s *Store) List(ctx context.Context, options *metainternalversion.ListOptio
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
// SpecificallyVersionedParams(options, metainternalversion.ParameterCodec, v1.SchemeGroupVersion).
SpecificallyVersionedParams(options, platform.ParameterCodec, v1.SchemeGroupVersion).
Do().
Into(result); err != nil {
return nil, err
Expand Down Expand Up @@ -142,7 +158,7 @@ func (s *Store) Get(ctx context.Context, name string, options *v1.GetOptions) (r
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
Name(name).
VersionedParams(options, v1.ParameterCodec).
VersionedParams(options, platform.ParameterCodec).
Do().
Into(result); err != nil {
return nil, err
Expand All @@ -167,12 +183,12 @@ func (s *Store) Watch(ctx context.Context, options *metainternalversion.ListOpti
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
// SpecificallyVersionedParams(options, v1.ParameterCodec, metainternalversion.SchemeGroupVersion).
SpecificallyVersionedParams(options, platform.ParameterCodec, v1.SchemeGroupVersion).
Watch()
}

// Create inserts a new item according to the unique key from the object.
func (s *Store) Create(ctx context.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, _ *v1.CreateOptions) (runtime.Object, error) {
func (s *Store) Create(ctx context.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, options *v1.CreateOptions) (runtime.Object, error) {
client, requestInfo, err := RESTClient(ctx, s.PlatformClient)
if err != nil {
return nil, err
Expand All @@ -191,6 +207,7 @@ func (s *Store) Create(ctx context.Context, obj runtime.Object, createValidation
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
VersionedParams(options, platform.ParameterCodec).
Body(requestBody.Data).
Do().
Into(result); err != nil {
Expand Down Expand Up @@ -228,6 +245,7 @@ func (s *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
VersionedParams(options, platform.ParameterCodec).
Name(name).
Body(requestBody.Data).
Do().
Expand All @@ -251,6 +269,7 @@ func (s *Store) Delete(ctx context.Context, name string, deleteValidation rest.V
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
SubResource(requestInfo.Subresource).
VersionedParams(options, platform.ParameterCodec).
Name(name).
Body(options).
Do()
Expand Down Expand Up @@ -281,7 +300,7 @@ func (s *Store) DeleteCollection(ctx context.Context, options *v1.DeleteOptions,
Context(ctx).
NamespaceIfScoped(requestInfo.Namespace, requestInfo.Namespace != "" && requestInfo.Resource != "namespaces").
Resource(requestInfo.Resource).
// SpecificallyVersionedParams(listOptions, v1.ParameterCodec, metainternalversion.SchemeGroupVersion).
SpecificallyVersionedParams(listOptions, platform.ParameterCodec, v1.SchemeGroupVersion).
Body(options).
Do()

Expand Down

0 comments on commit 7e6a32e

Please sign in to comment.