Skip to content

Commit f647d96

Browse files
committed
Use ImpactedPackage to filter vulnerable packages in v2 queryset
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 2222287 commit f647d96

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

vulnerabilities/models.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2932,10 +2932,12 @@ def search(self, query: str = None):
29322932
def with_vulnerability_counts(self):
29332933
return self.annotate(
29342934
vulnerability_count=Count(
2935-
"affected_by_advisories",
2935+
"affected_in_impacts__advisory",
2936+
distinct=True,
29362937
),
29372938
patched_vulnerability_count=Count(
2938-
"fixing_advisories",
2939+
"fixed_in_impacts__advisory",
2940+
distinct=True,
29392941
),
29402942
)
29412943

@@ -2953,7 +2955,7 @@ def get_fixed_by_package_versions(self, purl: PackageURL, fix=True):
29532955
}
29542956

29552957
if fix:
2956-
filter_dict["fixing_advisories__isnull"] = False
2958+
filter_dict["fixed_in_impacts__isnull"] = False
29572959

29582960
# TODO: why do we need distinct
29592961
return PackageV2.objects.filter(**filter_dict).distinct()
@@ -2986,22 +2988,24 @@ def for_purls(self, purls=()):
29862988

29872989
def _vulnerable(self, vulnerable=True):
29882990
"""
2989-
Filter to select only vulnerable or non-vulnearble packages.
2991+
Filter to select only vulnerable or non-vulnerable packages.
29902992
"""
29912993
return self.with_is_vulnerable().filter(is_vulnerable=vulnerable)
29922994

29932995
def vulnerable(self):
29942996
"""
29952997
Return only packages that are vulnerable.
29962998
"""
2997-
return self.filter(affected_by_advisories__isnull=False)
2999+
return self.filter(affected_in_impacts__isnull=False)
29983000

29993001
def with_is_vulnerable(self):
30003002
"""
30013003
Annotate Package with ``is_vulnerable`` boolean attribute.
30023004
"""
30033005
return self.annotate(
3004-
is_vulnerable=Exists(AdvisoryV2.objects.filter(affecting_packages__pk=OuterRef("pk")))
3006+
is_vulnerable=Exists(
3007+
ImpactedPackage.objects.filter(affecting_packages__pk=OuterRef("pk"))
3008+
)
30053009
)
30063010

30073011
def from_purl(self, purl: Union[PackageURL, str]):

0 commit comments

Comments
 (0)