Merge pull request #67929 from charrywanganthony/label_dryrun

fix the output of dryrun when label the same value as original
pull/58/head
k8s-ci-robot 2018-09-26 06:08:44 -07:00 committed by GitHub
commit 1886e09041
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 10 deletions

View File

@ -252,18 +252,25 @@ func (o *LabelOptions) RunLabel() error {
} }
var outputObj runtime.Object var outputObj runtime.Object
dataChangeMsg := "not labeled" var dataChangeMsg string
obj := info.Object
oldData, err := json.Marshal(obj)
if err != nil {
return err
}
if o.dryrun || o.local || o.list { if o.dryrun || o.local || o.list {
err = labelFunc(info.Object, o.overwrite, o.resourceVersion, o.newLabels, o.removeLabels) err = labelFunc(obj, o.overwrite, o.resourceVersion, o.newLabels, o.removeLabels)
if err != nil { if err != nil {
return err return err
} }
dataChangeMsg = "labeled" newObj, err := json.Marshal(obj)
if err != nil {
return err
}
dataChangeMsg = updateDataChangeMsg(oldData, newObj)
outputObj = info.Object outputObj = info.Object
} else { } else {
obj := info.Object
name, namespace := info.Name, info.Namespace name, namespace := info.Name, info.Namespace
oldData, err := json.Marshal(obj)
if err != nil { if err != nil {
return err return err
} }
@ -283,14 +290,12 @@ func (o *LabelOptions) RunLabel() error {
if err := o.Recorder.Record(obj); err != nil { if err := o.Recorder.Record(obj); err != nil {
glog.V(4).Infof("error recording current command: %v", err) glog.V(4).Infof("error recording current command: %v", err)
} }
newData, err := json.Marshal(obj) newObj, err := json.Marshal(obj)
if err != nil { if err != nil {
return err return err
} }
if !reflect.DeepEqual(oldData, newData) { dataChangeMsg = updateDataChangeMsg(oldData, newObj)
dataChangeMsg = "labeled" patchBytes, err := jsonpatch.CreateMergePatch(oldData, newObj)
}
patchBytes, err := jsonpatch.CreateMergePatch(oldData, newData)
createdPatch := err == nil createdPatch := err == nil
if err != nil { if err != nil {
glog.V(2).Infof("couldn't compute patch: %v", err) glog.V(2).Infof("couldn't compute patch: %v", err)
@ -344,6 +349,14 @@ func (o *LabelOptions) RunLabel() error {
}) })
} }
func updateDataChangeMsg(oldObj []byte, newObj []byte) string {
msg := "not labeled"
if !reflect.DeepEqual(oldObj, newObj) {
msg = "labeled"
}
return msg
}
func validateNoOverwrites(accessor metav1.Object, labels map[string]string) error { func validateNoOverwrites(accessor metav1.Object, labels map[string]string) error {
allErrs := []error{} allErrs := []error{}
for key := range labels { for key := range labels {