Skip to content

Commit d888bfe

Browse files
committed
Prefetch affected packages
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 454f762 commit d888bfe

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

vulnerabilities/pipelines/v2_improvers/group_advisories_for_packages.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ def merge_advisories(advisories):
3838

3939
advisories = list(advisories)
4040

41-
print(len(advisories))
42-
4341
content_hash_map = defaultdict(list)
4442
result_groups = []
4543

@@ -77,18 +75,15 @@ def merge_advisories(advisories):
7775
def get_merged_identifier_groups(advisories):
7876

7977
identifier_groups = defaultdict(set)
80-
advisory_to_identifiers = defaultdict(set)
8178

8279
advisories = list(advisories)
8380

8481
for adv in advisories:
8582

8683
identifier_groups[adv.advisory_id].add(adv)
87-
advisory_to_identifiers[adv].add(adv.advisory_id)
8884

89-
for alias in adv.aliases.all():
90-
identifier_groups[alias.alias].add(adv)
91-
advisory_to_identifiers[adv].add(alias.alias)
85+
for alias in adv.aliases.values_list("alias", flat=True):
86+
identifier_groups[alias].add(adv)
9287

9388
groups = [set(advs) for advs in identifier_groups.values() if len(advs) > 1]
9489

@@ -134,13 +129,26 @@ def get_merged_identifier_groups(advisories):
134129

135130
def group_advisoris_for_packages(logger=None):
136131
for package in PackageV2.objects.iterator():
137-
affecting_advisories = AdvisoryV2.objects.latest_affecting_advisories_for_purl(
138-
purl=package.purl
139-
).prefetch_related("aliases")
132+
print(package)
133+
affecting_advisories = (
134+
AdvisoryV2.objects
135+
.latest_affecting_advisories_for_purl(purl=package.purl)
136+
.prefetch_related(
137+
"aliases",
138+
"impacted_packages__affecting_packages",
139+
"impacted_packages__fixed_by_packages",
140+
)
141+
)
140142

141-
fixed_by_advisories = AdvisoryV2.objects.latest_fixed_by_advisories_for_purl(
142-
purl=package.purl
143-
).prefetch_related("aliases")
143+
fixed_by_advisories = (
144+
AdvisoryV2.objects
145+
.latest_fixed_by_advisories_for_purl(purl=package.purl)
146+
.prefetch_related(
147+
"aliases",
148+
"impacted_packages__affecting_packages",
149+
"impacted_packages__fixed_by_packages",
150+
)
151+
)
144152

145153
try:
146154
delete_and_save_advisory_set(package, affecting_advisories, relation="affecting")

0 commit comments

Comments
 (0)