Commit 085f0d74 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #38538 from juanvallejo/jvallejo/dont-report-success-if-obj-not-patched

Automatic merge from submit-queue Prevent "patched" output on obj not patched **Release note**: ```release-note release-note-none ``` This patch compares an original object against a patched object returned from the server and only announces that the object was successfully patched if the object returned from the server does not equal the original object. @fabianofranz @kubernetes/cli-review
parents 18d05c7d 7410acf4
......@@ -17,11 +17,13 @@ limitations under the License.
package cmd
import (
"encoding/json"
"fmt"
"io"
"reflect"
"strings"
"github.com/evanphx/json-patch"
jsonpatch "github.com/evanphx/json-patch"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/api"
......@@ -167,8 +169,9 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin
}
if !options.Local {
dataChangedMsg := "not patched"
helper := resource.NewHelper(client, mapping)
_, err := helper.Patch(namespace, name, patchType, patchBytes)
patchedObj, err := helper.Patch(namespace, name, patchType, patchBytes)
if err != nil {
return err
}
......@@ -184,8 +187,20 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin
}
count++
oldData, err := json.Marshal(info.Object)
if err != nil {
return err
}
newData, err := json.Marshal(patchedObj)
if err != nil {
return err
}
if !reflect.DeepEqual(oldData, newData) {
dataChangedMsg = "patched"
}
if options.OutputFormat == "name" || len(options.OutputFormat) == 0 {
cmdutil.PrintSuccess(mapper, options.OutputFormat == "name", out, "", name, false, "patched")
cmdutil.PrintSuccess(mapper, options.OutputFormat == "name", out, "", name, false, dataChangedMsg)
}
return nil
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment