Skip to content

Commit 86947a5

Browse files
committed
Update the importer to populate severities field
Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent c4636f4 commit 86947a5

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

vulnerabilities/import_runner.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -180,33 +180,36 @@ def process_inferences(inferences: List[Inference], advisory: Advisory, improver
180180
reference_id=ref.reference_id,
181181
url=ref.url,
182182
)
183-
if not reference:
184-
continue
185183

186-
VulnerabilityRelatedReference.objects.update_or_create(
187-
reference=reference,
188-
vulnerability=vulnerability,
189-
)
184+
if reference:
185+
VulnerabilityRelatedReference.objects.update_or_create(
186+
reference=reference,
187+
vulnerability=vulnerability,
188+
)
190189
updated = False
191190
for severity in ref.severities:
192191
try:
193192
published_at = str(severity.published_at) if severity.published_at else None
194-
_vs, updated = VulnerabilitySeverity.objects.update_or_create(
193+
(
194+
vulnerability_severity,
195+
updated,
196+
) = VulnerabilitySeverity.objects.update_or_create(
195197
scoring_system=severity.system.identifier,
196-
reference=reference,
198+
url=ref.url,
199+
value=severity.value,
200+
scoring_elements=severity.scoring_elements,
197201
defaults={
198-
"value": str(severity.value),
199-
"scoring_elements": str(severity.scoring_elements),
200202
"published_at": published_at,
201203
},
202204
)
205+
vulnerability.severities.add(vulnerability_severity)
203206
except:
204207
logger.error(
205208
f"Failed to create VulnerabilitySeverity for: {severity} with error:\n{traceback_format_exc()}"
206209
)
207210
if updated:
208211
logger.info(
209-
f"Severity updated for reference {ref!r} to value: {severity.value!r} "
212+
f"Severity updated for reference {ref.url!r} to value: {severity.value!r} "
210213
f"and scoring_elements: {severity.scoring_elements!r}"
211214
)
212215

vulnerabilities/pipes/advisory.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,25 +104,24 @@ def import_advisory(
104104
reference_id=ref.reference_id,
105105
url=ref.url,
106106
)
107-
if not reference:
108-
continue
109-
110-
VulnerabilityRelatedReference.objects.update_or_create(
111-
reference=reference,
112-
vulnerability=vulnerability,
113-
)
107+
if reference:
108+
VulnerabilityRelatedReference.objects.update_or_create(
109+
reference=reference,
110+
vulnerability=vulnerability,
111+
)
114112
for severity in ref.severities:
115113
try:
116114
published_at = str(severity.published_at) if severity.published_at else None
117-
_, created = VulnerabilitySeverity.objects.update_or_create(
115+
vulnerability_severity, created = VulnerabilitySeverity.objects.update_or_create(
118116
scoring_system=severity.system.identifier,
119-
reference=reference,
117+
url=ref.url,
118+
value=severity.value,
119+
scoring_elements=severity.scoring_elements,
120120
defaults={
121-
"value": str(severity.value),
122-
"scoring_elements": str(severity.scoring_elements),
123121
"published_at": published_at,
124122
},
125123
)
124+
vulnerability.severities.add(vulnerability_severity)
126125
except:
127126
if logger:
128127
logger(
@@ -132,7 +131,7 @@ def import_advisory(
132131
if not created:
133132
if logger:
134133
logger(
135-
f"Severity updated for reference {ref!r} to value: {severity.value!r} "
134+
f"Severity updated for reference {ref.url!r} to value: {severity.value!r} "
136135
f"and scoring_elements: {severity.scoring_elements!r}",
137136
level=logging.DEBUG,
138137
)

0 commit comments

Comments
 (0)