Merge pull request #40689 from deads2k/add-details-to-patch-err

Automatic merge from submit-queue (batch tested with PRs 39169, 40719, 38954, 40808, 40689)

add details to patch conflict

Adds conflict details to the patch message so we can debug #39471.  Seems like this may have general utility since others may also wonder what they conflicted on.

@sig-api
This commit is contained in:
Kubernetes Submit Queue 2017-02-02 02:05:24 -08:00 committed by GitHub
commit 01ac994541

View File

@ -663,17 +663,17 @@ func patchResource(
return nil, err return nil, err
} }
if hasConflicts { if hasConflicts {
if glog.V(4) { diff1, _ := json.Marshal(currentPatchMap)
diff1, _ := json.Marshal(currentPatchMap) diff2, _ := json.Marshal(originalPatchMap)
diff2, _ := json.Marshal(originalPatchMap) patchDiffErr := fmt.Errorf("there is a meaningful conflict:\n diff1=%v\n, diff2=%v\n", diff1, diff2)
glog.Infof("patchResource failed for resource %s, because there is a meaningful conflict.\n diff1=%v\n, diff2=%v\n", name, diff1, diff2) glog.V(4).Infof("patchResource failed for resource %s, because there is a meaningful conflict.\n diff1=%v\n, diff2=%v\n", name, diff1, diff2)
}
// Return the last conflict error we got if we have one // Return the last conflict error we got if we have one
if lastConflictErr != nil { if lastConflictErr != nil {
return nil, lastConflictErr return nil, lastConflictErr
} }
// Otherwise manufacture one of our own // Otherwise manufacture one of our own
return nil, errors.NewConflict(resource.GroupResource(), name, nil) return nil, errors.NewConflict(resource.GroupResource(), name, patchDiffErr)
} }
objToUpdate := patcher.New() objToUpdate := patcher.New()