Skip to content

Commit

Permalink
Merge pull request #1039 from fluxcd/missing-return-statement
Browse files Browse the repository at this point in the history
Fix add missing return statement and a few style issues
  • Loading branch information
matheuscscp authored Feb 12, 2025
2 parents 83ed0c5 + c4eed6b commit 5df5b78
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
32 changes: 17 additions & 15 deletions internal/server/receiver_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,18 +118,22 @@ func (s *ReceiverServer) handlePayload(w http.ResponseWriter, r *http.Request) {
return
}

var evaluator func(context.Context, client.Object) (*bool, error)
resourceFilter := func(ctx context.Context, o client.Object) (*bool, error) {
accept := true
return &accept, nil
}
if receiver.Spec.ResourceFilter != "" {
evaluator, err = newResourceFilter(receiver.Spec.ResourceFilter, r)
resourceFilter, err = newResourceFilter(receiver.Spec.ResourceFilter, r)
if err != nil {
logger.Error(err, "unable to create CEL evaluator")
logger.Error(err, "unable to create resource filter")
w.WriteHeader(http.StatusInternalServerError)
return
}
}

var withErrors bool
for _, resource := range receiver.Spec.Resources {
if err := s.requestReconciliation(ctx, logger, resource, receiver.Namespace, evaluator); err != nil {
if err := s.requestReconciliation(ctx, logger, resource, receiver.Namespace, resourceFilter); err != nil {
logger.Error(err, "unable to request reconciliation", "resource", resource)
withErrors = true
}
Expand All @@ -152,18 +156,16 @@ func (s *ReceiverServer) notifySingleResource(ctx context.Context, logger logr.L
}

func (s *ReceiverServer) notifyResource(ctx context.Context, logger logr.Logger, resource *metav1.PartialObjectMetadata, resourceFilter resourceFilter) error {
if resourceFilter != nil {
accept, err := resourceFilter(ctx, resource)
if err != nil {
return err
}
if !*accept {
logger.V(1).Info(fmt.Sprintf("resource '%s/%s.%s' NOT annotated because CEL expression returned false", resource.Kind, resource.Name, resource.Namespace))
return nil
}
}
err := s.annotate(ctx, resource)
accept, err := resourceFilter(ctx, resource)
if err != nil {
return err
}
if !*accept {
logger.V(1).Info(fmt.Sprintf("resource '%s/%s.%s' NOT annotated because CEL expression returned false", resource.Kind, resource.Name, resource.Namespace))
return nil
}

if err := s.annotate(ctx, resource); err != nil {
return fmt.Errorf("failed to annotate resource: '%s/%s.%s': %w", resource.Kind, resource.Name, resource.Namespace, err)
} else {
logger.Info(fmt.Sprintf("resource '%s/%s.%s' annotated",
Expand Down
4 changes: 2 additions & 2 deletions internal/server/receiver_resource_filter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ func TestCELEvaluation(t *testing.T) {
for _, tt := range evaluationTests {
t.Run(tt.expression, func(t *testing.T) {
g := NewWithT(t)
evaluator, err := newResourceFilter(tt.expression, tt.request)
resourceFilter, err := newResourceFilter(tt.expression, tt.request)
g.Expect(err).To(Succeed())

result, err := evaluator(context.Background(), tt.resource)
result, err := resourceFilter(context.Background(), tt.resource)
g.Expect(err).To(Succeed())
g.Expect(result).To(Equal(&tt.wantResult))
})
Expand Down

0 comments on commit 5df5b78

Please sign in to comment.