mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #18022 from deads2k/gv-request
Auto commit by PR queue bot
This commit is contained in:
commit
c6b59353e1
@ -38,6 +38,7 @@ import (
|
||||
apierrors "k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
@ -423,7 +424,7 @@ containers:
|
||||
}
|
||||
|
||||
func runReplicationControllerTest(c *client.Client) {
|
||||
clientAPIVersion := c.APIVersion()
|
||||
clientAPIVersion := c.APIVersion().String()
|
||||
data, err := ioutil.ReadFile("cmd/integration/" + clientAPIVersion + "-controller.json")
|
||||
if err != nil {
|
||||
glog.Fatalf("Unexpected error: %v", err)
|
||||
@ -462,7 +463,7 @@ func runReplicationControllerTest(c *client.Client) {
|
||||
|
||||
func runAPIVersionsTest(c *client.Client) {
|
||||
v, err := c.ServerAPIVersions()
|
||||
clientVersion := c.APIVersion()
|
||||
clientVersion := c.APIVersion().String()
|
||||
if err != nil {
|
||||
glog.Fatalf("Failed to get api versions: %v", err)
|
||||
}
|
||||
@ -541,7 +542,7 @@ func runSelfLinkTestOnNamespace(c *client.Client, namespace string) {
|
||||
func runAtomicPutTest(c *client.Client) {
|
||||
svcBody := api.Service{
|
||||
TypeMeta: unversioned.TypeMeta{
|
||||
APIVersion: c.APIVersion(),
|
||||
APIVersion: c.APIVersion().String(),
|
||||
},
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "atomicservice",
|
||||
@ -623,7 +624,7 @@ func runPatchTest(c *client.Client) {
|
||||
resource := "services"
|
||||
svcBody := api.Service{
|
||||
TypeMeta: unversioned.TypeMeta{
|
||||
APIVersion: c.APIVersion(),
|
||||
APIVersion: c.APIVersion().String(),
|
||||
},
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: name,
|
||||
@ -647,12 +648,12 @@ func runPatchTest(c *client.Client) {
|
||||
glog.Fatalf("Failed creating patchservice: %v", err)
|
||||
}
|
||||
|
||||
patchBodies := map[string]map[api.PatchType]struct {
|
||||
patchBodies := map[unversioned.GroupVersion]map[api.PatchType]struct {
|
||||
AddLabelBody []byte
|
||||
RemoveLabelBody []byte
|
||||
RemoveAllLabelsBody []byte
|
||||
}{
|
||||
"v1": {
|
||||
v1.SchemeGroupVersion: {
|
||||
api.JSONPatchType: {
|
||||
[]byte(`[{"op":"add","path":"/metadata/labels","value":{"foo":"bar","baz":"qux"}}]`),
|
||||
[]byte(`[{"op":"remove","path":"/metadata/labels/foo"}]`),
|
||||
|
20
pkg/api/unversioned/register.go
Normal file
20
pkg/api/unversioned/register.go
Normal file
@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright 2014 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = GroupVersion{Group: "", Version: ""}
|
@ -72,7 +72,7 @@ func (c *deployments) Delete(name string, options *api.DeleteOptions) error {
|
||||
if options == nil {
|
||||
return c.client.Delete().Namespace(c.ns).Resource("deployments").Name(name).Do().Error()
|
||||
}
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.client.APIVersion())
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.client.APIVersion().String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ func (e *events) Delete(name string) error {
|
||||
// Returns the appropriate field selector based on the API version being used to communicate with the server.
|
||||
// The returned field selector can be used with List and Watch to filter desired events.
|
||||
func (e *events) GetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector {
|
||||
apiVersion := e.client.APIVersion()
|
||||
apiVersion := e.client.APIVersion().String()
|
||||
field := fields.Set{}
|
||||
if involvedObjectName != nil {
|
||||
field[getInvolvedObjectNameFieldLabel(apiVersion)] = *involvedObjectName
|
||||
|
@ -50,23 +50,23 @@ type RESTClient struct {
|
||||
}
|
||||
|
||||
func (c *RESTClient) Get() *unversioned.Request {
|
||||
return unversioned.NewRequest(c, "GET", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec)
|
||||
return unversioned.NewRequest(c, "GET", &url.URL{Host: "localhost"}, *testapi.Default.GroupVersion(), c.Codec)
|
||||
}
|
||||
|
||||
func (c *RESTClient) Put() *unversioned.Request {
|
||||
return unversioned.NewRequest(c, "PUT", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec)
|
||||
return unversioned.NewRequest(c, "PUT", &url.URL{Host: "localhost"}, *testapi.Default.GroupVersion(), c.Codec)
|
||||
}
|
||||
|
||||
func (c *RESTClient) Patch(_ api.PatchType) *unversioned.Request {
|
||||
return unversioned.NewRequest(c, "PATCH", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec)
|
||||
return unversioned.NewRequest(c, "PATCH", &url.URL{Host: "localhost"}, *testapi.Default.GroupVersion(), c.Codec)
|
||||
}
|
||||
|
||||
func (c *RESTClient) Post() *unversioned.Request {
|
||||
return unversioned.NewRequest(c, "POST", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec)
|
||||
return unversioned.NewRequest(c, "POST", &url.URL{Host: "localhost"}, *testapi.Default.GroupVersion(), c.Codec)
|
||||
}
|
||||
|
||||
func (c *RESTClient) Delete() *unversioned.Request {
|
||||
return unversioned.NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec)
|
||||
return unversioned.NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, *testapi.Default.GroupVersion(), c.Codec)
|
||||
}
|
||||
|
||||
func (c *RESTClient) Do(req *http.Request) (*http.Response, error) {
|
||||
|
@ -397,7 +397,7 @@ func RESTClientFor(config *Config) (*RESTClient, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
client := NewRESTClient(baseURL, config.GroupVersion.String(), config.Codec, config.QPS, config.Burst)
|
||||
client := NewRESTClient(baseURL, *config.GroupVersion, config.Codec, config.QPS, config.Burst)
|
||||
|
||||
transport, err := TransportFor(config)
|
||||
if err != nil {
|
||||
@ -422,7 +422,7 @@ func UnversionedRESTClientFor(config *Config) (*RESTClient, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
client := NewRESTClient(baseURL, "", config.Codec, config.QPS, config.Burst)
|
||||
client := NewRESTClient(baseURL, unversioned.SchemeGroupVersion, config.Codec, config.QPS, config.Burst)
|
||||
|
||||
transport, err := TransportFor(config)
|
||||
if err != nil {
|
||||
|
@ -73,7 +73,7 @@ func (c *horizontalPodAutoscalers) Delete(name string, options *api.DeleteOption
|
||||
if options == nil {
|
||||
return c.client.Delete().Namespace(c.ns).Resource("horizontalPodAutoscalers").Name(name).Do().Error()
|
||||
}
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.client.APIVersion())
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.client.APIVersion().String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ func (c *ingress) Delete(name string, options *api.DeleteOptions) (err error) {
|
||||
return c.r.Delete().Namespace(c.ns).Resource("ingresses").Name(name).Do().Error()
|
||||
}
|
||||
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion())
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion().String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ func (c *podTemplates) Delete(name string, options *api.DeleteOptions) error {
|
||||
if options == nil {
|
||||
return c.r.Delete().Namespace(c.ns).Resource("podTemplates").Name(name).Do().Error()
|
||||
}
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion())
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion().String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ func (c *pods) Delete(name string, options *api.DeleteOptions) error {
|
||||
if options == nil {
|
||||
return c.r.Delete().Namespace(c.ns).Resource("pods").Name(name).Do().Error()
|
||||
}
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion())
|
||||
body, err := api.Scheme.EncodeToVersion(options, c.r.APIVersion().String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/util/httpstream"
|
||||
"k8s.io/kubernetes/pkg/util/httpstream/spdy"
|
||||
@ -189,7 +190,7 @@ func TestRequestExecuteRemoteCommand(t *testing.T) {
|
||||
server := httptest.NewServer(fakeExecServer(t, i, testCase.Stdin, testCase.Stdout, testCase.Stderr, testCase.Error, testCase.Tty, testCase.MessageCount))
|
||||
|
||||
url, _ := url.ParseRequestURI(server.URL)
|
||||
c := client.NewRESTClient(url, "x", nil, -1, -1)
|
||||
c := client.NewRESTClient(url, unversioned.GroupVersion{Group: "x"}, nil, -1, -1)
|
||||
req := c.Post().Resource("testing")
|
||||
req.SetHeader(httpstream.HeaderProtocolVersion, StreamProtocolV2Name)
|
||||
req.Param("command", "ls")
|
||||
@ -271,7 +272,7 @@ func TestRequestAttachRemoteCommand(t *testing.T) {
|
||||
server := httptest.NewServer(fakeExecServer(t, i, testCase.Stdin, testCase.Stdout, testCase.Stderr, testCase.Error, testCase.Tty, 1))
|
||||
|
||||
url, _ := url.ParseRequestURI(server.URL)
|
||||
c := client.NewRESTClient(url, "x", nil, -1, -1)
|
||||
c := client.NewRESTClient(url, unversioned.GroupVersion{Group: "x"}, nil, -1, -1)
|
||||
req := c.Post().Resource("testing")
|
||||
|
||||
conf := &client.Config{
|
||||
|
@ -32,6 +32,7 @@ import (
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/api/validation"
|
||||
"k8s.io/kubernetes/pkg/client/metrics"
|
||||
"k8s.io/kubernetes/pkg/conversion/queryparams"
|
||||
@ -99,7 +100,7 @@ type Request struct {
|
||||
selector labels.Selector
|
||||
timeout time.Duration
|
||||
|
||||
apiVersion string
|
||||
groupVersion unversioned.GroupVersion
|
||||
|
||||
// output
|
||||
err error
|
||||
@ -111,14 +112,13 @@ type Request struct {
|
||||
}
|
||||
|
||||
// NewRequest creates a new request helper object for accessing runtime.Objects on a server.
|
||||
func NewRequest(client HTTPClient, verb string, baseURL *url.URL, apiVersion string,
|
||||
codec runtime.Codec) *Request {
|
||||
func NewRequest(client HTTPClient, verb string, baseURL *url.URL, groupVersion unversioned.GroupVersion, codec runtime.Codec) *Request {
|
||||
return &Request{
|
||||
client: client,
|
||||
verb: verb,
|
||||
baseURL: baseURL,
|
||||
path: baseURL.Path,
|
||||
apiVersion: apiVersion,
|
||||
groupVersion: groupVersion,
|
||||
codec: codec,
|
||||
}
|
||||
}
|
||||
@ -308,25 +308,25 @@ func (r resourceTypeToFieldMapping) filterField(resourceType, field, value strin
|
||||
return fMapping.filterField(field, value)
|
||||
}
|
||||
|
||||
type versionToResourceToFieldMapping map[string]resourceTypeToFieldMapping
|
||||
type versionToResourceToFieldMapping map[unversioned.GroupVersion]resourceTypeToFieldMapping
|
||||
|
||||
func (v versionToResourceToFieldMapping) filterField(apiVersion, resourceType, field, value string) (newField, newValue string, err error) {
|
||||
rMapping, ok := v[apiVersion]
|
||||
func (v versionToResourceToFieldMapping) filterField(groupVersion unversioned.GroupVersion, resourceType, field, value string) (newField, newValue string, err error) {
|
||||
rMapping, ok := v[groupVersion]
|
||||
if !ok {
|
||||
glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", apiVersion, resourceType, field, value)
|
||||
glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", groupVersion, resourceType, field, value)
|
||||
return field, value, nil
|
||||
}
|
||||
newField, newValue, err = rMapping.filterField(resourceType, field, value)
|
||||
if err != nil {
|
||||
// This is only a warning until we find and fix all of the client's usages.
|
||||
glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", apiVersion, resourceType, field, value)
|
||||
glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", groupVersion, resourceType, field, value)
|
||||
return field, value, nil
|
||||
}
|
||||
return newField, newValue, nil
|
||||
}
|
||||
|
||||
var fieldMappings = versionToResourceToFieldMapping{
|
||||
"v1": resourceTypeToFieldMapping{
|
||||
v1.SchemeGroupVersion: resourceTypeToFieldMapping{
|
||||
"nodes": clientFieldNameToAPIVersionFieldName{
|
||||
ObjectNameField: ObjectNameField,
|
||||
NodeUnschedulable: NodeUnschedulable,
|
||||
@ -371,13 +371,13 @@ func (r *Request) FieldsSelectorParam(s fields.Selector) *Request {
|
||||
return r
|
||||
}
|
||||
s2, err := s.Transform(func(field, value string) (newField, newValue string, err error) {
|
||||
return fieldMappings.filterField(r.apiVersion, r.resource, field, value)
|
||||
return fieldMappings.filterField(r.groupVersion, r.resource, field, value)
|
||||
})
|
||||
if err != nil {
|
||||
r.err = err
|
||||
return r
|
||||
}
|
||||
return r.setParam(unversioned.FieldSelectorQueryParam(r.apiVersion), s2.String())
|
||||
return r.setParam(unversioned.FieldSelectorQueryParam(r.groupVersion.String()), s2.String())
|
||||
}
|
||||
|
||||
// LabelsSelectorParam adds the given selector as a query parameter
|
||||
@ -391,7 +391,7 @@ func (r *Request) LabelsSelectorParam(s labels.Selector) *Request {
|
||||
if s.Empty() {
|
||||
return r
|
||||
}
|
||||
return r.setParam(unversioned.LabelSelectorQueryParam(r.apiVersion), s.String())
|
||||
return r.setParam(unversioned.LabelSelectorQueryParam(r.groupVersion.String()), s.String())
|
||||
}
|
||||
|
||||
// UintParam creates a query parameter with the given value.
|
||||
@ -417,7 +417,7 @@ func (r *Request) VersionedParams(obj runtime.Object, convertor runtime.ObjectCo
|
||||
if r.err != nil {
|
||||
return r
|
||||
}
|
||||
versioned, err := convertor.ConvertToVersion(obj, r.apiVersion)
|
||||
versioned, err := convertor.ConvertToVersion(obj, r.groupVersion.String())
|
||||
if err != nil {
|
||||
r.err = err
|
||||
return r
|
||||
@ -431,14 +431,14 @@ func (r *Request) VersionedParams(obj runtime.Object, convertor runtime.ObjectCo
|
||||
for _, value := range v {
|
||||
// TODO: Move it to setParam method, once we get rid of
|
||||
// FieldSelectorParam & LabelSelectorParam methods.
|
||||
if k == unversioned.LabelSelectorQueryParam(r.apiVersion) && value == "" {
|
||||
if k == unversioned.LabelSelectorQueryParam(r.groupVersion.String()) && value == "" {
|
||||
// Don't set an empty selector for backward compatibility.
|
||||
// Since there is no way to get the difference between empty
|
||||
// and unspecified string, we don't set it to avoid having
|
||||
// labelSelector= param in every request.
|
||||
continue
|
||||
}
|
||||
if k == unversioned.FieldSelectorQueryParam(r.apiVersion) {
|
||||
if k == unversioned.FieldSelectorQueryParam(r.groupVersion.String()) {
|
||||
if value == "" {
|
||||
// Don't set an empty selector for backward compatibility.
|
||||
// Since there is no way to get the difference between empty
|
||||
@ -454,7 +454,7 @@ func (r *Request) VersionedParams(obj runtime.Object, convertor runtime.ObjectCo
|
||||
}
|
||||
filteredSelector, err := selector.Transform(
|
||||
func(field, value string) (newField, newValue string, err error) {
|
||||
return fieldMappings.filterField(r.apiVersion, r.resource, field, value)
|
||||
return fieldMappings.filterField(r.groupVersion, r.resource, field, value)
|
||||
})
|
||||
if err != nil {
|
||||
r.err = fmt.Errorf("untransformable field selector: %v", err)
|
||||
|
@ -34,6 +34,7 @@ import (
|
||||
apierrors "k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
@ -46,7 +47,7 @@ import (
|
||||
func TestRequestWithErrorWontChange(t *testing.T) {
|
||||
original := Request{
|
||||
err: errors.New("test"),
|
||||
apiVersion: testapi.Default.Version(),
|
||||
groupVersion: *testapi.Default.GroupVersion(),
|
||||
}
|
||||
r := original
|
||||
changed := r.Param("foo", "bar").
|
||||
@ -177,7 +178,7 @@ func TestRequestParam(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRequestVersionedParams(t *testing.T) {
|
||||
r := (&Request{apiVersion: "v1"}).Param("foo", "a")
|
||||
r := (&Request{groupVersion: v1.SchemeGroupVersion}).Param("foo", "a")
|
||||
if !reflect.DeepEqual(r.params, url.Values{"foo": []string{"a"}}) {
|
||||
t.Errorf("should have set a param: %#v", r)
|
||||
}
|
||||
@ -193,7 +194,7 @@ func TestRequestVersionedParams(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRequestVersionedParamsFromListOptions(t *testing.T) {
|
||||
r := &Request{apiVersion: "v1"}
|
||||
r := &Request{groupVersion: v1.SchemeGroupVersion}
|
||||
r.VersionedParams(&unversioned.ListOptions{ResourceVersion: "1"}, api.Scheme)
|
||||
if !reflect.DeepEqual(r.params, url.Values{
|
||||
"resourceVersion": []string{"1"},
|
||||
@ -261,7 +262,7 @@ func TestResultIntoWithErrReturnsErr(t *testing.T) {
|
||||
|
||||
func TestURLTemplate(t *testing.T) {
|
||||
uri, _ := url.Parse("http://localhost")
|
||||
r := NewRequest(nil, "POST", uri, "test", nil)
|
||||
r := NewRequest(nil, "POST", uri, unversioned.GroupVersion{Group: "test"}, nil)
|
||||
r.Prefix("pre1").Resource("r1").Namespace("ns").Name("nm").Param("p0", "v0")
|
||||
full := r.URL()
|
||||
if full.String() != "http://localhost/pre1/namespaces/ns/r1/nm?p0=v0" {
|
||||
@ -322,7 +323,7 @@ func TestTransformResponse(t *testing.T) {
|
||||
{Response: &http.Response{StatusCode: 200, Body: ioutil.NopCloser(bytes.NewReader(invalid))}, Data: invalid},
|
||||
}
|
||||
for i, test := range testCases {
|
||||
r := NewRequest(nil, "", uri, testapi.Default.Version(), testapi.Default.Codec())
|
||||
r := NewRequest(nil, "", uri, *testapi.Default.GroupVersion(), testapi.Default.Codec())
|
||||
if test.Response.Body == nil {
|
||||
test.Response.Body = ioutil.NopCloser(bytes.NewReader([]byte{}))
|
||||
}
|
||||
@ -1029,7 +1030,7 @@ func TestUintParam(t *testing.T) {
|
||||
|
||||
for _, item := range table {
|
||||
u, _ := url.Parse("http://localhost")
|
||||
r := NewRequest(nil, "GET", u, "test", nil).AbsPath("").UintParam(item.name, item.testVal)
|
||||
r := NewRequest(nil, "GET", u, unversioned.GroupVersion{Group: "test"}, nil).AbsPath("").UintParam(item.name, item.testVal)
|
||||
if e, a := item.expectStr, r.URL().String(); e != a {
|
||||
t.Errorf("expected %v, got %v", e, a)
|
||||
}
|
||||
@ -1200,5 +1201,5 @@ func testRESTClient(t testing.TB, srv *httptest.Server) *RESTClient {
|
||||
}
|
||||
}
|
||||
baseURL.Path = testapi.Default.ResourcePath("", "", "")
|
||||
return NewRESTClient(baseURL, testapi.Default.GroupVersion().String(), testapi.Default.Codec(), 0, 0)
|
||||
return NewRESTClient(baseURL, *testapi.Default.GroupVersion(), testapi.Default.Codec(), 0, 0)
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
)
|
||||
@ -36,7 +37,7 @@ import (
|
||||
type RESTClient struct {
|
||||
baseURL *url.URL
|
||||
// A string identifying the version of the API this client is expected to use.
|
||||
apiVersion string
|
||||
groupVersion unversioned.GroupVersion
|
||||
|
||||
// Codec is the encoding and decoding scheme that applies to a particular set of
|
||||
// REST resources.
|
||||
@ -53,7 +54,7 @@ type RESTClient struct {
|
||||
// NewRESTClient creates a new RESTClient. This client performs generic REST functions
|
||||
// such as Get, Put, Post, and Delete on specified paths. Codec controls encoding and
|
||||
// decoding of responses from the server.
|
||||
func NewRESTClient(baseURL *url.URL, apiVersion string, c runtime.Codec, maxQPS float32, maxBurst int) *RESTClient {
|
||||
func NewRESTClient(baseURL *url.URL, groupVersion unversioned.GroupVersion, c runtime.Codec, maxQPS float32, maxBurst int) *RESTClient {
|
||||
base := *baseURL
|
||||
if !strings.HasSuffix(base.Path, "/") {
|
||||
base.Path += "/"
|
||||
@ -67,7 +68,7 @@ func NewRESTClient(baseURL *url.URL, apiVersion string, c runtime.Codec, maxQPS
|
||||
}
|
||||
return &RESTClient{
|
||||
baseURL: &base,
|
||||
apiVersion: apiVersion,
|
||||
groupVersion: groupVersion,
|
||||
Codec: c,
|
||||
Throttle: throttle,
|
||||
}
|
||||
@ -90,9 +91,9 @@ func (c *RESTClient) Verb(verb string) *Request {
|
||||
c.Throttle.Accept()
|
||||
}
|
||||
if c.Client == nil {
|
||||
return NewRequest(nil, verb, c.baseURL, c.apiVersion, c.Codec)
|
||||
return NewRequest(nil, verb, c.baseURL, c.groupVersion, c.Codec)
|
||||
}
|
||||
return NewRequest(c.Client, verb, c.baseURL, c.apiVersion, c.Codec)
|
||||
return NewRequest(c.Client, verb, c.baseURL, c.groupVersion, c.Codec)
|
||||
}
|
||||
|
||||
// Post begins a POST request. Short for c.Verb("POST").
|
||||
@ -121,6 +122,6 @@ func (c *RESTClient) Delete() *Request {
|
||||
}
|
||||
|
||||
// APIVersion returns the APIVersion this RESTClient is expected to use.
|
||||
func (c *RESTClient) APIVersion() string {
|
||||
return c.apiVersion
|
||||
func (c *RESTClient) APIVersion() unversioned.GroupVersion {
|
||||
return c.groupVersion
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user