Skip to content

Commit 46a9b05

Browse files
committed
pass workers as a flag
1 parent 37be218 commit 46a9b05

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

vulnfeeds/cmd/debian/main.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ const (
3636
debianSecurityTrackerURL = "https://security-tracker.debian.org/tracker/data/json"
3737
outputBucketDefault = "debian-osv"
3838
hashMetadataKey = "sha256-hash"
39-
numWorkers = 128
4039
)
4140

4241
func main() {
4342
logger.InitGlobalLogger()
4443

4544
debianOutputPath := flag.String("output_path", debianOutputPathDefault, "Path to output OSV files.")
4645
outputBucketName := flag.String("output_bucket", outputBucketDefault, "The GCS bucket to write to.")
46+
numWorkers := flag.String("num_workers", "64", "Number of workers to process records")
4747
flag.Parse()
4848

4949
err := os.MkdirAll(*debianOutputPath, 0755)
@@ -73,16 +73,23 @@ func main() {
7373
var wg sync.WaitGroup
7474
vulnChan := make(chan *vulns.Vulnerability)
7575

76-
for range numWorkers {
76+
for range *numWorkers {
7777
wg.Add(1)
7878
go func() {
7979
defer wg.Done()
8080
worker(ctx, vulnChan, bkt, *debianOutputPath)
8181
}()
8282
}
8383

84-
generateOSVFromDebianTracker(debianData, debianReleaseMap, allCVEs, vulnChan)
84+
osvCVEs := generateOSVFromDebianTracker(debianData, debianReleaseMap, allCVEs)
8585

86+
for _, v := range osvCVEs {
87+
if len(v.Affected) == 0 {
88+
logger.Warn(fmt.Sprintf("Skipping %s as no affected versions found.", v.ID), slog.String("id", v.ID))
89+
continue
90+
}
91+
vulnChan <- v
92+
}
8693
close(vulnChan)
8794
wg.Wait()
8895

@@ -156,7 +163,7 @@ func worker(ctx context.Context, vulnChan <-chan *vulns.Vulnerability, bkt *stor
156163
}
157164

158165
// generateOSVFromDebianTracker converts Debian Security Tracker entries to OSV format.
159-
func generateOSVFromDebianTracker(debianData DebianSecurityTrackerData, debianReleaseMap map[string]string, allCVEs map[cves.CVEID]cves.Vulnerability, vulnChan chan<- *vulns.Vulnerability) {
166+
func generateOSVFromDebianTracker(debianData DebianSecurityTrackerData, debianReleaseMap map[string]string, allCVEs map[cves.CVEID]cves.Vulnerability) map[string]*vulns.Vulnerability {
160167
logger.Info("Converting Debian Security Tracker data to OSV.")
161168
osvCves := make(map[string]*vulns.Vulnerability)
162169

@@ -236,13 +243,7 @@ func generateOSVFromDebianTracker(debianData DebianSecurityTrackerData, debianRe
236243
}
237244
}
238245
}
239-
for _, v := range osvCves {
240-
if len(v.Affected) == 0 {
241-
logger.Warn(fmt.Sprintf("Skipping %s as no affected versions found.", v.ID), slog.String("id", v.ID))
242-
continue
243-
}
244-
vulnChan <- v
245-
}
246+
return osvCves
246247
}
247248

248249
// getDebianReleaseMap gets the Debian version number, excluding testing and experimental versions.

vulnfeeds/cmd/debian/run_debian_convert.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ echo "Begin syncing NVD data from GCS bucket ${INPUT_BUCKET}"
2222
gcloud --no-user-output-enabled storage -q cp "gs://${INPUT_BUCKET}/nvd/*-????.json" "${CVE_OUTPUT}"
2323
echo "Successfully synced from GCS bucket"
2424

25-
./debian-osv -output_bucket "$OUTPUT_BUCKET" -output_path "$OSV_OUTPUT_PATH"
25+
./debian-osv -output_bucket "$OUTPUT_BUCKET" -output_path "$OSV_OUTPUT_PATH" -num_workers "256"
2626
echo "Successfully converted and uploaded to cloud"

0 commit comments

Comments
 (0)