From 3db93e9726af46eacf2f75f64e24b6670aeb42c6 Mon Sep 17 00:00:00 2001 From: abhisek Date: Thu, 23 Mar 2023 16:34:08 +0530 Subject: [PATCH] Publish events from Filter anlayzer module --- pkg/analyzer/cel_filter.go | 8 ++++++++ pkg/analyzer/cel_filter_suite.go | 14 +++++++++++--- pkg/analyzer/event.go | 4 ++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/pkg/analyzer/cel_filter.go b/pkg/analyzer/cel_filter.go index 6126016..65cfdf1 100644 --- a/pkg/analyzer/cel_filter.go +++ b/pkg/analyzer/cel_filter.go @@ -71,6 +71,14 @@ func (f *celFilterAnalyzer) Analyze(manifest *models.PackageManifest, f.stat.IncMatchedPackage() f.packages[pkg.Id()] = pkg + + handler(&AnalyzerEvent{ + Source: f.Name(), + Type: ET_FilterExpressionMatched, + Manifest: manifest, + Package: pkg, + Message: "cli-filter", + }) } return nil diff --git a/pkg/analyzer/cel_filter_suite.go b/pkg/analyzer/cel_filter_suite.go index 158347b..4ddf0dd 100644 --- a/pkg/analyzer/cel_filter_suite.go +++ b/pkg/analyzer/cel_filter_suite.go @@ -78,7 +78,7 @@ func (f *celFilterSuiteAnalyzer) Analyze(manifest *models.PackageManifest, } if res.Matched() { - f.queueMatchedPkg(pkg, res.GetMatchedFilter().Name()) + f.handleMatchedPkg(pkg, res.GetMatchedFilter().Name(), handler) } return nil @@ -123,8 +123,8 @@ func (f *celFilterSuiteAnalyzer) renderMatchTable() { tbl.Render() } -func (f *celFilterSuiteAnalyzer) queueMatchedPkg(pkg *models.Package, - filterName string) { +func (f *celFilterSuiteAnalyzer) handleMatchedPkg(pkg *models.Package, + filterName string, handler AnalyzerEventHandler) { if _, ok := f.matchedPackages[pkg.Id()]; ok { return } @@ -134,6 +134,14 @@ func (f *celFilterSuiteAnalyzer) queueMatchedPkg(pkg *models.Package, filterName: filterName, pkg: pkg, } + + handler(&AnalyzerEvent{ + Source: f.Name(), + Type: ET_FilterExpressionMatched, + Manifest: pkg.Manifest, + Package: pkg, + Message: filterName, + }) } // To correctly unmarshal a []byte into protobuf message, we must use diff --git a/pkg/analyzer/event.go b/pkg/analyzer/event.go index a72680b..f829398 100644 --- a/pkg/analyzer/event.go +++ b/pkg/analyzer/event.go @@ -3,3 +3,7 @@ package analyzer func (ev *AnalyzerEvent) IsFailOnError() bool { return ev.Type == ET_AnalyzerFailOnError } + +func (ev *AnalyzerEvent) IsFilterMatch() bool { + return ev.Type == ET_FilterExpressionMatched +}