Merge pull request #120340 from pohly/dra-helper-logging-improvements

DRA: helper logging improvements
This commit is contained in:
Kubernetes Prow Robot 2023-09-05 09:05:51 -07:00 committed by GitHub
commit e00af59d0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -263,28 +263,34 @@ const (
schedulingCtxKeyPrefix = "schedulingCtx:"
)
func (ctrl *controller) add(logger *klog.Logger, obj interface{}) {
if logger != nil {
logger.Info("new object", "content", prettyPrint(obj))
func (ctrl *controller) add(loggerV6 *klog.Logger, obj interface{}) {
var logger klog.Logger
if loggerV6 != nil {
logger = loggerV6.WithValues("object", prettyPrint(obj))
} else {
logger = ctrl.logger.V(5)
}
ctrl.addNewOrUpdated("Adding new work item", obj)
ctrl.addNewOrUpdated(logger, "Adding new work item", obj)
}
func (ctrl *controller) update(logger *klog.Logger, oldObj, newObj interface{}) {
if logger != nil {
func (ctrl *controller) update(loggerV6 *klog.Logger, oldObj, newObj interface{}) {
var logger klog.Logger
if loggerV6 != nil {
diff := cmp.Diff(oldObj, newObj)
logger.Info("updated object", "content", prettyPrint(newObj), "diff", diff)
logger = loggerV6.WithValues("object", prettyPrint(newObj), "diff", diff)
} else {
logger = ctrl.logger.V(5)
}
ctrl.addNewOrUpdated("Adding updated work item", newObj)
ctrl.addNewOrUpdated(logger, "Adding updated work item", newObj)
}
func (ctrl *controller) addNewOrUpdated(msg string, obj interface{}) {
func (ctrl *controller) addNewOrUpdated(loggerV klog.Logger, msg string, obj interface{}) {
objKey, err := getKey(obj)
if err != nil {
ctrl.logger.Error(err, "Failed to get key", "obj", obj)
loggerV.Error(err, "Failed to get key", "obj", obj)
return
}
ctrl.logger.V(5).Info(msg, "key", objKey)
loggerV.Info(msg, "key", objKey)
ctrl.queue.Add(objKey)
}
@ -774,16 +780,20 @@ func (ctrl *controller) syncPodSchedulingContexts(ctx context.Context, schedulin
ctrl.allocateClaims(ctx, claims, selectedNode, selectedUser)
allErrorsStr := "allocation of one or more pod claims failed."
allocationFailed := false
var allErrors []error
for _, delayed := range claims {
if delayed.Error != nil {
allErrorsStr = fmt.Sprintf("%s Claim %s: %s.", allErrorsStr, delayed.Claim.Name, delayed.Error)
allocationFailed = true
if strings.Contains(delayed.Error.Error(), delayed.Claim.Name) {
// Avoid adding redundant information.
allErrors = append(allErrors, delayed.Error)
} else {
// Include claim name, it's not in the underlying error.
allErrors = append(allErrors, fmt.Errorf("claim %s: %v", delayed.Claim.Name, delayed.Error))
}
}
}
if allocationFailed {
return fmt.Errorf(allErrorsStr)
if len(allErrors) > 0 {
return errors.Join(allErrors...)
}
}
}