mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
Remove pkg/client/unversioned
This commit is contained in:
parent
6e6c4ce1f2
commit
5d721bff81
@ -81,7 +81,6 @@ pkg/client/chaosclient
|
|||||||
pkg/client/informers/informers_generated/internalversion/internalinterfaces
|
pkg/client/informers/informers_generated/internalversion/internalinterfaces
|
||||||
pkg/client/leaderelectionconfig
|
pkg/client/leaderelectionconfig
|
||||||
pkg/client/tests
|
pkg/client/tests
|
||||||
pkg/client/unversioned/testclient/simple
|
|
||||||
pkg/cloudprovider
|
pkg/cloudprovider
|
||||||
pkg/cloudprovider/providers/aws
|
pkg/cloudprovider/providers/aws
|
||||||
pkg/cloudprovider/providers/fake
|
pkg/cloudprovider/providers/fake
|
||||||
|
@ -76,7 +76,6 @@ filegroup(
|
|||||||
"//pkg/client/metrics/prometheus:all-srcs",
|
"//pkg/client/metrics/prometheus:all-srcs",
|
||||||
"//pkg/client/testdata:all-srcs",
|
"//pkg/client/testdata:all-srcs",
|
||||||
"//pkg/client/tests:all-srcs",
|
"//pkg/client/tests:all-srcs",
|
||||||
"//pkg/client/unversioned:all-srcs",
|
|
||||||
"//pkg/cloudprovider:all-srcs",
|
"//pkg/cloudprovider:all-srcs",
|
||||||
"//pkg/controller:all-srcs",
|
"//pkg/controller:all-srcs",
|
||||||
"//pkg/credentialprovider:all-srcs",
|
"//pkg/credentialprovider:all-srcs",
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
package(default_visibility = ["//visibility:public"])
|
|
||||||
|
|
||||||
load(
|
|
||||||
"@io_bazel_rules_go//go:def.bzl",
|
|
||||||
"go_library",
|
|
||||||
"go_test",
|
|
||||||
)
|
|
||||||
|
|
||||||
go_library(
|
|
||||||
name = "go_default_library",
|
|
||||||
srcs = [
|
|
||||||
"conditions.go",
|
|
||||||
"helper.go",
|
|
||||||
],
|
|
||||||
importpath = "k8s.io/kubernetes/pkg/client/unversioned",
|
|
||||||
deps = [
|
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
|
||||||
"//pkg/api/pod:go_default_library",
|
|
||||||
"//pkg/apis/apps:go_default_library",
|
|
||||||
"//pkg/apis/batch:go_default_library",
|
|
||||||
"//pkg/apis/core:go_default_library",
|
|
||||||
"//pkg/apis/extensions:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
|
|
||||||
"//vendor/k8s.io/client-go/plugin/pkg/client/auth:go_default_library",
|
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
go_test(
|
|
||||||
name = "go_default_test",
|
|
||||||
srcs = ["helper_test.go"],
|
|
||||||
embed = [":go_default_library"],
|
|
||||||
deps = [
|
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
|
||||||
"//pkg/api/testapi:go_default_library",
|
|
||||||
"//pkg/apis/core:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "package-srcs",
|
|
||||||
srcs = glob(["**"]),
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "all-srcs",
|
|
||||||
srcs = [
|
|
||||||
":package-srcs",
|
|
||||||
"//pkg/client/unversioned/testclient/simple:all-srcs",
|
|
||||||
],
|
|
||||||
tags = ["automanaged"],
|
|
||||||
)
|
|
@ -1,38 +0,0 @@
|
|||||||
reviewers:
|
|
||||||
- thockin
|
|
||||||
- lavalamp
|
|
||||||
- smarterclayton
|
|
||||||
- wojtek-t
|
|
||||||
- deads2k
|
|
||||||
- derekwaynecarr
|
|
||||||
- caesarxuchao
|
|
||||||
- vishh
|
|
||||||
- mikedanese
|
|
||||||
- liggitt
|
|
||||||
- nikhiljindal
|
|
||||||
- ixdy
|
|
||||||
- gmarek
|
|
||||||
- erictune
|
|
||||||
- davidopp
|
|
||||||
- pmorie
|
|
||||||
- sttts
|
|
||||||
- saad-ali
|
|
||||||
- zmerlynn
|
|
||||||
- janetkuo
|
|
||||||
- ncdc
|
|
||||||
- tallclair
|
|
||||||
- mwielgus
|
|
||||||
- timothysc
|
|
||||||
- feiskyer
|
|
||||||
- jlowdermilk
|
|
||||||
- soltysh
|
|
||||||
- piosz
|
|
||||||
- dims
|
|
||||||
- errordeveloper
|
|
||||||
- madhusudancs
|
|
||||||
- hongchaodeng
|
|
||||||
- krousey
|
|
||||||
- jayunit100
|
|
||||||
- jszczepkowski
|
|
||||||
- jdef
|
|
||||||
- mml
|
|
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 The Kubernetes Authors.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
import (
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
// Import solely to initialize client auth plugins.
|
|
||||||
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
legacyAPIPath = "/api"
|
|
||||||
defaultAPIPath = "/apis"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SetKubernetesDefaults sets default values on the provided client config for accessing the
|
|
||||||
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
|
|
||||||
// TODO: this method needs to be split into one that sets defaults per group, expected to be fix in PR "Refactoring clientcache.go and helper.go #14592"
|
|
||||||
func SetKubernetesDefaults(config *restclient.Config) error {
|
|
||||||
if config.APIPath == "" {
|
|
||||||
config.APIPath = legacyAPIPath
|
|
||||||
}
|
|
||||||
// TODO chase down uses and tolerate nil
|
|
||||||
if config.GroupVersion == nil {
|
|
||||||
config.GroupVersion = &schema.GroupVersion{}
|
|
||||||
}
|
|
||||||
if config.NegotiatedSerializer == nil {
|
|
||||||
config.NegotiatedSerializer = legacyscheme.Codecs
|
|
||||||
}
|
|
||||||
return restclient.SetKubernetesDefaults(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
func setGroupDefaults(groupName string, config *restclient.Config) error {
|
|
||||||
config.APIPath = defaultAPIPath
|
|
||||||
if config.UserAgent == "" {
|
|
||||||
config.UserAgent = restclient.DefaultKubernetesUserAgent()
|
|
||||||
}
|
|
||||||
if config.GroupVersion == nil || config.GroupVersion.Group != groupName {
|
|
||||||
g, err := legacyscheme.Registry.Group(groupName)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
copyGroupVersion := g.GroupVersion
|
|
||||||
config.GroupVersion = ©GroupVersion
|
|
||||||
}
|
|
||||||
if config.NegotiatedSerializer == nil {
|
|
||||||
config.NegotiatedSerializer = legacyscheme.Codecs
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,183 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 The Kubernetes Authors.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"net/http"
|
|
||||||
"net/http/httptest"
|
|
||||||
"reflect"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestSetKubernetesDefaults(t *testing.T) {
|
|
||||||
testCases := []struct {
|
|
||||||
Config restclient.Config
|
|
||||||
After restclient.Config
|
|
||||||
Err bool
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
restclient.Config{},
|
|
||||||
restclient.Config{
|
|
||||||
APIPath: "/api",
|
|
||||||
ContentConfig: restclient.ContentConfig{
|
|
||||||
GroupVersion: &schema.GroupVersion{},
|
|
||||||
NegotiatedSerializer: testapi.Default.NegotiatedSerializer(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
false,
|
|
||||||
},
|
|
||||||
// Add this test back when we fixed config and SetKubernetesDefaults
|
|
||||||
// {
|
|
||||||
// restclient.Config{
|
|
||||||
// GroupVersion: &schema.GroupVersion{Group: "not.a.group", Version: "not_an_api"},
|
|
||||||
// },
|
|
||||||
// restclient.Config{},
|
|
||||||
// true,
|
|
||||||
// },
|
|
||||||
}
|
|
||||||
for _, testCase := range testCases {
|
|
||||||
val := &testCase.Config
|
|
||||||
err := SetKubernetesDefaults(val)
|
|
||||||
val.UserAgent = ""
|
|
||||||
switch {
|
|
||||||
case err == nil && testCase.Err:
|
|
||||||
t.Errorf("expected error but was nil")
|
|
||||||
continue
|
|
||||||
case err != nil && !testCase.Err:
|
|
||||||
t.Errorf("unexpected error %v", err)
|
|
||||||
continue
|
|
||||||
case err != nil:
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(*val, testCase.After) {
|
|
||||||
t.Errorf("unexpected result object: %#v", val)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestHelperGetServerAPIVersions(t *testing.T) {
|
|
||||||
expect := []string{"v1", "v2", "v3"}
|
|
||||||
APIVersions := metav1.APIVersions{Versions: expect}
|
|
||||||
expect = append(expect, "group1/v1", "group1/v2", "group2/v1", "group2/v2")
|
|
||||||
APIGroupList := metav1.APIGroupList{
|
|
||||||
Groups: []metav1.APIGroup{
|
|
||||||
{
|
|
||||||
Versions: []metav1.GroupVersionForDiscovery{
|
|
||||||
{
|
|
||||||
GroupVersion: "group1/v1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
GroupVersion: "group1/v2",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Versions: []metav1.GroupVersionForDiscovery{
|
|
||||||
{
|
|
||||||
GroupVersion: "group2/v1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
GroupVersion: "group2/v2",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
|
||||||
var output []byte
|
|
||||||
var err error
|
|
||||||
switch req.URL.Path {
|
|
||||||
case "/api":
|
|
||||||
output, err = json.Marshal(APIVersions)
|
|
||||||
|
|
||||||
case "/apis":
|
|
||||||
output, err = json.Marshal(APIGroupList)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("unexpected encoding error: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
w.Write(output)
|
|
||||||
}))
|
|
||||||
defer server.Close()
|
|
||||||
got, err := restclient.ServerAPIVersions(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "invalid version", Version: "one"}, NegotiatedSerializer: testapi.Default.NegotiatedSerializer()}})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unexpected encoding error: %v", err)
|
|
||||||
}
|
|
||||||
if e, a := expect, got; !reflect.DeepEqual(e, a) {
|
|
||||||
t.Errorf("expected %v, got %v", e, a)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSetsCodec(t *testing.T) {
|
|
||||||
testCases := map[string]struct {
|
|
||||||
Err bool
|
|
||||||
Prefix string
|
|
||||||
NegotiatedSerializer runtime.NegotiatedSerializer
|
|
||||||
}{
|
|
||||||
legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version: {
|
|
||||||
Err: false,
|
|
||||||
Prefix: "/api/" + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version,
|
|
||||||
NegotiatedSerializer: testapi.Default.NegotiatedSerializer(),
|
|
||||||
},
|
|
||||||
// Add this test back when we fixed config and SetKubernetesDefaults
|
|
||||||
// "invalidVersion": {true, "", nil},
|
|
||||||
}
|
|
||||||
for version, expected := range testCases {
|
|
||||||
conf := &restclient.Config{
|
|
||||||
Host: "127.0.0.1",
|
|
||||||
ContentConfig: restclient.ContentConfig{
|
|
||||||
GroupVersion: &schema.GroupVersion{Version: version},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var versionedPath string
|
|
||||||
err := SetKubernetesDefaults(conf)
|
|
||||||
if err == nil {
|
|
||||||
_, versionedPath, err = restclient.DefaultServerURL(conf.Host, conf.APIPath, *conf.GroupVersion, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case err == nil && expected.Err:
|
|
||||||
t.Errorf("expected error but was nil")
|
|
||||||
continue
|
|
||||||
case err != nil && !expected.Err:
|
|
||||||
t.Errorf("unexpected error %v", err)
|
|
||||||
continue
|
|
||||||
case err != nil:
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if e, a := expected.Prefix, versionedPath; e != a {
|
|
||||||
t.Errorf("expected %#v, got %#v", e, a)
|
|
||||||
}
|
|
||||||
if e, a := expected.NegotiatedSerializer, conf.NegotiatedSerializer; !reflect.DeepEqual(e, a) {
|
|
||||||
t.Errorf("expected %#v, got %#v", e, a)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
package(default_visibility = ["//visibility:public"])
|
|
||||||
|
|
||||||
load(
|
|
||||||
"@io_bazel_rules_go//go:def.bzl",
|
|
||||||
"go_library",
|
|
||||||
)
|
|
||||||
|
|
||||||
go_library(
|
|
||||||
name = "go_default_library",
|
|
||||||
srcs = ["simple_testclient.go"],
|
|
||||||
importpath = "k8s.io/kubernetes/pkg/client/unversioned/testclient/simple",
|
|
||||||
deps = [
|
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
|
||||||
"//pkg/api/testapi:go_default_library",
|
|
||||||
"//pkg/apis/core:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/fields:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
|
||||||
"//vendor/k8s.io/client-go/util/testing:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "package-srcs",
|
|
||||||
srcs = glob(["**"]),
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "all-srcs",
|
|
||||||
srcs = [":package-srcs"],
|
|
||||||
tags = ["automanaged"],
|
|
||||||
)
|
|
@ -1,224 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2015 The Kubernetes Authors.
|
|
||||||
|
|
||||||
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 simple
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http/httptest"
|
|
||||||
"net/url"
|
|
||||||
"path"
|
|
||||||
"reflect"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/fields"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
utiltesting "k8s.io/client-go/util/testing"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
|
||||||
)
|
|
||||||
|
|
||||||
const NameRequiredError = "resource name may not be empty"
|
|
||||||
|
|
||||||
type Request struct {
|
|
||||||
Method string
|
|
||||||
Path string
|
|
||||||
Header string
|
|
||||||
Query url.Values
|
|
||||||
Body runtime.Object
|
|
||||||
RawBody *string
|
|
||||||
}
|
|
||||||
|
|
||||||
type Response struct {
|
|
||||||
StatusCode int
|
|
||||||
Body runtime.Object
|
|
||||||
RawBody *string
|
|
||||||
}
|
|
||||||
|
|
||||||
type Client struct {
|
|
||||||
Clientset *clientset.Clientset
|
|
||||||
Request Request
|
|
||||||
Response Response
|
|
||||||
Error bool
|
|
||||||
Created bool
|
|
||||||
server *httptest.Server
|
|
||||||
handler *utiltesting.FakeHandler
|
|
||||||
// For query args, an optional function to validate the contents
|
|
||||||
// useful when the contents can change but still be correct.
|
|
||||||
// Maps from query arg key to validator.
|
|
||||||
// If no validator is present, string equality is used.
|
|
||||||
QueryValidator map[string]func(string, string) bool
|
|
||||||
|
|
||||||
// If your object could exist in multiple groups, set this to
|
|
||||||
// correspond to the URL you're testing it with.
|
|
||||||
ResourceGroup string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Setup(t *testing.T) *Client {
|
|
||||||
c.handler = &utiltesting.FakeHandler{
|
|
||||||
StatusCode: c.Response.StatusCode,
|
|
||||||
}
|
|
||||||
if responseBody := c.body(t, c.Response.Body, c.Response.RawBody); responseBody != nil {
|
|
||||||
c.handler.ResponseBody = *responseBody
|
|
||||||
}
|
|
||||||
c.server = httptest.NewServer(c.handler)
|
|
||||||
if c.Clientset == nil {
|
|
||||||
c.Clientset = clientset.NewForConfigOrDie(&restclient.Config{Host: c.server.URL})
|
|
||||||
}
|
|
||||||
c.QueryValidator = map[string]func(string, string) bool{}
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Close() {
|
|
||||||
if c.server != nil {
|
|
||||||
c.server.Close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) ServerURL() string {
|
|
||||||
return c.server.URL
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Validate(t *testing.T, received runtime.Object, err error) {
|
|
||||||
c.ValidateCommon(t, err)
|
|
||||||
|
|
||||||
if c.Response.Body != nil && !apiequality.Semantic.DeepDerivative(c.Response.Body, received) {
|
|
||||||
t.Errorf("bad response for request %#v: \nexpected %#v\ngot %#v\n", c.Request, c.Response.Body, received)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) ValidateRaw(t *testing.T, received []byte, err error) {
|
|
||||||
c.ValidateCommon(t, err)
|
|
||||||
|
|
||||||
if c.Response.Body != nil && !reflect.DeepEqual(c.Response.Body, received) {
|
|
||||||
t.Errorf("bad response for request %#v: expected %#v, got %#v", c.Request, c.Response.Body, received)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) ValidateCommon(t *testing.T, err error) {
|
|
||||||
if c.Error {
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("error expected for %#v, got none", c.Request)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("no error expected for %#v, got: %v", c.Request, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if c.handler.RequestReceived == nil {
|
|
||||||
t.Errorf("handler had an empty request, %#v", c)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
requestBody := c.body(t, c.Request.Body, c.Request.RawBody)
|
|
||||||
actualQuery := c.handler.RequestReceived.URL.Query()
|
|
||||||
t.Logf("got query: %v", actualQuery)
|
|
||||||
t.Logf("path: %v", c.Request.Path)
|
|
||||||
// We check the query manually, so blank it out so that FakeHandler.ValidateRequest
|
|
||||||
// won't check it.
|
|
||||||
c.handler.RequestReceived.URL.RawQuery = ""
|
|
||||||
c.handler.ValidateRequest(t, path.Join(c.Request.Path), c.Request.Method, requestBody)
|
|
||||||
for key, values := range c.Request.Query {
|
|
||||||
validator, ok := c.QueryValidator[key]
|
|
||||||
if !ok {
|
|
||||||
switch key {
|
|
||||||
case metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()):
|
|
||||||
validator = ValidateLabels
|
|
||||||
case metav1.FieldSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()):
|
|
||||||
validator = validateFields
|
|
||||||
default:
|
|
||||||
validator = func(a, b string) bool { return a == b }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
observed := actualQuery.Get(key)
|
|
||||||
wanted := strings.Join(values, "")
|
|
||||||
if !validator(wanted, observed) {
|
|
||||||
t.Errorf("Unexpected query arg for key: %s. Expected %s, Received %s", key, wanted, observed)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if c.Request.Header != "" {
|
|
||||||
if c.handler.RequestReceived.Header.Get(c.Request.Header) == "" {
|
|
||||||
t.Errorf("header %q not found in request %#v", c.Request.Header, c.handler.RequestReceived)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if expected, received := requestBody, c.handler.RequestBody; expected != nil && *expected != received {
|
|
||||||
t.Errorf("bad body for request %#v: expected %s, got %s", c.Request, *expected, received)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// buildQueryValues is a convenience function for knowing if a namespace should be in a query param or not
|
|
||||||
func BuildQueryValues(query url.Values) url.Values {
|
|
||||||
v := url.Values{}
|
|
||||||
if query != nil {
|
|
||||||
for key, values := range query {
|
|
||||||
for _, value := range values {
|
|
||||||
v.Add(key, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
|
|
||||||
func ValidateLabels(a, b string) bool {
|
|
||||||
sA, eA := labels.Parse(a)
|
|
||||||
if eA != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
sB, eB := labels.Parse(b)
|
|
||||||
if eB != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return sA.String() == sB.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
func validateFields(a, b string) bool {
|
|
||||||
sA, _ := fields.ParseSelector(a)
|
|
||||||
sB, _ := fields.ParseSelector(b)
|
|
||||||
return sA.String() == sB.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) body(t *testing.T, obj runtime.Object, raw *string) *string {
|
|
||||||
if obj != nil {
|
|
||||||
fqKinds, _, err := legacyscheme.Scheme.ObjectKinds(obj)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("unexpected encoding error: %v", err)
|
|
||||||
}
|
|
||||||
groupName := fqKinds[0].GroupVersion().Group
|
|
||||||
if c.ResourceGroup != "" {
|
|
||||||
groupName = c.ResourceGroup
|
|
||||||
}
|
|
||||||
var bs []byte
|
|
||||||
g, found := testapi.Groups[groupName]
|
|
||||||
if !found {
|
|
||||||
t.Errorf("Group %s is not registered in testapi", groupName)
|
|
||||||
}
|
|
||||||
bs, err = runtime.Encode(g.Codec(), obj)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("unexpected encoding error: %v", err)
|
|
||||||
}
|
|
||||||
body := string(bs)
|
|
||||||
return &body
|
|
||||||
}
|
|
||||||
return raw
|
|
||||||
}
|
|
@ -98,6 +98,7 @@ go_library(
|
|||||||
"autoscale.go",
|
"autoscale.go",
|
||||||
"bash_comp_utils.go",
|
"bash_comp_utils.go",
|
||||||
"clusterrolebinding.go",
|
"clusterrolebinding.go",
|
||||||
|
"conditions.go",
|
||||||
"configmap.go",
|
"configmap.go",
|
||||||
"delete.go",
|
"delete.go",
|
||||||
"deployment.go",
|
"deployment.go",
|
||||||
@ -129,6 +130,7 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/kubectl",
|
importpath = "k8s.io/kubernetes/pkg/kubectl",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
|
"//pkg/api/pod:go_default_library",
|
||||||
"//pkg/api/v1/pod:go_default_library",
|
"//pkg/api/v1/pod:go_default_library",
|
||||||
"//pkg/apis/apps:go_default_library",
|
"//pkg/apis/apps:go_default_library",
|
||||||
"//pkg/apis/batch:go_default_library",
|
"//pkg/apis/batch:go_default_library",
|
||||||
@ -140,7 +142,6 @@ go_library(
|
|||||||
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library",
|
||||||
"//pkg/client/unversioned:go_default_library",
|
|
||||||
"//pkg/controller/daemon:go_default_library",
|
"//pkg/controller/daemon:go_default_library",
|
||||||
"//pkg/controller/deployment/util:go_default_library",
|
"//pkg/controller/deployment/util:go_default_library",
|
||||||
"//pkg/controller/statefulset:go_default_library",
|
"//pkg/controller/statefulset:go_default_library",
|
||||||
|
@ -74,7 +74,6 @@ go_library(
|
|||||||
"//pkg/apis/core/validation:go_default_library",
|
"//pkg/apis/core/validation:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||||
"//pkg/client/unversioned:go_default_library",
|
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
"//pkg/kubectl/apply/parse:go_default_library",
|
"//pkg/kubectl/apply/parse:go_default_library",
|
||||||
"//pkg/kubectl/apply/strategy:go_default_library",
|
"//pkg/kubectl/apply/strategy:go_default_library",
|
||||||
|
@ -34,7 +34,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||||
conditions "k8s.io/kubernetes/pkg/client/unversioned"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -340,7 +339,7 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c
|
|||||||
leaveStdinOpen := cmdutil.GetFlagBool(cmd, "leave-stdin-open")
|
leaveStdinOpen := cmdutil.GetFlagBool(cmd, "leave-stdin-open")
|
||||||
waitForExitCode := !leaveStdinOpen && restartPolicy == api.RestartPolicyNever
|
waitForExitCode := !leaveStdinOpen && restartPolicy == api.RestartPolicyNever
|
||||||
if waitForExitCode {
|
if waitForExitCode {
|
||||||
pod, err = waitForPod(clientset.Core(), attachablePod.Namespace, attachablePod.Name, conditions.PodCompleted)
|
pod, err = waitForPod(clientset.Core(), attachablePod.Namespace, attachablePod.Name, kubectl.PodCompleted)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -443,8 +442,8 @@ func waitForPod(podClient coreclient.PodsGetter, ns, name string, exitCondition
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleAttachPod(f cmdutil.Factory, podClient coreclient.PodsGetter, ns, name string, opts *AttachOptions) error {
|
func handleAttachPod(f cmdutil.Factory, podClient coreclient.PodsGetter, ns, name string, opts *AttachOptions) error {
|
||||||
pod, err := waitForPod(podClient, ns, name, conditions.PodRunningAndReady)
|
pod, err := waitForPod(podClient, ns, name, kubectl.PodRunningAndReady)
|
||||||
if err != nil && err != conditions.ErrPodCompleted {
|
if err != nil && err != kubectl.ErrPodCompleted {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,6 @@ go_library(
|
|||||||
"//pkg/apis/extensions:go_default_library",
|
"//pkg/apis/extensions:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||||
"//pkg/client/unversioned:go_default_library",
|
|
||||||
"//pkg/controller:go_default_library",
|
"//pkg/controller:go_default_library",
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
"//pkg/kubectl/categories:go_default_library",
|
"//pkg/kubectl/categories:go_default_library",
|
||||||
|
@ -24,8 +24,8 @@ import (
|
|||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
oldclient "k8s.io/kubernetes/pkg/client/unversioned"
|
|
||||||
"k8s.io/kubernetes/pkg/version"
|
"k8s.io/kubernetes/pkg/version"
|
||||||
metricsclientset "k8s.io/metrics/pkg/client/clientset_generated/clientset"
|
metricsclientset "k8s.io/metrics/pkg/client/clientset_generated/clientset"
|
||||||
)
|
)
|
||||||
@ -179,7 +179,7 @@ func (c *ClientCache) clientConfigForVersion(requiredVersion *schema.GroupVersio
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO this isn't what we want. Each clientset should be setting defaults as it sees fit.
|
// TODO this isn't what we want. Each clientset should be setting defaults as it sees fit.
|
||||||
oldclient.SetKubernetesDefaults(&config)
|
setKubernetesDefaults(&config)
|
||||||
|
|
||||||
if requiredVersion != nil {
|
if requiredVersion != nil {
|
||||||
c.configs[*requiredVersion] = copyConfig(&config)
|
c.configs[*requiredVersion] = copyConfig(&config)
|
||||||
@ -194,6 +194,22 @@ func (c *ClientCache) clientConfigForVersion(requiredVersion *schema.GroupVersio
|
|||||||
return copyConfig(&config), nil
|
return copyConfig(&config), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setKubernetesDefaults sets default values on the provided client config for accessing the
|
||||||
|
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
|
||||||
|
func setKubernetesDefaults(config *restclient.Config) error {
|
||||||
|
if config.APIPath == "" {
|
||||||
|
config.APIPath = "/api"
|
||||||
|
}
|
||||||
|
// TODO chase down uses and tolerate nil
|
||||||
|
if config.GroupVersion == nil {
|
||||||
|
config.GroupVersion = &schema.GroupVersion{}
|
||||||
|
}
|
||||||
|
if config.NegotiatedSerializer == nil {
|
||||||
|
config.NegotiatedSerializer = legacyscheme.Codecs
|
||||||
|
}
|
||||||
|
return restclient.SetKubernetesDefaults(config)
|
||||||
|
}
|
||||||
|
|
||||||
func copyConfig(in *restclient.Config) *restclient.Config {
|
func copyConfig(in *restclient.Config) *restclient.Config {
|
||||||
configCopy := *in
|
configCopy := *in
|
||||||
copyGroupVersion := *configCopy.GroupVersion
|
copyGroupVersion := *configCopy.GroupVersion
|
||||||
|
@ -43,7 +43,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apis/batch"
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
|
||||||
"k8s.io/kubernetes/pkg/controller"
|
"k8s.io/kubernetes/pkg/controller"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/categories"
|
"k8s.io/kubernetes/pkg/kubectl/categories"
|
||||||
@ -132,7 +131,7 @@ func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RES
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := client.SetKubernetesDefaults(cfg); err != nil {
|
if err := setKubernetesDefaults(cfg); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
gvk := mapping.GroupVersionKind
|
gvk := mapping.GroupVersionKind
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package kubectl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
@ -588,7 +588,7 @@ func (c *reaperCoreFake) Pods(namespace string) coreclient.PodInterface {
|
|||||||
return pods
|
return pods
|
||||||
}
|
}
|
||||||
|
|
||||||
func pod() *api.Pod {
|
func newPod() *api.Pod {
|
||||||
return &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}}
|
return &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ func TestSimpleStop(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
fake: &reaperFake{
|
fake: &reaperFake{
|
||||||
Clientset: fake.NewSimpleClientset(pod()),
|
Clientset: fake.NewSimpleClientset(newPod()),
|
||||||
},
|
},
|
||||||
kind: api.Kind("Pod"),
|
kind: api.Kind("Pod"),
|
||||||
actions: []testcore.Action{
|
actions: []testcore.Action{
|
||||||
@ -624,7 +624,7 @@ func TestSimpleStop(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
fake: &reaperFake{
|
fake: &reaperFake{
|
||||||
Clientset: fake.NewSimpleClientset(pod()),
|
Clientset: fake.NewSimpleClientset(newPod()),
|
||||||
noDeletePod: true,
|
noDeletePod: true,
|
||||||
},
|
},
|
||||||
kind: api.Kind("Pod"),
|
kind: api.Kind("Pod"),
|
||||||
|
@ -36,7 +36,6 @@ import (
|
|||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
apiv1 "k8s.io/kubernetes/pkg/apis/core/v1"
|
apiv1 "k8s.io/kubernetes/pkg/apis/core/v1"
|
||||||
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
|
||||||
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util"
|
"k8s.io/kubernetes/pkg/kubectl/util"
|
||||||
)
|
)
|
||||||
@ -513,7 +512,7 @@ func (r *RollingUpdater) cleanupWithClients(oldRc, newRc *api.ReplicationControl
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = wait.Poll(config.Interval, config.Timeout, client.ControllerHasDesiredReplicas(r.rcClient, newRc)); err != nil {
|
if err = wait.Poll(config.Interval, config.Timeout, ControllerHasDesiredReplicas(r.rcClient, newRc)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
newRc, err = r.rcClient.ReplicationControllers(r.ns).Get(newRc.Name, metav1.GetOptions{})
|
newRc, err = r.rcClient.ReplicationControllers(r.ns).Get(newRc.Name, metav1.GetOptions{})
|
||||||
|
@ -38,7 +38,6 @@ import (
|
|||||||
batchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion"
|
batchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion"
|
||||||
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||||
extensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion"
|
extensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Scaler provides an interface for resources that can be scaled.
|
// Scaler provides an interface for resources that can be scaled.
|
||||||
@ -311,7 +310,7 @@ func (scaler *ReplicaSetScaler) Scale(namespace, name string, newSize uint, prec
|
|||||||
if rs.Initializers != nil {
|
if rs.Initializers != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.ReplicaSetHasDesiredReplicas(scaler.c, rs))
|
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, ReplicaSetHasDesiredReplicas(scaler.c, rs))
|
||||||
|
|
||||||
if err == wait.ErrWaitTimeout {
|
if err == wait.ErrWaitTimeout {
|
||||||
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
||||||
@ -383,7 +382,7 @@ func (scaler *StatefulSetScaler) Scale(namespace, name string, newSize uint, pre
|
|||||||
if job.Initializers != nil {
|
if job.Initializers != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.StatefulSetHasDesiredReplicas(scaler.c, job))
|
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, StatefulSetHasDesiredReplicas(scaler.c, job))
|
||||||
if err == wait.ErrWaitTimeout {
|
if err == wait.ErrWaitTimeout {
|
||||||
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
||||||
}
|
}
|
||||||
@ -440,7 +439,7 @@ func (scaler *jobScaler) Scale(namespace, name string, newSize uint, preconditio
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.JobHasDesiredParallelism(scaler.c, job))
|
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, JobHasDesiredParallelism(scaler.c, job))
|
||||||
if err == wait.ErrWaitTimeout {
|
if err == wait.ErrWaitTimeout {
|
||||||
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
||||||
}
|
}
|
||||||
@ -511,7 +510,7 @@ func (scaler *DeploymentScaler) Scale(namespace, name string, newSize uint, prec
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.DeploymentHasDesiredReplicas(scaler.c, deployment))
|
err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, DeploymentHasDesiredReplicas(scaler.c, deployment))
|
||||||
if err == wait.ErrWaitTimeout {
|
if err == wait.ErrWaitTimeout {
|
||||||
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
return fmt.Errorf("timed out waiting for %q to be synced", name)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user