Publish events from Filter anlayzer module

This commit is contained in:
abhisek 2023-03-23 16:34:08 +05:30
parent 1e492ba31a
commit 3db93e9726
No known key found for this signature in database
GPG Key ID: CB92A4990C02A88F
3 changed files with 23 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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
}