mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #60154 from deads2k/cli-11-decoder
Automatic merge from submit-queue (batch tested with PRs 60148, 60022, 59125, 60068, 60154). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. remove unneeded factory codec methods Builds on https://github.com/kubernetes/kubernetes/pull/60117, so only the last commit is unique. After we collapsed onto our own internal scheme for managing conversion and typing, the flexibility in codecs is the next area to collapse. This pull eliminates those methods from the factory and then removes lots of dead code in the fake factories that supported this un-used flexibility @kubernetes/sig-cli-maintainers @pwittrock @adohe @soltysh looking cleaner all the time. ```release-note NONE ```
This commit is contained in:
commit
f331434774
@ -28,7 +28,9 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestValidateAnnotationOverwrites(t *testing.T) {
|
func TestValidateAnnotationOverwrites(t *testing.T) {
|
||||||
@ -415,7 +417,7 @@ func TestAnnotateErrors(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, testCase := range testCases {
|
for k, testCase := range testCases {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
@ -444,7 +446,9 @@ func TestAnnotateErrors(t *testing.T) {
|
|||||||
func TestAnnotateObject(t *testing.T) {
|
func TestAnnotateObject(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -494,7 +498,9 @@ func TestAnnotateObject(t *testing.T) {
|
|||||||
func TestAnnotateObjectFromFile(t *testing.T) {
|
func TestAnnotateObjectFromFile(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -543,7 +549,7 @@ func TestAnnotateObjectFromFile(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAnnotateLocal(t *testing.T) {
|
func TestAnnotateLocal(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -574,7 +580,8 @@ func TestAnnotateLocal(t *testing.T) {
|
|||||||
func TestAnnotateMultipleObjects(t *testing.T) {
|
func TestAnnotateMultipleObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
|
@ -241,8 +241,8 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti
|
|||||||
output := cmdutil.GetFlagString(cmd, "output")
|
output := cmdutil.GetFlagString(cmd, "output")
|
||||||
shortOutput := output == "name"
|
shortOutput := output == "name"
|
||||||
|
|
||||||
encoder := f.JSONEncoder()
|
encoder := scheme.DefaultJSONEncoder()
|
||||||
decoder := f.Decoder(false)
|
deserializer := scheme.Codecs.UniversalDeserializer()
|
||||||
mapper := r.Mapper().RESTMapper
|
mapper := r.Mapper().RESTMapper
|
||||||
|
|
||||||
visitedUids := sets.NewString()
|
visitedUids := sets.NewString()
|
||||||
@ -316,7 +316,7 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti
|
|||||||
helper := resource.NewHelper(info.Client, info.Mapping)
|
helper := resource.NewHelper(info.Client, info.Mapping)
|
||||||
patcher := &patcher{
|
patcher := &patcher{
|
||||||
encoder: encoder,
|
encoder: encoder,
|
||||||
decoder: decoder,
|
decoder: deserializer,
|
||||||
mapping: info.Mapping,
|
mapping: info.Mapping,
|
||||||
helper: helper,
|
helper: helper,
|
||||||
clientFunc: f.UnstructuredClientForMapping,
|
clientFunc: f.UnstructuredClientForMapping,
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,7 +52,6 @@ type SetLastAppliedOptions struct {
|
|||||||
ShortOutput bool
|
ShortOutput bool
|
||||||
CreateAnnotation bool
|
CreateAnnotation bool
|
||||||
Output string
|
Output string
|
||||||
Codec runtime.Encoder
|
|
||||||
PatchBufferList []PatchBuffer
|
PatchBufferList []PatchBuffer
|
||||||
Factory cmdutil.Factory
|
Factory cmdutil.Factory
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
@ -110,7 +110,6 @@ func (o *SetLastAppliedOptions) Complete(f cmdutil.Factory, cmd *cobra.Command)
|
|||||||
o.DryRun = cmdutil.GetDryRunFlag(cmd)
|
o.DryRun = cmdutil.GetDryRunFlag(cmd)
|
||||||
o.Output = cmdutil.GetFlagString(cmd, "output")
|
o.Output = cmdutil.GetFlagString(cmd, "output")
|
||||||
o.ShortOutput = o.Output == "name"
|
o.ShortOutput = o.Output == "name"
|
||||||
o.Codec = f.JSONEncoder()
|
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
o.Mapper, o.Typer = f.Object()
|
o.Mapper, o.Typer = f.Object()
|
||||||
@ -134,7 +133,7 @@ func (o *SetLastAppliedOptions) Validate(f cmdutil.Factory, cmd *cobra.Command)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
patchBuf, diffBuf, patchType, err := editor.GetApplyPatch(info.Object, o.Codec)
|
patchBuf, diffBuf, patchType, err := editor.GetApplyPatch(info.Object, scheme.DefaultJSONEncoder())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -224,7 +223,7 @@ func (o *SetLastAppliedOptions) getPatch(info *resource.Info) ([]byte, []byte, e
|
|||||||
objMap := map[string]map[string]map[string]string{}
|
objMap := map[string]map[string]map[string]string{}
|
||||||
metadataMap := map[string]map[string]string{}
|
metadataMap := map[string]map[string]string{}
|
||||||
annotationsMap := map[string]string{}
|
annotationsMap := map[string]string{}
|
||||||
localFile, err := runtime.Encode(o.Codec, info.Object)
|
localFile, err := runtime.Encode(scheme.DefaultJSONEncoder(), info.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, localFile, err
|
return nil, localFile, err
|
||||||
}
|
}
|
||||||
|
@ -38,12 +38,14 @@ import (
|
|||||||
sptest "k8s.io/apimachinery/pkg/util/strategicpatch/testing"
|
sptest "k8s.io/apimachinery/pkg/util/strategicpatch/testing"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
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"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -65,7 +67,7 @@ func TestApplyExtraArgsFail(t *testing.T) {
|
|||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
c := NewCmdApply("kubectl", f, buf, errBuf)
|
c := NewCmdApply("kubectl", f, buf, errBuf)
|
||||||
if validateApplyArgs(c, []string{"rc"}) == nil {
|
if validateApplyArgs(c, []string{"rc"}) == nil {
|
||||||
t.Fatalf("unexpected non-error")
|
t.Fatalf("unexpected non-error")
|
||||||
@ -329,7 +331,9 @@ func TestRunApplyViewLastApplied(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -384,7 +388,7 @@ func TestApplyObjectWithoutAnnotation(t *testing.T) {
|
|||||||
nameRC, rcBytes := readReplicationController(t, filenameRC)
|
nameRC, rcBytes := readReplicationController(t, filenameRC)
|
||||||
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -428,7 +432,7 @@ func TestApplyObject(t *testing.T) {
|
|||||||
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -489,7 +493,7 @@ func TestApplyObjectOutput(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -538,7 +542,7 @@ func TestApplyRetry(t *testing.T) {
|
|||||||
firstPatch := true
|
firstPatch := true
|
||||||
retry := false
|
retry := false
|
||||||
getCount := 0
|
getCount := 0
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -595,7 +599,7 @@ func TestApplyNonExistObject(t *testing.T) {
|
|||||||
pathRC := "/namespaces/test/replicationcontrollers"
|
pathRC := "/namespaces/test/replicationcontrollers"
|
||||||
pathNameRC := pathRC + "/" + nameRC
|
pathNameRC := pathRC + "/" + nameRC
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -639,7 +643,7 @@ func TestApplyEmptyPatch(t *testing.T) {
|
|||||||
|
|
||||||
var body []byte
|
var body []byte
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -713,7 +717,7 @@ func testApplyMultipleObjects(t *testing.T, asList bool) {
|
|||||||
pathSVC := "/namespaces/test/services/" + nameSVC
|
pathSVC := "/namespaces/test/services/" + nameSVC
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -796,7 +800,7 @@ func TestApplyNULLPreservation(t *testing.T) {
|
|||||||
deploymentBytes := readDeploymentFromFile(t, filenameDeployObjServerside)
|
deploymentBytes := readDeploymentFromFile(t, filenameDeployObjServerside)
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -868,7 +872,7 @@ func TestUnstructuredApply(t *testing.T) {
|
|||||||
verifiedPatch := false
|
verifiedPatch := false
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -935,7 +939,7 @@ func TestUnstructuredIdempotentApply(t *testing.T) {
|
|||||||
verifiedPatch := false
|
verifiedPatch := false
|
||||||
|
|
||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -1063,7 +1067,9 @@ func TestRunApplySetLastApplied(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -1153,7 +1159,7 @@ func TestForceApply(t *testing.T) {
|
|||||||
for _, fn := range testingOpenAPISchemaFns {
|
for _, fn := range testingOpenAPISchemaFns {
|
||||||
deleted := false
|
deleted := false
|
||||||
counts := map[string]int{}
|
counts := map[string]int{}
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -38,6 +38,7 @@ import (
|
|||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
type fakeRemoteAttach struct {
|
type fakeRemoteAttach struct {
|
||||||
@ -138,7 +139,10 @@ func TestPodAndContainerAttach(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -215,7 +219,10 @@ func TestAttach(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -302,7 +309,10 @@ func TestAttachWarnings(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -52,6 +52,7 @@ go_test(
|
|||||||
srcs = ["cani_test.go"],
|
srcs = ["cani_test.go"],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/kubectl/cmd/testing:go_default_library",
|
"//pkg/kubectl/cmd/testing:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
"//vendor/k8s.io/client-go/rest:go_default_library",
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -119,7 +120,9 @@ func TestRunAccessCheck(t *testing.T) {
|
|||||||
test.o.Out = ioutil.Discard
|
test.o.Out = ioutil.Discard
|
||||||
test.o.Err = ioutil.Discard
|
test.o.Err = ioutil.Discard
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -143,7 +143,7 @@ func RunAutoscale(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
|
|||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
||||||
Decoder: f.Decoder(true),
|
Decoder: cmdutil.InternalVersionDecoder(),
|
||||||
}
|
}
|
||||||
hpa, err := resourceMapper.InfoForObject(object, nil)
|
hpa, err := resourceMapper.InfoForObject(object, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -159,7 +159,7 @@ func RunAutoscale(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
|
|||||||
return cmdutil.PrintObject(cmd, object, out)
|
return cmdutil.PrintObject(cmd, object, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), hpa, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), hpa, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ func TestSetupOutputWriterNoOp(t *testing.T) {
|
|||||||
tests := []string{"", "-"}
|
tests := []string{"", "-"}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
out := &bytes.Buffer{}
|
out := &bytes.Buffer{}
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
cmd := NewCmdClusterInfoDump(f, os.Stdout)
|
cmd := NewCmdClusterInfoDump(f, os.Stdout)
|
||||||
cmd.Flag("output-directory").Value.Set(test)
|
cmd.Flag("output-directory").Value.Set(test)
|
||||||
writer := setupOutputWriter(cmd, out, "/some/file/that/should/be/ignored")
|
writer := setupOutputWriter(cmd, out, "/some/file/that/should/be/ignored")
|
||||||
@ -50,7 +50,7 @@ func TestSetupOutputWriterFile(t *testing.T) {
|
|||||||
defer os.RemoveAll(dir)
|
defer os.RemoveAll(dir)
|
||||||
|
|
||||||
out := &bytes.Buffer{}
|
out := &bytes.Buffer{}
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
cmd := NewCmdClusterInfoDump(f, os.Stdout)
|
cmd := NewCmdClusterInfoDump(f, os.Stdout)
|
||||||
cmd.Flag("output-directory").Value.Set(dir)
|
cmd.Flag("output-directory").Value.Set(dir)
|
||||||
writer := setupOutputWriter(cmd, out, file)
|
writer := setupOutputWriter(cmd, out, file)
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
@ -176,7 +177,9 @@ func stringBody(body string) io.ReadCloser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printMultiContainersReplicationControllerWithWide() {
|
func Example_printMultiContainersReplicationControllerWithWide() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -224,7 +227,9 @@ func Example_printMultiContainersReplicationControllerWithWide() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printReplicationController() {
|
func Example_printReplicationController() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -271,7 +276,9 @@ func Example_printReplicationController() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printPodWithWideFormat() {
|
func Example_printPodWithWideFormat() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -307,7 +314,9 @@ func Example_printPodWithWideFormat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printPodWithShowLabels() {
|
func Example_printPodWithShowLabels() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -438,7 +447,9 @@ func newAllPhasePodList() *api.PodList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printPodHideTerminated() {
|
func Example_printPodHideTerminated() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -470,7 +481,9 @@ func Example_printPodHideTerminated() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printPodShowAll() {
|
func Example_printPodShowAll() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
@ -491,7 +504,9 @@ func Example_printPodShowAll() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Example_printServiceWithLabels() {
|
func Example_printServiceWithLabels() {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
|
@ -96,7 +96,6 @@ type ConvertOptions struct {
|
|||||||
builder *resource.Builder
|
builder *resource.Builder
|
||||||
local bool
|
local bool
|
||||||
|
|
||||||
encoder runtime.Encoder
|
|
||||||
out io.Writer
|
out io.Writer
|
||||||
printer printers.ResourcePrinter
|
printer printers.ResourcePrinter
|
||||||
|
|
||||||
@ -155,7 +154,6 @@ func (o *ConvertOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.C
|
|||||||
// TODO: once printing is abstracted, this should be handled at flag declaration time
|
// TODO: once printing is abstracted, this should be handled at flag declaration time
|
||||||
cmd.Flags().Set("output", outputFormat)
|
cmd.Flags().Set("output", outputFormat)
|
||||||
}
|
}
|
||||||
o.encoder = f.JSONEncoder()
|
|
||||||
o.printer, err = cmdutil.PrinterForOptions(cmdutil.ExtractCmdPrintOptions(cmd, false))
|
o.printer, err = cmdutil.PrinterForOptions(cmdutil.ExtractCmdPrintOptions(cmd, false))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -178,7 +176,7 @@ func (o *ConvertOptions) RunConvert() error {
|
|||||||
return fmt.Errorf("no objects passed to convert")
|
return fmt.Errorf("no objects passed to convert")
|
||||||
}
|
}
|
||||||
|
|
||||||
objects, err := asVersionedObject(infos, !singleItemImplied, o.specifiedOutputVersion, o.encoder)
|
objects, err := asVersionedObject(infos, !singleItemImplied, o.specifiedOutputVersion, cmdutil.InternalVersionJSONEncoder())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ func TestConvertObject(t *testing.T) {
|
|||||||
for _, tc := range testcases {
|
for _, tc := range testcases {
|
||||||
for _, field := range tc.fields {
|
for _, field := range tc.fields {
|
||||||
t.Run(fmt.Sprintf("%s %s", tc.name, field), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%s %s", tc.name, field), func(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
|
@ -191,7 +191,7 @@ func (o *CreateOptions) RunCreate(f cmdutil.Factory, cmd *cobra.Command) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return cmdutil.AddSourceToErr("creating", info.Source, err)
|
return cmdutil.AddSourceToErr("creating", info.Source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ func RunCreateSubcommand(f cmdutil.Factory, cmd *cobra.Command, out io.Writer, o
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
obj = info.Object
|
obj = info.Object
|
||||||
|
@ -32,7 +32,7 @@ import (
|
|||||||
func TestCreateClusterRole(t *testing.T) {
|
func TestCreateClusterRole(t *testing.T) {
|
||||||
clusterRoleName := "my-cluster-role"
|
clusterRoleName := "my-cluster-role"
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.Client = &fake.RESTClient{}
|
tf.Client = &fake.RESTClient{}
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
@ -147,7 +147,7 @@ func TestCreateClusterRole(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestClusterRoleValidate(t *testing.T) {
|
func TestClusterRoleValidate(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
|
@ -30,6 +30,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,7 +67,8 @@ func TestCreateClusterRoleBinding(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON)
|
info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON)
|
||||||
encoder := ns.EncoderForVersion(info.Serializer, groupVersion)
|
encoder := ns.EncoderForVersion(info.Serializer, groupVersion)
|
||||||
|
@ -24,13 +24,18 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateConfigMap(t *testing.T) {
|
func TestCreateConfigMap(t *testing.T) {
|
||||||
configMap := &v1.ConfigMap{}
|
configMap := &v1.ConfigMap{}
|
||||||
configMap.Name = "my-configmap"
|
configMap.Name = "my-configmap"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
|
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -73,7 +74,9 @@ func Test_generatorFromName(t *testing.T) {
|
|||||||
|
|
||||||
func TestCreateDeployment(t *testing.T) {
|
func TestCreateDeployment(t *testing.T) {
|
||||||
depName := "jonny-dep"
|
depName := "jonny-dep"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -100,7 +103,9 @@ func TestCreateDeployment(t *testing.T) {
|
|||||||
|
|
||||||
func TestCreateDeploymentNoImage(t *testing.T) {
|
func TestCreateDeploymentNoImage(t *testing.T) {
|
||||||
depName := "jonny-dep"
|
depName := "jonny-dep"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -24,13 +24,18 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateNamespace(t *testing.T) {
|
func TestCreateNamespace(t *testing.T) {
|
||||||
namespaceObject := &v1.Namespace{}
|
namespaceObject := &v1.Namespace{}
|
||||||
namespaceObject.Name = "my-namespace"
|
namespaceObject.Name = "my-namespace"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -25,12 +25,15 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreatePdb(t *testing.T) {
|
func TestCreatePdb(t *testing.T) {
|
||||||
pdbName := "my-pdb"
|
pdbName := "my-pdb"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "policy", Version: "v1beta1"},
|
GroupVersion: schema.GroupVersion{Group: "policy", Version: "v1beta1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -25,12 +25,15 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreatePriorityClass(t *testing.T) {
|
func TestCreatePriorityClass(t *testing.T) {
|
||||||
pcName := "my-pc"
|
pcName := "my-pc"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Group: "scheduling.k8s.io", Version: "v1alpha1"},
|
GroupVersion: schema.GroupVersion{Group: "scheduling.k8s.io", Version: "v1alpha1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -24,13 +24,18 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateQuota(t *testing.T) {
|
func TestCreateQuota(t *testing.T) {
|
||||||
resourceQuotaObject := &v1.ResourceQuota{}
|
resourceQuotaObject := &v1.ResourceQuota{}
|
||||||
resourceQuotaObject.Name = "my-quota"
|
resourceQuotaObject.Name = "my-quota"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -34,7 +34,7 @@ import (
|
|||||||
func TestCreateRole(t *testing.T) {
|
func TestCreateRole(t *testing.T) {
|
||||||
roleName := "my-role"
|
roleName := "my-role"
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.Client = &fake.RESTClient{}
|
tf.Client = &fake.RESTClient{}
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
@ -146,7 +146,7 @@ func TestCreateRole(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestValidate(t *testing.T) {
|
func TestValidate(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
@ -345,7 +345,7 @@ func TestValidate(t *testing.T) {
|
|||||||
func TestComplete(t *testing.T) {
|
func TestComplete(t *testing.T) {
|
||||||
roleName := "my-role"
|
roleName := "my-role"
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.Client = &fake.RESTClient{}
|
tf.Client = &fake.RESTClient{}
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
@ -30,6 +30,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -68,7 +69,8 @@ func TestCreateRoleBinding(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON)
|
info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON)
|
||||||
encoder := ns.EncoderForVersion(info.Serializer, groupVersion)
|
encoder := ns.EncoderForVersion(info.Serializer, groupVersion)
|
||||||
|
@ -24,7 +24,9 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateSecretGeneric(t *testing.T) {
|
func TestCreateSecretGeneric(t *testing.T) {
|
||||||
@ -35,7 +37,10 @@ func TestCreateSecretGeneric(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
secretObject.Name = "my-secret"
|
secretObject.Name = "my-secret"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -65,7 +70,10 @@ func TestCreateSecretGeneric(t *testing.T) {
|
|||||||
func TestCreateSecretDockerRegistry(t *testing.T) {
|
func TestCreateSecretDockerRegistry(t *testing.T) {
|
||||||
secretObject := &v1.Secret{}
|
secretObject := &v1.Secret{}
|
||||||
secretObject.Name = "my-secret"
|
secretObject.Name = "my-secret"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -24,13 +24,18 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateService(t *testing.T) {
|
func TestCreateService(t *testing.T) {
|
||||||
service := &v1.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-service"
|
service.Name = "my-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
negSer := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
@ -59,7 +64,10 @@ func TestCreateService(t *testing.T) {
|
|||||||
func TestCreateServiceNodePort(t *testing.T) {
|
func TestCreateServiceNodePort(t *testing.T) {
|
||||||
service := &v1.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-node-port-service"
|
service.Name = "my-node-port-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
negSer := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
@ -88,7 +96,10 @@ func TestCreateServiceNodePort(t *testing.T) {
|
|||||||
func TestCreateServiceExternalName(t *testing.T) {
|
func TestCreateServiceExternalName(t *testing.T) {
|
||||||
service := &v1.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-external-name-service"
|
service.Name = "my-external-name-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
negSer := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
|
@ -24,13 +24,18 @@ import (
|
|||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateServiceAccount(t *testing.T) {
|
func TestCreateServiceAccount(t *testing.T) {
|
||||||
serviceAccountObject := &v1.ServiceAccount{}
|
serviceAccountObject := &v1.ServiceAccount{}
|
||||||
serviceAccountObject.Name = "my-service-account"
|
serviceAccountObject.Name = "my-service-account"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -23,7 +23,9 @@ import (
|
|||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestExtraArgsFail(t *testing.T) {
|
func TestExtraArgsFail(t *testing.T) {
|
||||||
@ -31,7 +33,7 @@ func TestExtraArgsFail(t *testing.T) {
|
|||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
c := NewCmdCreate(f, buf, errBuf)
|
c := NewCmdCreate(f, buf, errBuf)
|
||||||
options := CreateOptions{}
|
options := CreateOptions{}
|
||||||
if options.ValidateArgs(c, []string{"rc"}) == nil {
|
if options.ValidateArgs(c, []string{"rc"}) == nil {
|
||||||
@ -44,7 +46,9 @@ func TestCreateObject(t *testing.T) {
|
|||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
rc.Items[0].Name = "redis-master-controller"
|
rc.Items[0].Name = "redis-master-controller"
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -77,7 +81,9 @@ func TestCreateMultipleObject(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, svc, rc := testData()
|
_, svc, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -114,7 +120,9 @@ func TestCreateDirectory(t *testing.T) {
|
|||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
rc.Items[0].Name = "name"
|
rc.Items[0].Name = "name"
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
|
@ -33,11 +33,13 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
var unstructuredSerializer = dynamic.ContentConfig().NegotiatedSerializer
|
var unstructuredSerializer = dynamic.ContentConfig().NegotiatedSerializer
|
||||||
@ -54,7 +56,9 @@ func TestDeleteObjectByTuple(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -116,7 +120,9 @@ func TestOrphanDependentsInDeleteObject(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
var expectedOrphanDependents *bool
|
var expectedOrphanDependents *bool
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -164,7 +170,9 @@ func TestDeleteNamedObject(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -213,7 +221,9 @@ func TestDeleteObject(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -270,7 +280,9 @@ func TestDeleteObjectGraceZero(t *testing.T) {
|
|||||||
|
|
||||||
objectDeletionWaitInterval = time.Millisecond
|
objectDeletionWaitInterval = time.Millisecond
|
||||||
count := 0
|
count := 0
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -318,7 +330,7 @@ func TestDeleteObjectGraceZero(t *testing.T) {
|
|||||||
|
|
||||||
func TestDeleteObjectNotFound(t *testing.T) {
|
func TestDeleteObjectNotFound(t *testing.T) {
|
||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -354,7 +366,7 @@ func TestDeleteObjectNotFound(t *testing.T) {
|
|||||||
|
|
||||||
func TestDeleteObjectIgnoreNotFound(t *testing.T) {
|
func TestDeleteObjectIgnoreNotFound(t *testing.T) {
|
||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -389,7 +401,8 @@ func TestDeleteAllNotFound(t *testing.T) {
|
|||||||
svc.Items = append(svc.Items, api.Service{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
|
svc.Items = append(svc.Items, api.Service{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
|
||||||
notFoundError := &errors.NewNotFound(api.Resource("services"), "foo").ErrStatus
|
notFoundError := &errors.NewNotFound(api.Resource("services"), "foo").ErrStatus
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -433,7 +446,8 @@ func TestDeleteAllIgnoreNotFound(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, svc, _ := testData()
|
_, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
// Add an item to the list which will result in a 404 on delete
|
// Add an item to the list which will result in a 404 on delete
|
||||||
svc.Items = append(svc.Items, api.Service{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
|
svc.Items = append(svc.Items, api.Service{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
|
||||||
@ -473,7 +487,9 @@ func TestDeleteMultipleObject(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, svc, rc := testData()
|
_, svc, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -507,7 +523,9 @@ func TestDeleteMultipleObjectContinueOnMissing(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, svc, _ := testData()
|
_, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -550,7 +568,9 @@ func TestDeleteMultipleObjectContinueOnMissing(t *testing.T) {
|
|||||||
func TestDeleteMultipleResourcesWithTheSameName(t *testing.T) {
|
func TestDeleteMultipleResourcesWithTheSameName(t *testing.T) {
|
||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, svc, rc := testData()
|
_, svc, rc := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -587,7 +607,9 @@ func TestDeleteDirectory(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -618,7 +640,9 @@ func TestDeleteMultipleSelector(t *testing.T) {
|
|||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
pods, svc, _ := testData()
|
pods, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -682,7 +706,7 @@ func TestResourceErrors(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, testCase := range testCases {
|
for k, testCase := range testCases {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
|
@ -24,13 +24,16 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
||||||
func TestDescribeUnknownSchemaObject(t *testing.T) {
|
func TestDescribeUnknownSchemaObject(t *testing.T) {
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
f, tf := cmdtesting.NewTestFactory()
|
||||||
|
_, _, codec := cmdtesting.NewExternalScheme()
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -54,7 +57,9 @@ func TestDescribeUnknownSchemaObject(t *testing.T) {
|
|||||||
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
||||||
func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) {
|
func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) {
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
f, tf := cmdtesting.NewTestFactory()
|
||||||
|
_, _, codec := cmdtesting.NewExternalScheme()
|
||||||
|
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -77,7 +82,9 @@ func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) {
|
|||||||
|
|
||||||
func TestDescribeObject(t *testing.T) {
|
func TestDescribeObject(t *testing.T) {
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
@ -110,7 +117,9 @@ func TestDescribeObject(t *testing.T) {
|
|||||||
|
|
||||||
func TestDescribeListObjects(t *testing.T) {
|
func TestDescribeListObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
@ -130,7 +139,9 @@ func TestDescribeListObjects(t *testing.T) {
|
|||||||
|
|
||||||
func TestDescribeObjectShowEvents(t *testing.T) {
|
func TestDescribeObjectShowEvents(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
@ -151,7 +162,9 @@ func TestDescribeObjectShowEvents(t *testing.T) {
|
|||||||
|
|
||||||
func TestDescribeObjectSkipEvents(t *testing.T) {
|
func TestDescribeObjectSkipEvents(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
@ -171,7 +184,7 @@ func TestDescribeObjectSkipEvents(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestDescribeHelpMessage(t *testing.T) {
|
func TestDescribeHelpMessage(t *testing.T) {
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
buferr := bytes.NewBuffer([]byte{})
|
buferr := bytes.NewBuffer([]byte{})
|
||||||
|
@ -439,7 +439,7 @@ func RunDiff(f cmdutil.Factory, diff *DiffProgram, options *DiffOptions, from, t
|
|||||||
obj := InfoObject{
|
obj := InfoObject{
|
||||||
Info: info,
|
Info: info,
|
||||||
Parser: parser,
|
Parser: parser,
|
||||||
Encoder: f.JSONEncoder(),
|
Encoder: cmdutil.InternalVersionJSONEncoder(),
|
||||||
}
|
}
|
||||||
|
|
||||||
return differ.Diff(obj, printer)
|
return differ.Diff(obj, printer)
|
||||||
|
@ -50,6 +50,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -149,7 +150,10 @@ func TestCordon(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
new_node := &corev1.Node{}
|
new_node := &corev1.Node{}
|
||||||
updated := false
|
updated := false
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
@ -596,7 +600,10 @@ func TestDrain(t *testing.T) {
|
|||||||
new_node := &corev1.Node{}
|
new_node := &corev1.Node{}
|
||||||
deleted := false
|
deleted := false
|
||||||
evicted := false
|
evicted := false
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -817,7 +824,7 @@ func TestDeletePods(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
o := DrainOptions{Factory: f}
|
o := DrainOptions{Factory: f}
|
||||||
o.mapper, _ = f.Object()
|
o.mapper, _ = f.Object()
|
||||||
o.Out = os.Stdout
|
o.Out = os.Stdout
|
||||||
|
@ -206,7 +206,7 @@ func TestEdit(t *testing.T) {
|
|||||||
t.Fatalf("%s: %v", name, err)
|
t.Fatalf("%s: %v", name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClientForMappingFunc = func(mapping *meta.RESTMapping) (resource.RESTClient, error) {
|
tf.UnstructuredClientForMappingFunc = func(mapping *meta.RESTMapping) (resource.RESTClient, error) {
|
||||||
versionedAPIPath := ""
|
versionedAPIPath := ""
|
||||||
if mapping.GroupVersionKind.Group == "" {
|
if mapping.GroupVersionKind.Group == "" {
|
||||||
|
@ -33,8 +33,10 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/term"
|
"k8s.io/kubernetes/pkg/kubectl/util/term"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -128,7 +130,9 @@ func TestPodAndContainer(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return nil, nil }),
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return nil, nil }),
|
||||||
@ -182,7 +186,10 @@ func TestExec(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -230,7 +230,7 @@ func RunExpose(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if inline := cmdutil.GetFlagString(cmd, "overrides"); len(inline) > 0 {
|
if inline := cmdutil.GetFlagString(cmd, "overrides"); len(inline) > 0 {
|
||||||
codec := runtime.NewCodec(f.JSONEncoder(), f.Decoder(true))
|
codec := runtime.NewCodec(cmdutil.InternalVersionJSONEncoder(), cmdutil.InternalVersionDecoder())
|
||||||
object, err = cmdutil.Merge(codec, object, inline)
|
object, err = cmdutil.Merge(codec, object, inline)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -241,7 +241,7 @@ func RunExpose(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
|
|||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
||||||
Decoder: f.Decoder(true),
|
Decoder: cmdutil.InternalVersionDecoder(),
|
||||||
}
|
}
|
||||||
info, err = resourceMapper.InfoForObject(object, nil)
|
info, err = resourceMapper.InfoForObject(object, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -260,7 +260,7 @@ func RunExpose(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
|
|||||||
cmdutil.PrintSuccess(false, out, info.Object, true, "exposed")
|
cmdutil.PrintSuccess(false, out, info.Object, true, "exposed")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
@ -465,7 +466,10 @@ func TestRunExposeService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -27,8 +27,10 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestValidateLabels(t *testing.T) {
|
func TestValidateLabels(t *testing.T) {
|
||||||
@ -319,7 +321,7 @@ func TestLabelErrors(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, testCase := range testCases {
|
for k, testCase := range testCases {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
@ -350,7 +352,9 @@ func TestLabelErrors(t *testing.T) {
|
|||||||
|
|
||||||
func TestLabelForResourceFromFile(t *testing.T) {
|
func TestLabelForResourceFromFile(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -400,7 +404,7 @@ func TestLabelForResourceFromFile(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLabelLocal(t *testing.T) {
|
func TestLabelLocal(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -433,7 +437,9 @@ func TestLabelLocal(t *testing.T) {
|
|||||||
|
|
||||||
func TestLabelMultipleObjects(t *testing.T) {
|
func TestLabelMultipleObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -28,8 +28,10 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLog(t *testing.T) {
|
func TestLog(t *testing.T) {
|
||||||
@ -47,7 +49,10 @@ func TestLog(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
logContent := "test log content"
|
logContent := "test log content"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -95,7 +100,7 @@ func testPod() *api.Pod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestValidateLogFlags(t *testing.T) {
|
func TestValidateLogFlags(t *testing.T) {
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@ -145,7 +150,7 @@ func TestValidateLogFlags(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLogComplete(t *testing.T) {
|
func TestLogComplete(t *testing.T) {
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
@ -23,13 +23,17 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPatchObject(t *testing.T) {
|
func TestPatchObject(t *testing.T) {
|
||||||
_, svc, _ := testData()
|
_, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -67,7 +71,9 @@ func TestPatchObject(t *testing.T) {
|
|||||||
func TestPatchObjectFromFile(t *testing.T) {
|
func TestPatchObjectFromFile(t *testing.T) {
|
||||||
_, svc, _ := testData()
|
_, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -101,7 +107,9 @@ func TestPatchNoop(t *testing.T) {
|
|||||||
getObject := &svc.Items[0]
|
getObject := &svc.Items[0]
|
||||||
patchObject := &svc.Items[0]
|
patchObject := &svc.Items[0]
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -145,7 +153,9 @@ func TestPatchObjectFromFileOutput(t *testing.T) {
|
|||||||
}
|
}
|
||||||
svcCopy.Labels["post-patch"] = "post-patch-value"
|
svcCopy.Labels["post-patch"] = "post-patch-value"
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -92,7 +92,7 @@ func TestPluginCmd(t *testing.T) {
|
|||||||
success: test.expectedSuccess,
|
success: test.expectedSuccess,
|
||||||
}
|
}
|
||||||
|
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
cmd := NewCmdForPlugin(f, test.plugin, runner, inBuf, outBuf, errBuf)
|
cmd := NewCmdForPlugin(f, test.plugin, runner, inBuf, outBuf, errBuf)
|
||||||
if cmd == nil {
|
if cmd == nil {
|
||||||
if !test.expectedNilCmd {
|
if !test.expectedNilCmd {
|
||||||
|
@ -29,8 +29,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
type fakePortForwarder struct {
|
type fakePortForwarder struct {
|
||||||
@ -70,7 +72,10 @@ func testPortForward(t *testing.T, flags map[string]string, args []string) {
|
|||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
var err error
|
var err error
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
VersionedAPIPath: "/api/v1",
|
VersionedAPIPath: "/api/v1",
|
||||||
GroupVersion: schema.GroupVersion{Group: ""},
|
GroupVersion: schema.GroupVersion{Group: ""},
|
||||||
|
@ -137,7 +137,7 @@ func RunReplace(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []str
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return cmdutil.AddSourceToErr("replacing", info.Source, err)
|
return cmdutil.AddSourceToErr("replacing", info.Source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ func forceReplace(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,14 +23,18 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestReplaceObject(t *testing.T) {
|
func TestReplaceObject(t *testing.T) {
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
deleted := false
|
deleted := false
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -84,7 +88,9 @@ func TestReplaceObject(t *testing.T) {
|
|||||||
func TestReplaceMultipleObject(t *testing.T) {
|
func TestReplaceMultipleObject(t *testing.T) {
|
||||||
_, svc, rc := testData()
|
_, svc, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
redisMasterDeleted := false
|
redisMasterDeleted := false
|
||||||
frontendDeleted := false
|
frontendDeleted := false
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
@ -152,7 +158,9 @@ func TestReplaceMultipleObject(t *testing.T) {
|
|||||||
func TestReplaceDirectory(t *testing.T) {
|
func TestReplaceDirectory(t *testing.T) {
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
created := map[string]bool{}
|
created := map[string]bool{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -207,7 +215,9 @@ func TestReplaceDirectory(t *testing.T) {
|
|||||||
func TestForceReplaceObjectNotFound(t *testing.T) {
|
func TestForceReplaceObjectNotFound(t *testing.T) {
|
||||||
_, _, rc := testData()
|
_, _, rc := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -39,6 +39,7 @@ go_test(
|
|||||||
],
|
],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/api/testapi:go_default_library",
|
"//pkg/api/testapi:go_default_library",
|
||||||
"//pkg/api/testing:go_default_library",
|
"//pkg/api/testing:go_default_library",
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
|
@ -295,7 +295,7 @@ func (options *GetOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []str
|
|||||||
var sorter *kubectl.RuntimeSort
|
var sorter *kubectl.RuntimeSort
|
||||||
if len(sorting) > 0 && len(objs) > 1 {
|
if len(sorting) > 0 && len(objs) > 1 {
|
||||||
// TODO: questionable
|
// TODO: questionable
|
||||||
if sorter, err = kubectl.SortObjects(f.Decoder(true), objs, sorting); err != nil {
|
if sorter, err = kubectl.SortObjects(cmdutil.InternalVersionDecoder(), objs, sorting); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@ import (
|
|||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/core/v1"
|
"k8s.io/kubernetes/pkg/apis/core/v1"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||||
@ -196,9 +197,8 @@ func testComponentStatusData() *api.ComponentStatusList {
|
|||||||
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
||||||
func TestGetUnknownSchemaObject(t *testing.T) {
|
func TestGetUnknownSchemaObject(t *testing.T) {
|
||||||
t.Skip("This test is completely broken. The first thing it does is add the object to the scheme!")
|
t.Skip("This test is completely broken. The first thing it does is add the object to the scheme!")
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.WithCustomScheme()
|
_, _, codec := cmdtesting.NewExternalScheme()
|
||||||
_, _, codec, _ := cmdtesting.NewTestFactory()
|
|
||||||
tf.OpenAPISchemaFunc = openapitesting.CreateOpenAPISchemaFunc(openapiSchemaPath)
|
tf.OpenAPISchemaFunc = openapitesting.CreateOpenAPISchemaFunc(openapiSchemaPath)
|
||||||
|
|
||||||
obj := &cmdtesting.ExternalType{
|
obj := &cmdtesting.ExternalType{
|
||||||
@ -271,9 +271,7 @@ func TestGetUnknownSchemaObject(t *testing.T) {
|
|||||||
|
|
||||||
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
// Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get.
|
||||||
func TestGetSchemaObject(t *testing.T) {
|
func TestGetSchemaObject(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Mapper = testapi.Default.RESTMapper()
|
|
||||||
tf.Typer = scheme.Scheme
|
|
||||||
codec := testapi.Default.Codec()
|
codec := testapi.Default.Codec()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -295,7 +293,9 @@ func TestGetSchemaObject(t *testing.T) {
|
|||||||
func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) {
|
func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
// overide the openAPISchema function to return custom output
|
// overide the openAPISchema function to return custom output
|
||||||
// for Pod type.
|
// for Pod type.
|
||||||
tf.OpenAPISchemaFunc = testOpenAPISchemaData
|
tf.OpenAPISchemaFunc = testOpenAPISchemaData
|
||||||
@ -350,7 +350,9 @@ func testOpenAPISchemaData() (openapi.Resources, error) {
|
|||||||
func TestGetObjects(t *testing.T) {
|
func TestGetObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
@ -398,8 +400,9 @@ func TestGetObjectsFiltered(t *testing.T) {
|
|||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.WithLegacyScheme()
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
@ -439,7 +442,9 @@ func TestGetObjectIgnoreNotFound(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -490,7 +495,9 @@ func TestGetSortedObjects(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
@ -521,7 +528,9 @@ c 0/0 0 <unknown>
|
|||||||
func TestGetObjectsIdentifiedByFile(t *testing.T) {
|
func TestGetObjectsIdentifiedByFile(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
@ -546,7 +555,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestGetListObjects(t *testing.T) {
|
func TestGetListObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
@ -571,7 +582,9 @@ bar 0/0 0 <unknown>
|
|||||||
func TestGetAllListObjects(t *testing.T) {
|
func TestGetAllListObjects(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
@ -597,7 +610,9 @@ bar 0/0 0 <unknown>
|
|||||||
func TestGetListComponentStatus(t *testing.T) {
|
func TestGetListComponentStatus(t *testing.T) {
|
||||||
statuses := testComponentStatusData()
|
statuses := testComponentStatusData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, statuses)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, statuses)},
|
||||||
@ -636,7 +651,9 @@ func TestGetMixedGenericObjects(t *testing.T) {
|
|||||||
Code: 0,
|
Code: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -684,7 +701,9 @@ func TestGetMixedGenericObjects(t *testing.T) {
|
|||||||
func TestGetMultipleTypeObjects(t *testing.T) {
|
func TestGetMultipleTypeObjects(t *testing.T) {
|
||||||
pods, svc, _ := testData()
|
pods, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -721,7 +740,9 @@ baz ClusterIP <none> <none> <none> <unknown>
|
|||||||
func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
||||||
pods, svc, _ := testData()
|
pods, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -821,7 +842,9 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
|||||||
func TestGetMultipleTypeObjectsWithLabelSelector(t *testing.T) {
|
func TestGetMultipleTypeObjectsWithLabelSelector(t *testing.T) {
|
||||||
pods, svc, _ := testData()
|
pods, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -863,7 +886,9 @@ baz ClusterIP <none> <none> <none> <unknown>
|
|||||||
func TestGetMultipleTypeObjectsWithFieldSelector(t *testing.T) {
|
func TestGetMultipleTypeObjectsWithFieldSelector(t *testing.T) {
|
||||||
pods, svc, _ := testData()
|
pods, svc, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -913,7 +938,9 @@ func TestGetMultipleTypeObjectsWithDirectReference(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -950,7 +977,9 @@ foo Unknown <none> <unknown>
|
|||||||
func TestGetByFormatForcesFlag(t *testing.T) {
|
func TestGetByFormatForcesFlag(t *testing.T) {
|
||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
@ -1043,7 +1072,9 @@ func watchTestData() ([]api.Pod, []watch.Event) {
|
|||||||
func TestWatchLabelSelector(t *testing.T) {
|
func TestWatchLabelSelector(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
podList := &api.PodList{
|
podList := &api.PodList{
|
||||||
Items: pods,
|
Items: pods,
|
||||||
ListMeta: metav1.ListMeta{
|
ListMeta: metav1.ListMeta{
|
||||||
@ -1093,7 +1124,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestWatchFieldSelector(t *testing.T) {
|
func TestWatchFieldSelector(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
podList := &api.PodList{
|
podList := &api.PodList{
|
||||||
Items: pods,
|
Items: pods,
|
||||||
ListMeta: metav1.ListMeta{
|
ListMeta: metav1.ListMeta{
|
||||||
@ -1143,7 +1176,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestWatchResource(t *testing.T) {
|
func TestWatchResource(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -1185,7 +1220,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestWatchResourceIdentifiedByFile(t *testing.T) {
|
func TestWatchResourceIdentifiedByFile(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -1228,7 +1265,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestWatchOnlyResource(t *testing.T) {
|
func TestWatchOnlyResource(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -1269,7 +1308,9 @@ foo 0/0 0 <unknown>
|
|||||||
func TestWatchOnlyList(t *testing.T) {
|
func TestWatchOnlyList(t *testing.T) {
|
||||||
pods, events := watchTestData()
|
pods, events := watchTestData()
|
||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
|
||||||
podList := &api.PodList{
|
podList := &api.PodList{
|
||||||
Items: pods,
|
Items: pods,
|
||||||
ListMeta: metav1.ListMeta{
|
ListMeta: metav1.ListMeta{
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestValidateArgs(t *testing.T) {
|
func TestValidateArgs(t *testing.T) {
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
testName string
|
testName string
|
||||||
|
@ -39,11 +39,10 @@ import (
|
|||||||
type PauseConfig struct {
|
type PauseConfig struct {
|
||||||
resource.FilenameOptions
|
resource.FilenameOptions
|
||||||
|
|
||||||
Pauser func(info *resource.Info) ([]byte, error)
|
Pauser func(info *resource.Info) ([]byte, error)
|
||||||
Mapper meta.RESTMapper
|
Mapper meta.RESTMapper
|
||||||
Typer runtime.ObjectTyper
|
Typer runtime.ObjectTyper
|
||||||
Encoder runtime.Encoder
|
Infos []*resource.Info
|
||||||
Infos []*resource.Info
|
|
||||||
|
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
}
|
}
|
||||||
@ -102,7 +101,6 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, out i
|
|||||||
}
|
}
|
||||||
|
|
||||||
o.Mapper, o.Typer = f.Object()
|
o.Mapper, o.Typer = f.Object()
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
|
|
||||||
o.Pauser = f.Pauser
|
o.Pauser = f.Pauser
|
||||||
o.Out = out
|
o.Out = out
|
||||||
@ -135,7 +133,7 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, out i
|
|||||||
|
|
||||||
func (o PauseConfig) RunPause() error {
|
func (o PauseConfig) RunPause() error {
|
||||||
allErrs := []error{}
|
allErrs := []error{}
|
||||||
for _, patch := range set.CalculatePatches(o.Infos, o.Encoder, o.Pauser) {
|
for _, patch := range set.CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), o.Pauser) {
|
||||||
info := patch.Info
|
info := patch.Info
|
||||||
if patch.Err != nil {
|
if patch.Err != nil {
|
||||||
allErrs = append(allErrs, fmt.Errorf("error: %s %q %v", info.Mapping.Resource, info.Name, patch.Err))
|
allErrs = append(allErrs, fmt.Errorf("error: %s %q %v", info.Mapping.Resource, info.Name, patch.Err))
|
||||||
|
@ -42,7 +42,6 @@ type ResumeConfig struct {
|
|||||||
Resumer func(object *resource.Info) ([]byte, error)
|
Resumer func(object *resource.Info) ([]byte, error)
|
||||||
Mapper meta.RESTMapper
|
Mapper meta.RESTMapper
|
||||||
Typer runtime.ObjectTyper
|
Typer runtime.ObjectTyper
|
||||||
Encoder runtime.Encoder
|
|
||||||
Infos []*resource.Info
|
Infos []*resource.Info
|
||||||
|
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
@ -100,7 +99,6 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, out
|
|||||||
}
|
}
|
||||||
|
|
||||||
o.Mapper, o.Typer = f.Object()
|
o.Mapper, o.Typer = f.Object()
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
|
|
||||||
o.Resumer = f.Resumer
|
o.Resumer = f.Resumer
|
||||||
o.Out = out
|
o.Out = out
|
||||||
@ -139,7 +137,7 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, out
|
|||||||
|
|
||||||
func (o ResumeConfig) RunResume() error {
|
func (o ResumeConfig) RunResume() error {
|
||||||
allErrs := []error{}
|
allErrs := []error{}
|
||||||
for _, patch := range set.CalculatePatches(o.Infos, o.Encoder, o.Resumer) {
|
for _, patch := range set.CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), o.Resumer) {
|
||||||
info := patch.Info
|
info := patch.Info
|
||||||
|
|
||||||
if patch.Err != nil {
|
if patch.Err != nil {
|
||||||
|
@ -590,7 +590,7 @@ func createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command, generator kube
|
|||||||
groupVersionKind := groupVersionKinds[0]
|
groupVersionKind := groupVersionKinds[0]
|
||||||
|
|
||||||
if len(overrides) > 0 {
|
if len(overrides) > 0 {
|
||||||
codec := runtime.NewCodec(f.JSONEncoder(), f.Decoder(true))
|
codec := runtime.NewCodec(cmdutil.InternalVersionJSONEncoder(), cmdutil.InternalVersionDecoder())
|
||||||
obj, err = cmdutil.Merge(codec, obj, overrides)
|
obj, err = cmdutil.Merge(codec, obj, overrides)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -620,14 +620,14 @@ func createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command, generator kube
|
|||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
||||||
Decoder: f.Decoder(true),
|
Decoder: cmdutil.InternalVersionDecoder(),
|
||||||
}
|
}
|
||||||
info, err := resourceMapper.InfoForObject(obj, nil)
|
info, err := resourceMapper.InfoForObject(obj, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, f.JSONEncoder()); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -167,7 +168,10 @@ func TestRunArgsFollowDashRules(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -289,7 +293,10 @@ func TestGenerateService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
sawPOST := false
|
sawPOST := false
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.ClientConfig = defaultClientConfig()
|
tf.ClientConfig = defaultClientConfig()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
@ -430,9 +437,10 @@ func TestRunValidations(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewTestFactory()
|
f, tf := cmdtesting.NewTestFactory()
|
||||||
|
_, _, codec := cmdtesting.NewExternalScheme()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: scheme.Codecs,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", ""))},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", ""))},
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
|
@ -58,6 +58,7 @@ go_test(
|
|||||||
],
|
],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/api/testapi:go_default_library",
|
"//pkg/api/testapi:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
"//pkg/apis/rbac:go_default_library",
|
||||||
"//pkg/kubectl/categories:go_default_library",
|
"//pkg/kubectl/categories:go_default_library",
|
||||||
|
@ -117,7 +117,6 @@ type EnvOptions struct {
|
|||||||
|
|
||||||
Builder *resource.Builder
|
Builder *resource.Builder
|
||||||
Infos []*resource.Info
|
Infos []*resource.Info
|
||||||
Encoder runtime.Encoder
|
|
||||||
|
|
||||||
Cmd *cobra.Command
|
Cmd *cobra.Command
|
||||||
|
|
||||||
@ -187,7 +186,6 @@ func (o *EnvOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
o.ContainerSelector = cmdutil.GetFlagString(cmd, "containers")
|
o.ContainerSelector = cmdutil.GetFlagString(cmd, "containers")
|
||||||
o.List = cmdutil.GetFlagBool(cmd, "list")
|
o.List = cmdutil.GetFlagBool(cmd, "list")
|
||||||
o.Resolve = cmdutil.GetFlagBool(cmd, "resolve")
|
o.Resolve = cmdutil.GetFlagBool(cmd, "resolve")
|
||||||
@ -320,7 +318,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) {
|
patches := CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), func(info *resource.Info) ([]byte, error) {
|
||||||
info.Object = info.AsVersioned()
|
info.Object = info.AsVersioned()
|
||||||
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
||||||
resolutionErrorsEncountered := false
|
resolutionErrorsEncountered := false
|
||||||
@ -388,7 +386,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return runtime.Encode(o.Encoder, info.Object)
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
|
@ -38,6 +38,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/categories"
|
"k8s.io/kubernetes/pkg/kubectl/categories"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
@ -46,7 +47,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestSetEnvLocal(t *testing.T) {
|
func TestSetEnvLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -81,7 +83,9 @@ func TestSetEnvLocal(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSetMultiResourcesEnvLocal(t *testing.T) {
|
func TestSetMultiResourcesEnvLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -428,8 +432,9 @@ func TestSetEnvRemote(t *testing.T) {
|
|||||||
for _, input := range inputs {
|
for _, input := range inputs {
|
||||||
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
||||||
testapi.Default = testapi.Groups[input.testAPIGroup]
|
testapi.Default = testapi.Groups[input.testAPIGroup]
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.CategoryExpander = categories.LegacyCategoryExpander
|
tf.CategoryExpander = categories.LegacyCategoryExpander
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
|
@ -37,8 +37,6 @@ type ImageOptions struct {
|
|||||||
resource.FilenameOptions
|
resource.FilenameOptions
|
||||||
|
|
||||||
Infos []*resource.Info
|
Infos []*resource.Info
|
||||||
Encoder runtime.Encoder
|
|
||||||
Decoder runtime.Decoder
|
|
||||||
Selector string
|
Selector string
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
Err io.Writer
|
Err io.Writer
|
||||||
@ -114,8 +112,6 @@ func NewCmdImage(f cmdutil.Factory, out, err io.Writer) *cobra.Command {
|
|||||||
|
|
||||||
func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
||||||
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
o.Decoder = f.Decoder(true)
|
|
||||||
o.ShortOutput = cmdutil.GetFlagString(cmd, "output") == "name"
|
o.ShortOutput = cmdutil.GetFlagString(cmd, "output") == "name"
|
||||||
o.Record = cmdutil.GetRecordFlag(cmd)
|
o.Record = cmdutil.GetRecordFlag(cmd)
|
||||||
o.ChangeCause = f.Command(cmd, false)
|
o.ChangeCause = f.Command(cmd, false)
|
||||||
@ -184,7 +180,7 @@ func (o *ImageOptions) Validate() error {
|
|||||||
func (o *ImageOptions) Run() error {
|
func (o *ImageOptions) Run() error {
|
||||||
allErrs := []error{}
|
allErrs := []error{}
|
||||||
|
|
||||||
patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) {
|
patches := CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), func(info *resource.Info) ([]byte, error) {
|
||||||
transformed := false
|
transformed := false
|
||||||
info.Object = info.AsVersioned()
|
info.Object = info.AsVersioned()
|
||||||
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
||||||
@ -224,7 +220,7 @@ func (o *ImageOptions) Run() error {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if transformed && err == nil {
|
if transformed && err == nil {
|
||||||
return runtime.Encode(o.Encoder, info.Object)
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
|
@ -37,6 +37,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/categories"
|
"k8s.io/kubernetes/pkg/kubectl/categories"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
@ -45,7 +46,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestImageLocal(t *testing.T) {
|
func TestImageLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -146,7 +149,9 @@ func TestSetImageValidation(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSetMultiResourcesImageLocal(t *testing.T) {
|
func TestSetMultiResourcesImageLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -495,8 +500,9 @@ func TestSetImageRemote(t *testing.T) {
|
|||||||
for _, input := range inputs {
|
for _, input := range inputs {
|
||||||
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
||||||
testapi.Default = testapi.Groups[input.testAPIGroup]
|
testapi.Default = testapi.Groups[input.testAPIGroup]
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.CategoryExpander = categories.LegacyCategoryExpander
|
tf.CategoryExpander = categories.LegacyCategoryExpander
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
|
@ -62,7 +62,6 @@ type ResourcesOptions struct {
|
|||||||
resource.FilenameOptions
|
resource.FilenameOptions
|
||||||
|
|
||||||
Infos []*resource.Info
|
Infos []*resource.Info
|
||||||
Encoder runtime.Encoder
|
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
Err io.Writer
|
Err io.Writer
|
||||||
Selector string
|
Selector string
|
||||||
@ -125,7 +124,6 @@ func NewCmdResources(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.
|
|||||||
|
|
||||||
func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
||||||
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
o.UpdatePodSpecForObject = f.UpdatePodSpecForObject
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
o.Output = cmdutil.GetFlagString(cmd, "output")
|
o.Output = cmdutil.GetFlagString(cmd, "output")
|
||||||
o.Record = cmdutil.GetRecordFlag(cmd)
|
o.Record = cmdutil.GetRecordFlag(cmd)
|
||||||
o.ChangeCause = f.Command(cmd, false)
|
o.ChangeCause = f.Command(cmd, false)
|
||||||
@ -187,7 +185,7 @@ func (o *ResourcesOptions) Validate() error {
|
|||||||
|
|
||||||
func (o *ResourcesOptions) Run() error {
|
func (o *ResourcesOptions) Run() error {
|
||||||
allErrs := []error{}
|
allErrs := []error{}
|
||||||
patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) {
|
patches := CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), func(info *resource.Info) ([]byte, error) {
|
||||||
transformed := false
|
transformed := false
|
||||||
info.Object = info.AsVersioned()
|
info.Object = info.AsVersioned()
|
||||||
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
_, err := o.UpdatePodSpecForObject(info.Object, func(spec *v1.PodSpec) error {
|
||||||
@ -215,7 +213,7 @@ func (o *ResourcesOptions) Run() error {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if transformed && err == nil {
|
if transformed && err == nil {
|
||||||
return runtime.Encode(o.Encoder, info.Object)
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
|
@ -37,6 +37,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/categories"
|
"k8s.io/kubernetes/pkg/kubectl/categories"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
@ -45,7 +46,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestResourcesLocal(t *testing.T) {
|
func TestResourcesLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -87,7 +90,9 @@ func TestResourcesLocal(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSetMultiResourcesLimitsLocal(t *testing.T) {
|
func TestSetMultiResourcesLimitsLocal(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -441,8 +446,9 @@ func TestSetResourcesRemote(t *testing.T) {
|
|||||||
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
||||||
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
||||||
testapi.Default = testapi.Groups[input.testAPIGroup]
|
testapi.Default = testapi.Groups[input.testAPIGroup]
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.CategoryExpander = categories.LegacyCategoryExpander
|
tf.CategoryExpander = categories.LegacyCategoryExpander
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
|
@ -54,7 +54,6 @@ type SelectorOptions struct {
|
|||||||
|
|
||||||
builder *resource.Builder
|
builder *resource.Builder
|
||||||
mapper meta.RESTMapper
|
mapper meta.RESTMapper
|
||||||
encoder runtime.Encoder
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -118,7 +117,6 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [
|
|||||||
o.changeCause = f.Command(cmd, false)
|
o.changeCause = f.Command(cmd, false)
|
||||||
mapper, _ := f.Object()
|
mapper, _ := f.Object()
|
||||||
o.mapper = mapper
|
o.mapper = mapper
|
||||||
o.encoder = f.JSONEncoder()
|
|
||||||
|
|
||||||
o.resources, o.selector, err = getResourcesAndSelector(args)
|
o.resources, o.selector, err = getResourcesAndSelector(args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -178,13 +176,13 @@ func (o *SelectorOptions) RunSelector() error {
|
|||||||
|
|
||||||
return r.Visit(func(info *resource.Info, err error) error {
|
return r.Visit(func(info *resource.Info, err error) error {
|
||||||
patch := &Patch{Info: info}
|
patch := &Patch{Info: info}
|
||||||
CalculatePatch(patch, o.encoder, func(info *resource.Info) ([]byte, error) {
|
CalculatePatch(patch, cmdutil.InternalVersionJSONEncoder(), func(info *resource.Info) ([]byte, error) {
|
||||||
versioned := info.AsVersioned()
|
versioned := info.AsVersioned()
|
||||||
patch.Info.Object = versioned
|
patch.Info.Object = versioned
|
||||||
selectErr := updateSelectorForObject(info.Object, *o.selector)
|
selectErr := updateSelectorForObject(info.Object, *o.selector)
|
||||||
|
|
||||||
if selectErr == nil {
|
if selectErr == nil {
|
||||||
return runtime.Encode(o.encoder, info.Object)
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
}
|
}
|
||||||
return nil, selectErr
|
return nil, selectErr
|
||||||
})
|
})
|
||||||
|
@ -32,6 +32,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -315,7 +316,8 @@ func TestGetResourcesAndSelector(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSelectorTest(t *testing.T) {
|
func TestSelectorTest(t *testing.T) {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -55,7 +55,6 @@ var (
|
|||||||
// serviceAccountConfig encapsulates the data required to perform the operation.
|
// serviceAccountConfig encapsulates the data required to perform the operation.
|
||||||
type serviceAccountConfig struct {
|
type serviceAccountConfig struct {
|
||||||
fileNameOptions resource.FilenameOptions
|
fileNameOptions resource.FilenameOptions
|
||||||
encoder runtime.Encoder
|
|
||||||
out io.Writer
|
out io.Writer
|
||||||
err io.Writer
|
err io.Writer
|
||||||
dryRun bool
|
dryRun bool
|
||||||
@ -104,7 +103,6 @@ func NewCmdServiceAccount(f cmdutil.Factory, out, err io.Writer) *cobra.Command
|
|||||||
|
|
||||||
// Complete configures serviceAccountConfig from command line args.
|
// Complete configures serviceAccountConfig from command line args.
|
||||||
func (saConfig *serviceAccountConfig) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
func (saConfig *serviceAccountConfig) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
||||||
saConfig.encoder = f.JSONEncoder()
|
|
||||||
saConfig.shortOutput = cmdutil.GetFlagString(cmd, "output") == "name"
|
saConfig.shortOutput = cmdutil.GetFlagString(cmd, "output") == "name"
|
||||||
saConfig.record = cmdutil.GetRecordFlag(cmd)
|
saConfig.record = cmdutil.GetRecordFlag(cmd)
|
||||||
saConfig.changeCause = f.Command(cmd, false)
|
saConfig.changeCause = f.Command(cmd, false)
|
||||||
@ -151,9 +149,9 @@ func (saConfig *serviceAccountConfig) Run() error {
|
|||||||
podSpec.ServiceAccountName = saConfig.serviceAccountName
|
podSpec.ServiceAccountName = saConfig.serviceAccountName
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
return runtime.Encode(saConfig.encoder, info.Object)
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
}
|
}
|
||||||
patches := CalculatePatches(saConfig.infos, saConfig.encoder, patchFn)
|
patches := CalculatePatches(saConfig.infos, cmdutil.InternalVersionJSONEncoder(), patchFn)
|
||||||
for _, patch := range patches {
|
for _, patch := range patches {
|
||||||
info := patch.Info
|
info := patch.Info
|
||||||
if patch.Err != nil {
|
if patch.Err != nil {
|
||||||
|
@ -37,6 +37,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/categories"
|
"k8s.io/kubernetes/pkg/kubectl/categories"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
@ -67,7 +68,7 @@ func TestSetServiceAccountLocal(t *testing.T) {
|
|||||||
|
|
||||||
for i, input := range inputs {
|
for i, input := range inputs {
|
||||||
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -97,7 +98,8 @@ func TestSetServiceAccountLocal(t *testing.T) {
|
|||||||
|
|
||||||
func TestSetServiceAccountMultiLocal(t *testing.T) {
|
func TestSetServiceAccountMultiLocal(t *testing.T) {
|
||||||
testapi.Default = testapi.Groups[""]
|
testapi.Default = testapi.Groups[""]
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: ""},
|
GroupVersion: schema.GroupVersion{Version: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
@ -311,8 +313,9 @@ func TestSetServiceAccountRemote(t *testing.T) {
|
|||||||
for _, input := range inputs {
|
for _, input := range inputs {
|
||||||
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion}
|
||||||
testapi.Default = testapi.Groups[input.testAPIGroup]
|
testapi.Default = testapi.Groups[input.testAPIGroup]
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.CategoryExpander = categories.LegacyCategoryExpander
|
tf.CategoryExpander = categories.LegacyCategoryExpander
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
@ -364,7 +367,7 @@ func TestServiceAccountValidation(t *testing.T) {
|
|||||||
{args: []string{serviceAccount}, errorString: resourceMissingErrString},
|
{args: []string{serviceAccount}, errorString: resourceMissingErrString},
|
||||||
}
|
}
|
||||||
for _, input := range inputs {
|
for _, input := range inputs {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -57,7 +57,6 @@ type SubjectOptions struct {
|
|||||||
resource.FilenameOptions
|
resource.FilenameOptions
|
||||||
|
|
||||||
Infos []*resource.Info
|
Infos []*resource.Info
|
||||||
Encoder runtime.Encoder
|
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
Err io.Writer
|
Err io.Writer
|
||||||
Selector string
|
Selector string
|
||||||
@ -108,7 +107,6 @@ func NewCmdSubject(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Co
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (o *SubjectOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
func (o *SubjectOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
o.Output = cmdutil.GetFlagString(cmd, "output")
|
o.Output = cmdutil.GetFlagString(cmd, "output")
|
||||||
o.DryRun = cmdutil.GetDryRunFlag(cmd)
|
o.DryRun = cmdutil.GetDryRunFlag(cmd)
|
||||||
o.PrintObject = func(obj runtime.Object, out io.Writer) error {
|
o.PrintObject = func(obj runtime.Object, out io.Writer) error {
|
||||||
@ -179,7 +177,7 @@ func (o *SubjectOptions) Validate() error {
|
|||||||
|
|
||||||
func (o *SubjectOptions) Run(f cmdutil.Factory, fn updateSubjects) error {
|
func (o *SubjectOptions) Run(f cmdutil.Factory, fn updateSubjects) error {
|
||||||
var err error
|
var err error
|
||||||
patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) {
|
patches := CalculatePatches(o.Infos, cmdutil.InternalVersionJSONEncoder(), func(info *resource.Info) ([]byte, error) {
|
||||||
subjects := []rbac.Subject{}
|
subjects := []rbac.Subject{}
|
||||||
for _, user := range sets.NewString(o.Users...).List() {
|
for _, user := range sets.NewString(o.Users...).List() {
|
||||||
subject := rbac.Subject{
|
subject := rbac.Subject{
|
||||||
@ -218,7 +216,7 @@ func (o *SubjectOptions) Run(f cmdutil.Factory, fn updateSubjects) error {
|
|||||||
transformed, err := updateSubjectForObject(info.Object, subjects, fn)
|
transformed, err := updateSubjectForObject(info.Object, subjects, fn)
|
||||||
if transformed && err == nil {
|
if transformed && err == nil {
|
||||||
// TODO: switch UpdatePodSpecForObject to work on v1.PodSpec
|
// TODO: switch UpdatePodSpecForObject to work on v1.PodSpec
|
||||||
return runtime.Encode(o.Encoder, info.AsVersioned())
|
return runtime.Encode(cmdutil.InternalVersionJSONEncoder(), info.AsVersioned())
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestValidate(t *testing.T) {
|
func TestValidate(t *testing.T) {
|
||||||
_, tf, _, _ := cmdtesting.NewAPIFactory()
|
_, tf := cmdtesting.NewAPIFactory()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
|
@ -29,8 +29,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
func generateNodeAndTaintedNode(oldTaints []v1.Taint, newTaints []v1.Taint) (*v1.Node, *v1.Node) {
|
func generateNodeAndTaintedNode(oldTaints []v1.Taint, newTaints []v1.Taint) (*v1.Node, *v1.Node) {
|
||||||
@ -237,7 +239,9 @@ func TestTaint(t *testing.T) {
|
|||||||
oldNode, expectNewNode := generateNodeAndTaintedNode(test.oldTaints, test.newTaints)
|
oldNode, expectNewNode := generateNodeAndTaintedNode(test.oldTaints, test.newTaints)
|
||||||
new_node := &v1.Node{}
|
new_node := &v1.Node{}
|
||||||
tainted := false
|
tainted := false
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
|
@ -15,7 +15,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/api/testapi:go_default_library",
|
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
@ -25,6 +24,7 @@ go_library(
|
|||||||
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
||||||
"//pkg/kubectl/plugins:go_default_library",
|
"//pkg/kubectl/plugins:go_default_library",
|
||||||
"//pkg/kubectl/resource:go_default_library",
|
"//pkg/kubectl/resource:go_default_library",
|
||||||
|
"//pkg/kubectl/scheme:go_default_library",
|
||||||
"//pkg/kubectl/validation:go_default_library",
|
"//pkg/kubectl/validation:go_default_library",
|
||||||
"//pkg/printers:go_default_library",
|
"//pkg/printers:go_default_library",
|
||||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||||
|
@ -38,7 +38,6 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
@ -48,6 +47,7 @@ import (
|
|||||||
openapitesting "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing"
|
openapitesting "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/plugins"
|
"k8s.io/kubernetes/pkg/kubectl/plugins"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/validation"
|
"k8s.io/kubernetes/pkg/kubectl/validation"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
metricsclientset "k8s.io/metrics/pkg/client/clientset_generated/clientset"
|
metricsclientset "k8s.io/metrics/pkg/client/clientset_generated/clientset"
|
||||||
@ -183,7 +183,7 @@ var InternalGV = schema.GroupVersion{Group: "apitest", Version: runtime.APIVersi
|
|||||||
var UnlikelyGV = schema.GroupVersion{Group: "apitest", Version: "unlikelyversion"}
|
var UnlikelyGV = schema.GroupVersion{Group: "apitest", Version: "unlikelyversion"}
|
||||||
var ValidVersionGV = schema.GroupVersion{Group: "apitest", Version: ValidVersion}
|
var ValidVersionGV = schema.GroupVersion{Group: "apitest", Version: ValidVersion}
|
||||||
|
|
||||||
func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) {
|
func NewExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) {
|
||||||
scheme := runtime.NewScheme()
|
scheme := runtime.NewScheme()
|
||||||
mapper, codec := AddToScheme(scheme)
|
mapper, codec := AddToScheme(scheme)
|
||||||
return scheme, mapper, codec
|
return scheme, mapper, codec
|
||||||
@ -236,8 +236,6 @@ func (d *fakeCachedDiscoveryClient) ServerResources() ([]*metav1.APIResourceList
|
|||||||
}
|
}
|
||||||
|
|
||||||
type TestFactory struct {
|
type TestFactory struct {
|
||||||
Mapper meta.RESTMapper
|
|
||||||
Typer runtime.ObjectTyper
|
|
||||||
Client kubectl.RESTClient
|
Client kubectl.RESTClient
|
||||||
UnstructuredClient kubectl.RESTClient
|
UnstructuredClient kubectl.RESTClient
|
||||||
Describer printers.Describer
|
Describer printers.Describer
|
||||||
@ -248,7 +246,6 @@ type TestFactory struct {
|
|||||||
Command string
|
Command string
|
||||||
TmpDir string
|
TmpDir string
|
||||||
CategoryExpander categories.CategoryExpander
|
CategoryExpander categories.CategoryExpander
|
||||||
SkipDiscovery bool
|
|
||||||
MetricsClientSet metricsclientset.Interface
|
MetricsClientSet metricsclientset.Interface
|
||||||
|
|
||||||
ClientForMappingFunc func(mapping *meta.RESTMapping) (resource.RESTClient, error)
|
ClientForMappingFunc func(mapping *meta.RESTMapping) (resource.RESTClient, error)
|
||||||
@ -257,22 +254,16 @@ type TestFactory struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type FakeFactory struct {
|
type FakeFactory struct {
|
||||||
tf *TestFactory
|
tf *TestFactory
|
||||||
Codec runtime.Codec
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestFactory() (cmdutil.Factory, *TestFactory, runtime.Codec, runtime.NegotiatedSerializer) {
|
func NewTestFactory() (cmdutil.Factory, *TestFactory) {
|
||||||
scheme, mapper, codec := newExternalScheme()
|
|
||||||
t := &TestFactory{
|
t := &TestFactory{
|
||||||
Validator: validation.NullSchema{},
|
Validator: validation.NullSchema{},
|
||||||
Mapper: mapper,
|
|
||||||
Typer: scheme,
|
|
||||||
}
|
}
|
||||||
negotiatedSerializer := serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: codec})
|
|
||||||
return &FakeFactory{
|
return &FakeFactory{
|
||||||
tf: t,
|
tf: t,
|
||||||
Codec: codec,
|
}, t
|
||||||
}, t, codec, negotiatedSerializer
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFactory) DiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
|
func (f *FakeFactory) DiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
|
||||||
@ -288,9 +279,6 @@ func (f *FakeFactory) FlagSet() *pflag.FlagSet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
func (f *FakeFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
||||||
if f.tf.SkipDiscovery {
|
|
||||||
return legacyscheme.Registry.RESTMapper(), f.tf.Typer
|
|
||||||
}
|
|
||||||
groupResources := testDynamicResources()
|
groupResources := testDynamicResources()
|
||||||
mapper := discovery.NewRESTMapper(groupResources, meta.InterfacesForUnstructuredConversion(legacyscheme.Registry.InterfacesFor))
|
mapper := discovery.NewRESTMapper(groupResources, meta.InterfacesForUnstructuredConversion(legacyscheme.Registry.InterfacesFor))
|
||||||
typer := discovery.NewUnstructuredObjectTyper(groupResources, legacyscheme.Scheme)
|
typer := discovery.NewUnstructuredObjectTyper(groupResources, legacyscheme.Scheme)
|
||||||
@ -304,14 +292,6 @@ func (f *FakeFactory) CategoryExpander() categories.CategoryExpander {
|
|||||||
return categories.LegacyCategoryExpander
|
return categories.LegacyCategoryExpander
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFactory) Decoder(bool) runtime.Decoder {
|
|
||||||
return f.Codec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FakeFactory) JSONEncoder() runtime.Encoder {
|
|
||||||
return f.Codec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FakeFactory) RESTClient() (*restclient.RESTClient, error) {
|
func (f *FakeFactory) RESTClient() (*restclient.RESTClient, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
@ -481,7 +461,7 @@ func (f *FakeFactory) NewBuilder() *resource.Builder {
|
|||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
||||||
Decoder: f.Decoder(true),
|
Decoder: cmdutil.InternalVersionDecoder(),
|
||||||
},
|
},
|
||||||
&resource.Mapper{
|
&resource.Mapper{
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
@ -513,56 +493,12 @@ func (f *FakeFactory) PluginRunner() plugins.PluginRunner {
|
|||||||
return &plugins.ExecPluginRunner{}
|
return &plugins.ExecPluginRunner{}
|
||||||
}
|
}
|
||||||
|
|
||||||
type fakeMixedFactory struct {
|
|
||||||
cmdutil.Factory
|
|
||||||
tf *TestFactory
|
|
||||||
apiClient resource.RESTClient
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeMixedFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
|
||||||
var multiRESTMapper meta.MultiRESTMapper
|
|
||||||
multiRESTMapper = append(multiRESTMapper, f.tf.Mapper)
|
|
||||||
multiRESTMapper = append(multiRESTMapper, testapi.Default.RESTMapper())
|
|
||||||
priorityRESTMapper := meta.PriorityRESTMapper{
|
|
||||||
Delegate: multiRESTMapper,
|
|
||||||
ResourcePriority: []schema.GroupVersionResource{
|
|
||||||
{Group: meta.AnyGroup, Version: "v1", Resource: meta.AnyResource},
|
|
||||||
},
|
|
||||||
KindPriority: []schema.GroupVersionKind{
|
|
||||||
{Group: meta.AnyGroup, Version: "v1", Kind: meta.AnyKind},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return priorityRESTMapper, runtime.MultiObjectTyper{f.tf.Typer, legacyscheme.Scheme}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeMixedFactory) ClientForMapping(m *meta.RESTMapping) (resource.RESTClient, error) {
|
|
||||||
if m.ObjectConvertor == legacyscheme.Scheme {
|
|
||||||
return f.apiClient, f.tf.Err
|
|
||||||
}
|
|
||||||
if f.tf.ClientForMappingFunc != nil {
|
|
||||||
return f.tf.ClientForMappingFunc(m)
|
|
||||||
}
|
|
||||||
return f.tf.Client, f.tf.Err
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewMixedFactory(apiClient resource.RESTClient) (cmdutil.Factory, *TestFactory, runtime.Codec) {
|
|
||||||
f, t, c, _ := NewAPIFactory()
|
|
||||||
return &fakeMixedFactory{
|
|
||||||
Factory: f,
|
|
||||||
tf: t,
|
|
||||||
apiClient: apiClient,
|
|
||||||
}, t, c
|
|
||||||
}
|
|
||||||
|
|
||||||
type fakeAPIFactory struct {
|
type fakeAPIFactory struct {
|
||||||
cmdutil.Factory
|
cmdutil.Factory
|
||||||
tf *TestFactory
|
tf *TestFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fakeAPIFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
func (f *fakeAPIFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
||||||
if f.tf.SkipDiscovery {
|
|
||||||
return testapi.Default.RESTMapper(), legacyscheme.Scheme
|
|
||||||
}
|
|
||||||
groupResources := testDynamicResources()
|
groupResources := testDynamicResources()
|
||||||
mapper := discovery.NewRESTMapper(
|
mapper := discovery.NewRESTMapper(
|
||||||
groupResources,
|
groupResources,
|
||||||
@ -571,7 +507,7 @@ func (f *fakeAPIFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
|||||||
// provide typed objects for these two versions
|
// provide typed objects for these two versions
|
||||||
case ValidVersionGV, UnlikelyGV:
|
case ValidVersionGV, UnlikelyGV:
|
||||||
return &meta.VersionInterfaces{
|
return &meta.VersionInterfaces{
|
||||||
ObjectConvertor: f.tf.Typer.(*runtime.Scheme),
|
ObjectConvertor: scheme.Scheme,
|
||||||
MetadataAccessor: meta.NewAccessor(),
|
MetadataAccessor: meta.NewAccessor(),
|
||||||
}, nil
|
}, nil
|
||||||
// otherwise fall back to the legacy scheme
|
// otherwise fall back to the legacy scheme
|
||||||
@ -596,14 +532,6 @@ func (f *fakeAPIFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
|
|||||||
return expander, typer
|
return expander, typer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fakeAPIFactory) Decoder(bool) runtime.Decoder {
|
|
||||||
return testapi.Default.Codec()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeAPIFactory) JSONEncoder() runtime.Encoder {
|
|
||||||
return testapi.Default.Codec()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeAPIFactory) KubernetesClientSet() (*kubernetes.Clientset, error) {
|
func (f *fakeAPIFactory) KubernetesClientSet() (*kubernetes.Clientset, error) {
|
||||||
fakeClient := f.tf.Client.(*fake.RESTClient)
|
fakeClient := f.tf.Client.(*fake.RESTClient)
|
||||||
clientset := kubernetes.NewForConfigOrDie(f.tf.ClientConfig)
|
clientset := kubernetes.NewForConfigOrDie(f.tf.ClientConfig)
|
||||||
@ -763,7 +691,7 @@ func (f *fakeAPIFactory) NewBuilder() *resource.Builder {
|
|||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
ClientMapper: resource.ClientMapperFunc(f.ClientForMapping),
|
||||||
Decoder: f.Decoder(true),
|
Decoder: cmdutil.InternalVersionDecoder(),
|
||||||
},
|
},
|
||||||
&resource.Mapper{
|
&resource.Mapper{
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
@ -786,7 +714,7 @@ func (f *fakeAPIFactory) OpenAPISchema() (openapi.Resources, error) {
|
|||||||
return openapitesting.EmptyResources{}, nil
|
return openapitesting.EmptyResources{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAPIFactory() (cmdutil.Factory, *TestFactory, runtime.Codec, runtime.NegotiatedSerializer) {
|
func NewAPIFactory() (cmdutil.Factory, *TestFactory) {
|
||||||
t := &TestFactory{
|
t := &TestFactory{
|
||||||
Validator: validation.NullSchema{},
|
Validator: validation.NullSchema{},
|
||||||
}
|
}
|
||||||
@ -794,18 +722,7 @@ func NewAPIFactory() (cmdutil.Factory, *TestFactory, runtime.Codec, runtime.Nego
|
|||||||
return &fakeAPIFactory{
|
return &fakeAPIFactory{
|
||||||
Factory: rf,
|
Factory: rf,
|
||||||
tf: t,
|
tf: t,
|
||||||
}, t, testapi.Default.Codec(), testapi.Default.NegotiatedSerializer()
|
}, t
|
||||||
}
|
|
||||||
|
|
||||||
func (f *TestFactory) WithCustomScheme() *TestFactory {
|
|
||||||
scheme, _, _ := newExternalScheme()
|
|
||||||
f.Typer = scheme
|
|
||||||
return f
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *TestFactory) WithLegacyScheme() *TestFactory {
|
|
||||||
f.Typer = legacyscheme.Scheme
|
|
||||||
return f
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func testDynamicResources() []*discovery.APIGroupResources {
|
func testDynamicResources() []*discovery.APIGroupResources {
|
||||||
|
@ -30,7 +30,9 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
metricsv1alpha1api "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
metricsv1alpha1api "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
||||||
metricsv1beta1api "k8s.io/metrics/pkg/apis/metrics/v1beta1"
|
metricsv1beta1api "k8s.io/metrics/pkg/apis/metrics/v1beta1"
|
||||||
metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake"
|
metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake"
|
||||||
@ -47,7 +49,10 @@ func TestTopNodeAllMetrics(t *testing.T) {
|
|||||||
expectedMetricsPath := fmt.Sprintf("%s/%s/nodes", baseMetricsAddress, metricsApiVersion)
|
expectedMetricsPath := fmt.Sprintf("%s/%s/nodes", baseMetricsAddress, metricsApiVersion)
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -95,7 +100,10 @@ func TestTopNodeAllMetricsCustomDefaults(t *testing.T) {
|
|||||||
expectedMetricsPath := fmt.Sprintf("%s/%s/nodes", customBaseMetricsAddress, metricsApiVersion)
|
expectedMetricsPath := fmt.Sprintf("%s/%s/nodes", customBaseMetricsAddress, metricsApiVersion)
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -153,7 +161,10 @@ func TestTopNodeWithNameMetrics(t *testing.T) {
|
|||||||
expectedPath := fmt.Sprintf("%s/%s/nodes/%s", baseMetricsAddress, metricsApiVersion, expectedMetrics.Name)
|
expectedPath := fmt.Sprintf("%s/%s/nodes/%s", baseMetricsAddress, metricsApiVersion, expectedMetrics.Name)
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes/%s", apiPrefix, apiVersion, expectedMetrics.Name)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes/%s", apiPrefix, apiVersion, expectedMetrics.Name)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -215,7 +226,10 @@ func TestTopNodeWithLabelSelectorMetrics(t *testing.T) {
|
|||||||
expectedQuery := fmt.Sprintf("labelSelector=%s", url.QueryEscape(label))
|
expectedQuery := fmt.Sprintf("labelSelector=%s", url.QueryEscape(label))
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -265,7 +279,10 @@ func TestTopNodeAllMetricsFromMetricsServer(t *testing.T) {
|
|||||||
expectedMetrics, nodes := testNodeV1beta1MetricsData()
|
expectedMetrics, nodes := testNodeV1beta1MetricsData()
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -314,7 +331,10 @@ func TestTopNodeWithNameMetricsFromMetricsServer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes/%s", apiPrefix, apiVersion, expectedMetrics.Name)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes/%s", apiPrefix, apiVersion, expectedMetrics.Name)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -373,7 +393,10 @@ func TestTopNodeWithLabelSelectorMetricsFromMetricsServer(t *testing.T) {
|
|||||||
label := "key=value"
|
label := "key=value"
|
||||||
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
expectedNodePath := fmt.Sprintf("/%s/%s/nodes", apiPrefix, apiVersion)
|
||||||
|
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
codec := legacyscheme.Codecs.LegacyCodec(scheme.Versions...)
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -35,6 +35,7 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
metricsv1alpha1api "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
metricsv1alpha1api "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
||||||
metricsv1beta1api "k8s.io/metrics/pkg/apis/metrics/v1beta1"
|
metricsv1beta1api "k8s.io/metrics/pkg/apis/metrics/v1beta1"
|
||||||
@ -161,7 +162,9 @@ func TestTopPod(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -301,7 +304,9 @@ func TestTopPodWithMetricsServer(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
@ -479,7 +484,9 @@ func TestTopPodCustomDefaults(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf := cmdtesting.NewAPIFactory()
|
||||||
|
ns := legacyscheme.Codecs
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
@ -43,7 +43,7 @@ const (
|
|||||||
func TestTopSubcommandsExist(t *testing.T) {
|
func TestTopSubcommandsExist(t *testing.T) {
|
||||||
initTestErrorHandler(t)
|
initTestErrorHandler(t)
|
||||||
|
|
||||||
f, _, _, _ := cmdtesting.NewAPIFactory()
|
f, _ := cmdtesting.NewAPIFactory()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
cmd := NewCmdTop(f, buf, buf)
|
cmd := NewCmdTop(f, buf, buf)
|
||||||
|
@ -62,7 +62,6 @@ type EditOptions struct {
|
|||||||
|
|
||||||
ResourceMapper *resource.Mapper
|
ResourceMapper *resource.Mapper
|
||||||
OriginalResult *resource.Result
|
OriginalResult *resource.Result
|
||||||
Encoder runtime.Encoder
|
|
||||||
|
|
||||||
EditMode EditMode
|
EditMode EditMode
|
||||||
|
|
||||||
@ -137,7 +136,6 @@ func (o *EditOptions) Complete(f cmdutil.Factory, out, errOut io.Writer, args []
|
|||||||
}
|
}
|
||||||
|
|
||||||
o.CmdNamespace = cmdNamespace
|
o.CmdNamespace = cmdNamespace
|
||||||
o.Encoder = f.JSONEncoder()
|
|
||||||
o.f = f
|
o.f = f
|
||||||
|
|
||||||
// Set up writer
|
// Set up writer
|
||||||
@ -394,12 +392,12 @@ func (o *EditOptions) visitToApplyEditPatch(originalInfos []*resource.Info, patc
|
|||||||
return fmt.Errorf("no original object found for %#v", info.Object)
|
return fmt.Errorf("no original object found for %#v", info.Object)
|
||||||
}
|
}
|
||||||
|
|
||||||
originalJS, err := encodeToJson(o.Encoder, originalInfo.Object)
|
originalJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), originalInfo.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
editedJS, err := encodeToJson(o.Encoder, info.Object)
|
editedJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -420,7 +418,7 @@ func (o *EditOptions) visitToApplyEditPatch(originalInfos []*resource.Info, patc
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (o *EditOptions) annotationPatch(update *resource.Info) error {
|
func (o *EditOptions) annotationPatch(update *resource.Info) error {
|
||||||
patch, _, patchType, err := GetApplyPatch(update.Object, o.Encoder)
|
patch, _, patchType, err := GetApplyPatch(update.Object, cmdutil.InternalVersionJSONEncoder())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -519,12 +517,12 @@ func (o *EditOptions) visitToPatch(originalInfos []*resource.Info, patchVisitor
|
|||||||
return fmt.Errorf("no original object found for %#v", info.Object)
|
return fmt.Errorf("no original object found for %#v", info.Object)
|
||||||
}
|
}
|
||||||
|
|
||||||
originalJS, err := encodeToJson(o.Encoder, originalInfo.Object)
|
originalJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), originalInfo.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
editedJS, err := encodeToJson(o.Encoder, info.Object)
|
editedJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), info.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -607,7 +605,7 @@ func (o *EditOptions) visitAnnotation(annotationVisitor resource.Visitor) error
|
|||||||
err := annotationVisitor.Visit(func(info *resource.Info, incomingErr error) error {
|
err := annotationVisitor.Visit(func(info *resource.Info, incomingErr error) error {
|
||||||
// put configuration annotation in "updates"
|
// put configuration annotation in "updates"
|
||||||
if o.ApplyAnnotation {
|
if o.ApplyAnnotation {
|
||||||
if err := kubectl.CreateOrUpdateAnnotation(true, info, o.Encoder); err != nil {
|
if err := kubectl.CreateOrUpdateAnnotation(true, info, cmdutil.InternalVersionJSONEncoder()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,13 +112,6 @@ type ClientAccessFactory interface {
|
|||||||
// TODO remove. This should be rolled into `ClientConfig`
|
// TODO remove. This should be rolled into `ClientConfig`
|
||||||
ClientConfigForVersion(requiredVersion *schema.GroupVersion) (*restclient.Config, error)
|
ClientConfigForVersion(requiredVersion *schema.GroupVersion) (*restclient.Config, error)
|
||||||
|
|
||||||
// Returns interfaces for decoding objects - if toInternal is set, decoded objects will be converted
|
|
||||||
// into their internal form (if possible). Eventually the internal form will be removed as an option,
|
|
||||||
// and only versioned objects will be returned.
|
|
||||||
Decoder(toInternal bool) runtime.Decoder
|
|
||||||
// Returns an encoder capable of encoding a provided object into JSON in the default desired version.
|
|
||||||
JSONEncoder() runtime.Encoder
|
|
||||||
|
|
||||||
// UpdatePodSpecForObject will call the provided function on the pod spec this object supports,
|
// UpdatePodSpecForObject will call the provided function on the pod spec this object supports,
|
||||||
// return false if no pod spec is supported, or return an error.
|
// return false if no pod spec is supported, or return an error.
|
||||||
UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error)
|
UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error)
|
||||||
|
@ -54,7 +54,7 @@ func (f *ring2Factory) NewBuilder() *resource.Builder {
|
|||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
ObjectTyper: typer,
|
ObjectTyper: typer,
|
||||||
ClientMapper: clientMapperFunc,
|
ClientMapper: clientMapperFunc,
|
||||||
Decoder: f.clientAccessFactory.Decoder(true),
|
Decoder: InternalVersionDecoder(),
|
||||||
},
|
},
|
||||||
&resource.Mapper{
|
&resource.Mapper{
|
||||||
RESTMapper: mapper,
|
RESTMapper: mapper,
|
||||||
|
@ -231,20 +231,6 @@ func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) {
|
|||||||
return restclient.RESTClientFor(clientConfig)
|
return restclient.RESTClientFor(clientConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *ring0Factory) Decoder(toInternal bool) runtime.Decoder {
|
|
||||||
var decoder runtime.Decoder
|
|
||||||
if toInternal {
|
|
||||||
decoder = legacyscheme.Codecs.UniversalDecoder()
|
|
||||||
} else {
|
|
||||||
decoder = legacyscheme.Codecs.UniversalDeserializer()
|
|
||||||
}
|
|
||||||
return decoder
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ring0Factory) JSONEncoder() runtime.Encoder {
|
|
||||||
return legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ring0Factory) UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) {
|
func (f *ring0Factory) UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) {
|
||||||
// TODO: replace with a swagger schema based approach (identify pod template via schema introspection)
|
// TODO: replace with a swagger schema based approach (identify pod template via schema introspection)
|
||||||
switch t := obj.(type) {
|
switch t := obj.(type) {
|
||||||
@ -451,7 +437,7 @@ func (f *ring0Factory) Pauser(info *resource.Info) ([]byte, error) {
|
|||||||
return nil, errors.New("is already paused")
|
return nil, errors.New("is already paused")
|
||||||
}
|
}
|
||||||
obj.Spec.Paused = true
|
obj.Spec.Paused = true
|
||||||
return runtime.Encode(f.JSONEncoder(), info.Object)
|
return runtime.Encode(InternalVersionJSONEncoder(), info.Object)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("pausing is not supported")
|
return nil, fmt.Errorf("pausing is not supported")
|
||||||
}
|
}
|
||||||
@ -468,7 +454,7 @@ func (f *ring0Factory) Resumer(info *resource.Info) ([]byte, error) {
|
|||||||
return nil, errors.New("is not paused")
|
return nil, errors.New("is not paused")
|
||||||
}
|
}
|
||||||
obj.Spec.Paused = false
|
obj.Spec.Paused = false
|
||||||
return runtime.Encode(f.JSONEncoder(), info.Object)
|
return runtime.Encode(InternalVersionJSONEncoder(), info.Object)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("resuming is not supported")
|
return nil, fmt.Errorf("resuming is not supported")
|
||||||
}
|
}
|
||||||
@ -714,3 +700,12 @@ func computeDiscoverCacheDir(parentDir, host string) string {
|
|||||||
|
|
||||||
return filepath.Join(parentDir, safeHost)
|
return filepath.Join(parentDir, safeHost)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this method exists to help us find the points still relying on internal types.
|
||||||
|
func InternalVersionDecoder() runtime.Decoder {
|
||||||
|
return legacyscheme.Codecs.UniversalDecoder()
|
||||||
|
}
|
||||||
|
|
||||||
|
func InternalVersionJSONEncoder() runtime.Encoder {
|
||||||
|
return legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...)
|
||||||
|
}
|
||||||
|
@ -49,9 +49,8 @@ go_test(
|
|||||||
data = ["test-swagger.json"],
|
data = ["test-swagger.json"],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubectl/cmd/testing:go_default_library",
|
|
||||||
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
"//pkg/kubectl/scheme:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -20,8 +20,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSplitAndParseResourceRequest(t *testing.T) {
|
func TestSplitAndParseResourceRequest(t *testing.T) {
|
||||||
@ -57,7 +56,7 @@ func TestSplitAndParseResourceRequest(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
mapper := getMapper()
|
mapper := scheme.Registry.RESTMapper(scheme.Versions...)
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
gotInResource, gotFieldsPath, err := SplitAndParseResourceRequest(test.inresource, mapper)
|
gotInResource, gotFieldsPath, err := SplitAndParseResourceRequest(test.inresource, mapper)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -73,9 +72,3 @@ func TestSplitAndParseResourceRequest(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMapper() meta.RESTMapper {
|
|
||||||
f, _, _, _ := cmdtesting.NewTestFactory()
|
|
||||||
mapper, _ := f.Object()
|
|
||||||
return mapper
|
|
||||||
}
|
|
||||||
|
@ -47,3 +47,8 @@ var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
|||||||
// from the server for use in the client, but that gives conflicting lists of non-existent versions. This only needs to
|
// from the server for use in the client, but that gives conflicting lists of non-existent versions. This only needs to
|
||||||
// live until we stop attempting to perform any conversion client-side and is only valid for items existent in our scheme.
|
// live until we stop attempting to perform any conversion client-side and is only valid for items existent in our scheme.
|
||||||
var Versions = []schema.GroupVersion{}
|
var Versions = []schema.GroupVersion{}
|
||||||
|
|
||||||
|
// DefaultJSONEncoder returns a default encoder for our scheme
|
||||||
|
func DefaultJSONEncoder() runtime.Encoder {
|
||||||
|
return Codecs.LegacyCodec(Versions...)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user