Skip to content

Commit af9a06d

Browse files
committed
Fix errors
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 88dc18c commit af9a06d

File tree

2 files changed

+33
-43
lines changed

2 files changed

+33
-43
lines changed

vulnerabilities/models.py

Lines changed: 28 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2872,65 +2872,52 @@ def latest_for_avids(self, avids):
28722872
return self.filter(avid__in=avids).latest_per_avid()
28732873

28742874
def latest_affecting_advisories_for_purl(self, purl):
2875-
affecting_exists = ImpactedPackageAffecting.objects.filter(
2876-
impacted_package__advisory_id=OuterRef("pk"),
2877-
package__package_url=purl,
2878-
)
2879-
2880-
return (
2881-
self.annotate(has_affecting=Exists(affecting_exists))
2882-
.filter(has_affecting=True)
2883-
.latest_per_avid()
2875+
adv_ids = ImpactedPackageAffecting.objects.filter(package__package_url=purl).values_list(
2876+
"impacted_package__advisory_id",
2877+
flat=True,
28842878
)
2879+
return self.filter(id__in=Subquery(adv_ids)).latest_per_avid()
28852880

28862881
def latest_affecting_advisories_for_purls(self, purls):
2887-
affecting_exists = ImpactedPackageAffecting.objects.filter(
2888-
impacted_package__advisory_id=OuterRef("pk"),
2889-
package__package_url__in=purls,
2890-
)
2891-
2892-
return (
2893-
self.annotate(has_affecting=Exists(affecting_exists))
2894-
.filter(has_affecting=True)
2895-
.latest_per_avid()
2882+
adv_ids = ImpactedPackageAffecting.objects.filter(
2883+
package__package_url__in=purls
2884+
).values_list(
2885+
"impacted_package__advisory_id",
2886+
flat=True,
28962887
)
2888+
return self.filter(id__in=Subquery(adv_ids)).latest_per_avid()
28972889

28982890
def latest_fixed_by_advisories_for_purl(self, purl):
2899-
fixed_exists = ImpactedPackageFixedBy.objects.filter(
2900-
impacted_package__advisory_id=OuterRef("pk"),
2901-
package__package_url=purl,
2902-
)
2903-
2904-
return (
2905-
self.annotate(has_fixed=Exists(fixed_exists)).filter(has_fixed=True).latest_per_avid()
2891+
adv_ids = ImpactedPackageFixedBy.objects.filter(package__package_url=purl).values_list(
2892+
"impacted_package__advisory_id",
2893+
flat=True,
29062894
)
2895+
return self.filter(id__in=Subquery(adv_ids)).latest_per_avid()
29072896

29082897
def latest_fixed_by_advisories_for_purls(self, purls):
2909-
fixed_exists = ImpactedPackageFixedBy.objects.filter(
2910-
impacted_package__advisory_id=OuterRef("pk"),
2911-
package__package_url__in=purls,
2898+
adv_ids = ImpactedPackageFixedBy.objects.filter(package__package_url__in=purls).values_list(
2899+
"impacted_package__advisory_id",
2900+
flat=True,
29122901
)
29132902

2914-
return (
2915-
self.annotate(has_fixed=Exists(fixed_exists)).filter(has_fixed=True).latest_per_avid()
2916-
)
2903+
return self.filter(id__in=Subquery(adv_ids)).latest_per_avid()
29172904

29182905
def latest_advisories_for_purls(self, purls):
2919-
adv_ids = ImpactedPackageAffecting.objects.filter(
2920-
package__package_url__in=purls
2921-
).values_list(
2922-
"impacted_package__advisory_id",
2923-
flat=True,
2924-
).union(
2925-
ImpactedPackageFixedBy.objects.filter(
2926-
package__package_url__in=purls
2927-
).values_list(
2906+
adv_ids = (
2907+
ImpactedPackageAffecting.objects.filter(package__package_url__in=purls)
2908+
.values_list(
29282909
"impacted_package__advisory_id",
29292910
flat=True,
29302911
)
2912+
.union(
2913+
ImpactedPackageFixedBy.objects.filter(package__package_url__in=purls).values_list(
2914+
"impacted_package__advisory_id",
2915+
flat=True,
2916+
)
2917+
)
29312918
)
29322919

2933-
qs = AdvisoryV2.objects.filter(id__in=Subquery(adv_ids))
2920+
qs = self.filter(id__in=Subquery(adv_ids))
29342921
return qs.latest_per_avid()
29352922

29362923

vulnerabilities/pipelines/v2_improvers/compute_advisory_content_hash.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ def compute_advisory_content_hash(self):
4141
batch_size = 5000
4242

4343
for advisory in progress.iter(advisories.iterator(chunk_size=batch_size)):
44-
advisory.advisory_content_hash = compute_advisory_content(advisory)
45-
to_update.append(advisory)
44+
try:
45+
advisory.advisory_content_hash = compute_advisory_content(advisory)
46+
to_update.append(advisory)
47+
except Exception as e:
48+
self.log(f"Error computing advisory_content_hash for {advisory.avid}: {e}")
4649

4750
if len(to_update) >= batch_size:
4851
AdvisoryV2.objects.bulk_update(

0 commit comments

Comments
 (0)