@@ -34,17 +34,13 @@ def steps(cls):
3434
3535 def compute_and_store_vulnerability_risk_score (self ):
3636 affected_advisories = (
37- AdvisoryV2 .objects .filter (affecting_packages__isnull = False )
38- .prefetch_related (
39- "references" ,
40- "severities" ,
41- "exploits" ,
42- )
37+ AdvisoryV2 .objects .filter (impacted_packages__affecting_packages__isnull = False )
38+ .prefetch_related ("references" , "severities" , "exploits" )
4339 .distinct ()
4440 )
4541
4642 self .log (
47- f"Calculating risk for { affected_advisories .count ():,d} vulnerability with a affected packages records"
43+ f"Calculating risk for { affected_advisories .count ():,d} advisory with a affected packages records"
4844 )
4945
5046 progress = LoopProgress (total_iterations = affected_advisories .count (), logger = self .log )
@@ -53,7 +49,7 @@ def compute_and_store_vulnerability_risk_score(self):
5349 updated_vulnerability_count = 0
5450 batch_size = 5000
5551
56- for advisory in progress .iter (affected_advisories .paginated ( per_page = batch_size )):
52+ for advisory in progress .iter (affected_advisories .iterator ( chunk_size = batch_size )):
5753 severities = advisory .severities .all ()
5854 references = advisory .references .all ()
5955 exploits = advisory .exploits .all ()
@@ -65,9 +61,6 @@ def compute_and_store_vulnerability_risk_score(self):
6561 )
6662 advisory .weighted_severity = weighted_severity
6763 advisory .exploitability = exploitability
68- print (
69- f"Computed risk for { advisory .advisory_id } with weighted_severity={ weighted_severity } and exploitability={ exploitability } "
70- )
7164 updatables .append (advisory )
7265
7366 if len (updatables ) >= batch_size :
@@ -90,9 +83,7 @@ def compute_and_store_vulnerability_risk_score(self):
9083 )
9184
9285 def compute_and_store_package_risk_score (self ):
93- affected_packages = (
94- PackageV2 .objects .filter (affected_by_advisories__isnull = False )
95- ).distinct ()
86+ affected_packages = (PackageV2 .objects .filter (affected_in_impacts__isnull = False )).distinct ()
9687
9788 self .log (f"Calculating risk for { affected_packages .count ():,d} affected package records" )
9889
@@ -106,7 +97,7 @@ def compute_and_store_package_risk_score(self):
10697 updated_package_count = 0
10798 batch_size = 10000
10899
109- for package in progress .iter (affected_packages .paginated ( per_page = batch_size )):
100+ for package in progress .iter (affected_packages .iterator ( chunk_size = batch_size )):
110101 risk_score = compute_package_risk_v2 (package )
111102
112103 if not risk_score :
0 commit comments