From 8c7ecc811494de319e0df44d17daf85b7f5cc44c Mon Sep 17 00:00:00 2001 From: Hritik Vijay Date: Fri, 8 Apr 2022 23:13:46 +0530 Subject: [PATCH 1/2] Fix improver framework not accepting severities Signed-off-by: Hritik Vijay --- vulnerabilities/improve_runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vulnerabilities/improve_runner.py b/vulnerabilities/improve_runner.py index 91a33e8c6..d2615e471 100644 --- a/vulnerabilities/improve_runner.py +++ b/vulnerabilities/improve_runner.py @@ -62,7 +62,7 @@ def process_inferences(inferences: List[Inference], advisory: Advisory, improver continue for ref in inference.references: - ref, _ = models.VulnerabilityReference.objects.get_or_create( + reference, _ = models.VulnerabilityReference.objects.get_or_create( vulnerability=vuln, reference_id=ref.reference_id, url=ref.url ) @@ -70,7 +70,7 @@ def process_inferences(inferences: List[Inference], advisory: Advisory, improver obj, updated = models.VulnerabilitySeverity.objects.update_or_create( vulnerability=vuln, scoring_system=severity.system.identifier, - reference=ref, + reference=reference, defaults={"value": str(severity.value)}, ) if updated: From 3a38e6b73b0a04156c8f77e1fa23bc953f29b387 Mon Sep 17 00:00:00 2001 From: Hritik Vijay Date: Fri, 8 Apr 2022 23:16:44 +0530 Subject: [PATCH 2/2] Be explicit about improver vs improver_class Same about importer Signed-off-by: Hritik Vijay --- vulnerabilities/import_runner.py | 8 ++++---- vulnerabilities/improve_runner.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vulnerabilities/import_runner.py b/vulnerabilities/import_runner.py index 576df96b7..6f90e2492 100644 --- a/vulnerabilities/import_runner.py +++ b/vulnerabilities/import_runner.py @@ -47,15 +47,15 @@ class ImportRunner: - No valid data from the data source must be skipped or truncated. """ - def __init__(self, importer: Importer): - self.importer = importer + def __init__(self, importer_class: Importer): + self.importer_class = importer_class def run(self) -> None: """ Create a data source for the given importer and store the data retrieved in the database. """ - importer_name = self.importer.qualified_name - importer_class = self.importer + importer_name = self.importer_class.qualified_name + importer_class = self.importer_class logger.info(f"Starting import for {importer_name}") advisory_datas = importer_class().advisory_data() count = process_advisories(advisory_datas=advisory_datas, importer_name=importer_name) diff --git a/vulnerabilities/improve_runner.py b/vulnerabilities/improve_runner.py index d2615e471..06a035d37 100644 --- a/vulnerabilities/improve_runner.py +++ b/vulnerabilities/improve_runner.py @@ -21,18 +21,18 @@ class ImproveRunner: improver and parsing the returned Inferences into proper database fields """ - def __init__(self, improver): - self.improver = improver + def __init__(self, improver_class): + self.improver_class = improver_class def run(self) -> None: - improver = self.improver() + improver = self.improver_class() logger.info(f"Running improver: {improver.qualified_name}") for advisory in improver.interesting_advisories: inferences = improver.get_inferences(advisory_data=advisory.to_advisory_data()) process_inferences( inferences=inferences, advisory=advisory, improver_name=improver.qualified_name ) - logger.info("Finished improving using %s.", self.improver.qualified_name) + logger.info("Finished improving using %s.", self.improver_class.qualified_name) @transaction.atomic