mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-16 23:29:21 +00:00
Prevent "patched" output on obj not patched
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.
This commit is contained in:
parent
f5f109ca11
commit
7410acf4ab
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user