Merge pull request #63398 from deads2k/cli-45-conversion

Automatic merge from submit-queue (batch tested with PRs 63258, 63398, 63403). 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 unnessary kubectl conversions

Working with unstructured types means that conversion can be eliminated.  This pulls  it from places I noticed.

/assign @juanvallejo 

@kubernetes/sig-cli-misc 

```release-note
NONE
```
pull/8/head
Kubernetes Submit Queue 2018-05-03 12:48:13 -07:00 committed by GitHub
commit eaa3aa382a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 15 deletions

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
@ -31,7 +32,6 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
@ -151,7 +151,7 @@ func (o *SetLastAppliedOptions) Validate() error {
if err != nil {
return err
}
patchBuf, diffBuf, patchType, err := editor.GetApplyPatch(info.Object, scheme.DefaultJSONEncoder())
patchBuf, diffBuf, patchType, err := editor.GetApplyPatch(info.Object.(runtime.Unstructured))
if err != nil {
return err
}
@ -189,6 +189,8 @@ func (o *SetLastAppliedOptions) Validate() error {
func (o *SetLastAppliedOptions) RunSetLastApplied() error {
for i, patch := range o.patchBufferList {
info := o.infoList[i]
finalObj := info.Object
if !o.dryRun {
mapping := info.ResourceMapping()
client, err := o.unstructuredClientForMapping(mapping)
@ -196,13 +198,12 @@ func (o *SetLastAppliedOptions) RunSetLastApplied() error {
return err
}
helper := resource.NewHelper(client, mapping)
patchedObj, err := helper.Patch(o.namespace, info.Name, patch.PatchType, patch.Patch)
finalObj, err = helper.Patch(o.namespace, info.Name, patch.PatchType, patch.Patch)
if err != nil {
return err
}
info.Refresh(patchedObj, false)
}
if err := o.PrintObj(cmdutil.AsDefaultVersionedOrOriginal(info.Object, info.Mapping), o.Out); err != nil {
if err := o.PrintObj(finalObj, o.Out); err != nil {
return err
}
}

View File

@ -426,12 +426,12 @@ func (o *EditOptions) visitToApplyEditPatch(originalInfos []*resource.Info, patc
return fmt.Errorf("no original object found for %#v", info.Object)
}
originalJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), originalInfo.Object)
originalJS, err := encodeToJson(originalInfo.Object.(runtime.Unstructured))
if err != nil {
return err
}
editedJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), info.Object)
editedJS, err := encodeToJson(info.Object.(runtime.Unstructured))
if err != nil {
return err
}
@ -461,7 +461,7 @@ func (o *EditOptions) visitToApplyEditPatch(originalInfos []*resource.Info, patc
}
func (o *EditOptions) annotationPatch(update *resource.Info) error {
patch, _, patchType, err := GetApplyPatch(update.Object, cmdutil.InternalVersionJSONEncoder())
patch, _, patchType, err := GetApplyPatch(update.Object.(runtime.Unstructured))
if err != nil {
return err
}
@ -478,8 +478,8 @@ func (o *EditOptions) annotationPatch(update *resource.Info) error {
return nil
}
func GetApplyPatch(obj runtime.Object, codec runtime.Encoder) ([]byte, []byte, types.PatchType, error) {
beforeJSON, err := encodeToJson(codec, obj)
func GetApplyPatch(obj runtime.Unstructured) ([]byte, []byte, types.PatchType, error) {
beforeJSON, err := encodeToJson(obj)
if err != nil {
return nil, []byte(""), types.MergePatchType, err
}
@ -494,7 +494,7 @@ func GetApplyPatch(obj runtime.Object, codec runtime.Encoder) ([]byte, []byte, t
}
annotations[api.LastAppliedConfigAnnotation] = string(beforeJSON)
accessor.SetAnnotations(objCopy, annotations)
afterJSON, err := encodeToJson(codec, objCopy)
afterJSON, err := encodeToJson(objCopy.(runtime.Unstructured))
if err != nil {
return nil, beforeJSON, types.MergePatchType, err
}
@ -502,8 +502,8 @@ func GetApplyPatch(obj runtime.Object, codec runtime.Encoder) ([]byte, []byte, t
return patch, beforeJSON, types.MergePatchType, err
}
func encodeToJson(codec runtime.Encoder, obj runtime.Object) ([]byte, error) {
serialization, err := runtime.Encode(codec, obj)
func encodeToJson(obj runtime.Unstructured) ([]byte, error) {
serialization, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)
if err != nil {
return nil, err
}
@ -560,12 +560,12 @@ func (o *EditOptions) visitToPatch(originalInfos []*resource.Info, patchVisitor
return fmt.Errorf("no original object found for %#v", info.Object)
}
originalJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), originalInfo.Object)
originalJS, err := encodeToJson(originalInfo.Object.(runtime.Unstructured))
if err != nil {
return err
}
editedJS, err := encodeToJson(cmdutil.InternalVersionJSONEncoder(), info.Object)
editedJS, err := encodeToJson(info.Object.(runtime.Unstructured))
if err != nil {
return err
}