Skip to content

Commit bb80ab9

Browse files
committed
Move EUS-only check earlier to avoid unnecessary work
Check if advisory only affects EUS products immediately after verifying vulnerabilities exist, before extracting packages, CVEs, and other data. This saves processing time for advisories that will be skipped anyway. Also cleaned up redundant product_full_name variable.
1 parent 5b91581 commit bb80ab9

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

apollo/rhcsaf/__init__.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,17 @@ def extract_rhel_affected_products_for_db(csaf: dict) -> set:
8686
continue
8787
prod_name = None
8888
cpe = None
89-
product_full_name = None
9089
for branch in family_branch.get("branches", []):
9190
if branch.get("category") == "product_name":
9291
prod = branch.get("product", {})
9392
prod_name = prod.get("name")
94-
product_full_name = prod.get("name")
9593
cpe = prod.get("product_identification_helper", {}).get("cpe")
9694
break
9795
if not prod_name or not cpe:
9896
continue
9997

100-
if _is_eus_product(product_full_name, cpe):
101-
logger.debug(f"Skipping EUS product: {product_full_name}")
98+
if _is_eus_product(prod_name, cpe):
99+
logger.debug(f"Skipping EUS product: {prod_name}")
102100
continue
103101

104102
# Example CPE: "cpe:/a:redhat:enterprise_linux:9::appstream"
@@ -248,9 +246,15 @@ def red_hat_advisory_scraper(csaf: dict):
248246
logger.warning("No vulnerabilities found in CSAF document")
249247
return None
250248

249+
name = csaf["document"]["tracking"]["id"]
250+
251+
red_hat_affected_products = extract_rhel_affected_products_for_db(csaf)
252+
if not red_hat_affected_products:
253+
logger.info(f"Skipping advisory {name}: all products are EUS-only")
254+
return None
255+
251256
red_hat_issued_at = csaf["document"]["tracking"]["initial_release_date"]
252257
red_hat_updated_at = csaf["document"]["tracking"]["current_release_date"]
253-
name = csaf["document"]["tracking"]["id"]
254258
red_hat_synopsis = csaf["document"]["title"]
255259
red_hat_description = None
256260
topic = None
@@ -285,11 +289,6 @@ def red_hat_advisory_scraper(csaf: dict):
285289
if bug_id.get("system_name") == "Red Hat Bugzilla ID":
286290
red_hat_bugzilla_set.add(bug_id["text"])
287291

288-
red_hat_affected_products = extract_rhel_affected_products_for_db(csaf)
289-
if not red_hat_affected_products:
290-
logger.info(f"Skipping advisory {name}: all products are EUS-only")
291-
return None
292-
293292
return {
294293
"red_hat_issued_at": str(red_hat_issued_at),
295294
"red_hat_updated_at": str(red_hat_updated_at),

0 commit comments

Comments
 (0)