From c646e077c9f37a7c81cca284682860b73f39898f Mon Sep 17 00:00:00 2001 From: Miti Mazmudar Date: Wed, 28 Feb 2024 20:27:42 -0500 Subject: [PATCH] feat: panic on filter constructor errors Co-authored-by: Nikita Volodin Co-authored-by: Miti Mazmudar --- .../pkg/envoyfilter/config_factory.go | 6 +++++- privacy-profile-composer/pkg/envoyfilter/filter.go | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/privacy-profile-composer/pkg/envoyfilter/config_factory.go b/privacy-profile-composer/pkg/envoyfilter/config_factory.go index 45125081..bfc403c1 100644 --- a/privacy-profile-composer/pkg/envoyfilter/config_factory.go +++ b/privacy-profile-composer/pkg/envoyfilter/config_factory.go @@ -9,6 +9,10 @@ func ConfigFactory(c interface{}) api.StreamFilterFactory { } return func(callbacks api.FilterCallbackHandler) api.StreamFilter { - return NewFilter(callbacks, conf) + filter, err := NewFilter(callbacks, conf) + if err != nil { + panic(err) + } + return filter } } diff --git a/privacy-profile-composer/pkg/envoyfilter/filter.go b/privacy-profile-composer/pkg/envoyfilter/filter.go index aaa13cf8..70ff6075 100644 --- a/privacy-profile-composer/pkg/envoyfilter/filter.go +++ b/privacy-profile-composer/pkg/envoyfilter/filter.go @@ -16,15 +16,15 @@ import ( "privacy-profile-composer/pkg/envoyfilter/internal/common" ) -func NewFilter(callbacks api.FilterCallbackHandler, config *config) api.StreamFilter { +func NewFilter(callbacks api.FilterCallbackHandler, config *config) (api.StreamFilter, error) { sidecarDirection, err := common.GetDirection(callbacks) if err != nil { - log.Fatal(err) + return nil, err } tracer, err := common.NewZipkinTracer(config.zipkinUrl) if err != nil { - log.Fatalf("unable to create tracer: %+v\n", err) + return nil, fmt.Errorf("unable to create tracer: %+v\n", err) } opaObj, err := sdk.New(context.Background(), sdk.Options{ @@ -33,7 +33,7 @@ func NewFilter(callbacks api.FilterCallbackHandler, config *config) api.StreamFi }) if err != nil { - log.Fatalf("could not initialize an OPA object --- "+ + return nil, fmt.Errorf("could not initialize an OPA object --- "+ "this means that the data plane cannot evaluate the target privacy policy ----- %+v\n", err) } @@ -43,7 +43,7 @@ func NewFilter(callbacks api.FilterCallbackHandler, config *config) api.StreamFi tracer: tracer, sidecarDirection: sidecarDirection, opa: opaObj, - } + }, nil } type Filter struct {