From da1775dbf03bef654a04083821040a4ce6af2a42 Mon Sep 17 00:00:00 2001 From: Karl Isenberg Date: Fri, 17 Sep 2021 16:46:47 -0700 Subject: [PATCH] Revert refactor to filtering that broke tests --- pkg/apply/task/apply_task.go | 49 +++++++++++++++--------------------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/pkg/apply/task/apply_task.go b/pkg/apply/task/apply_task.go index fe83cf3e..8b09b6b7 100644 --- a/pkg/apply/task/apply_task.go +++ b/pkg/apply/task/apply_task.go @@ -115,18 +115,28 @@ func (a *ApplyTask) Start(taskContext *taskrunner.TaskContext) { } // Check filters to see if we're prevented from applying. - filtered, err := a.filter(obj) - if err != nil { - if klog.V(5).Enabled() { - klog.Errorf("error filtering: %w", err) + var filtered bool + var filterErr error + for _, filter := range a.Filters { + klog.V(6).Infof("apply filter %s: %s", filter.Name(), id) + var reason string + filtered, reason, filterErr = filter.Filter(obj) + if filterErr != nil { + if klog.V(5).Enabled() { + klog.Errorf("error during %s, (%s): %s", filter.Name(), id, filterErr) + } + taskContext.EventChannel() <- createApplyFailedEvent(id, filterErr) + taskContext.CaptureResourceFailure(id) + break + } + if filtered { + klog.V(4).Infof("apply filtered by %s because (%s): %s", filter.Name(), reason, id) + taskContext.EventChannel() <- createApplyEvent(id, event.Unchanged, obj) + taskContext.CaptureResourceFailure(id) + break } - taskContext.EventChannel() <- createApplyFailedEvent(id, err) - taskContext.CaptureResourceFailure(id) - continue } - if filtered { - taskContext.EventChannel() <- createApplyEvent(id, event.Unchanged, obj) - taskContext.CaptureResourceFailure(id) + if filtered || filterErr != nil { continue } @@ -220,25 +230,6 @@ func (a *ApplyTask) sendTaskResult(taskContext *taskrunner.TaskContext) { // ClearTimeout is not supported by the ApplyTask. func (a *ApplyTask) ClearTimeout() {} -// filter loops through the filter list and executes them on the object. -// Returns true if the object should be filtered (not applied). -func (a *ApplyTask) filter(obj *unstructured.Unstructured) (bool, error) { - id := object.UnstructuredToObjMetaOrDie(obj) - for _, filter := range a.Filters { - klog.V(6).Infof("apply filter %s: %s", filter.Name(), id) - var reason string - filtered, reason, err := filter.Filter(obj) - if err != nil { - return true, fmt.Errorf("failed to filter %q with %q: %w", id, filter.Name(), err) - } - if filtered { - klog.V(4).Infof("apply filtered by %s because (%s): %s", filter.Name(), reason, id) - return true, nil - } - } - return false, nil -} - // mutate loops through the mutator list and executes them on the object. func (a *ApplyTask) mutate(ctx context.Context, obj *unstructured.Unstructured) error { id := object.UnstructuredToObjMetaOrDie(obj)