Skip to content

Commit ab2ab47

Browse files
committed
Made the changes required Signed-off-by: Shrish Mishra shrish409@gmail.com
Signed-off-by: Shrish0098 <shrish409@gmail.com>
1 parent d82c45b commit ab2ab47

4 files changed

Lines changed: 6 additions & 19 deletions

File tree

vulnerabilities/models.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,6 @@ def get_or_none(self, *args, **kwargs):
7474
with suppress(self.model.DoesNotExist, ValidationError):
7575
return self.get(*args, **kwargs)
7676

77-
def paginated(self, per_page=5000):
78-
"""
79-
Iterate over a (large) QuerySet by chunks of ``per_page`` items.
80-
This technique is essential for preventing memory issues when iterating
81-
See these links for inspiration:
82-
https://nextlinklabs.com/resources/insights/django-big-data-iteration
83-
https://stackoverflow.com/questions/4222176/why-is-iterating-through-a-large-django-queryset-consuming-massive-amounts-of-me/
84-
"""
85-
paginator = Paginator(self, per_page=per_page)
86-
for page_number in paginator.page_range:
87-
page = paginator.page(page_number)
88-
for obj in page.object_list:
89-
yield obj
90-
9177

9278
class VulnerabilityQuerySet(BaseQuerySet):
9379
def affecting_vulnerabilities(self):

vulnerabilities/pipelines/add_cvss31_to_CVEs.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,9 @@ def process_cve_advisory_mapping(self):
4444
progress_step=5,
4545
)
4646

47-
batch_size = 1000
4847
results = []
4948

50-
for severity in progress.iter(nvd_severities.iterator()):
49+
for severity in progress.iter(nvd_severities.iterator(chunk_size=2000)):
5150
print(severity.url)
5251
cve_pattern = re.compile(r"(CVE-\d{4}-\d{4,7})").search
5352
cve_match = cve_pattern(severity.url)

vulnerabilities/pipelines/collect_commits.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ def collect_and_store_fix_commits(self):
5151
total_iterations=affected_by_package_related_vulnerabilities.count(), logger=self.log
5252
)
5353

54-
for apv in progress.iter(affected_by_package_related_vulnerabilities.iterator()):
54+
for apv in progress.iter(
55+
affected_by_package_related_vulnerabilities.iterator(chunk_size=2000)
56+
):
5557
vulnerability = apv.vulnerability
5658
for reference in vulnerability.references.all():
5759
if not "/commit/" in reference.url:

vulnerabilities/pipelines/compute_package_risk.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def compute_and_store_vulnerability_risk_score(self):
5454
updated_vulnerability_count = 0
5555
batch_size = 5000
5656

57-
for vulnerability in progress.iter(affected_vulnerabilities.iterator()):
57+
for vulnerability in progress.iter(affected_vulnerabilities.iterator(chunk_size=2000)):
5858
severities = vulnerability.severities.all()
5959
references = vulnerability.references.all()
6060
exploits = vulnerability.exploits.all()
@@ -110,7 +110,7 @@ def compute_and_store_package_risk_score(self):
110110
updated_package_count = 0
111111
batch_size = 10000
112112

113-
for package in progress.iter(affected_packages.iterator()):
113+
for package in progress.iter(affected_packages.iterator(chunk_size=2000)):
114114
risk_score = compute_package_risk(package)
115115

116116
if not risk_score:

0 commit comments

Comments
 (0)