From 1cad830e9366905730cd85b145298e15ccde8383 Mon Sep 17 00:00:00 2001 From: talhaahmad-supp Date: Wed, 24 Jun 2026 13:17:04 +0100 Subject: [PATCH] fix(ingest_policy): skip 403/HTTP errors per policy instead of crashing A single inaccessible policy endpoint was aborting the entire ingest run. Wrap raise_for_status() in try/except in all three per-policy fetch functions so failures are logged and skipped, letting the loop continue. Co-Authored-By: Claude Sonnet 4.6 --- .../basic_monitoring/scripts/ingest_policy.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scenarios/monitoring/basic_monitoring/scripts/ingest_policy.py b/scenarios/monitoring/basic_monitoring/scripts/ingest_policy.py index d3a009db..5e8a2d60 100644 --- a/scenarios/monitoring/basic_monitoring/scripts/ingest_policy.py +++ b/scenarios/monitoring/basic_monitoring/scripts/ingest_policy.py @@ -19,8 +19,11 @@ def get_all_policy_with_permission(api_endpoint, headers, policyid_list): url = 'https://%s/v3/access_control/policies/%d/permissions' % (api_endpoint, i) print(url) res = requests.get(url=url, headers=headers) - if res.status_code != requests.codes.ok: + try: res.raise_for_status() + except requests.exceptions.HTTPError as e: + print('Skipping policy %d permissions: %s' % (i, e)) + continue permissions = res.json() if len(permissions) != 0: data = {'id':i , 'permissions': json.dumps(permissions)} @@ -33,8 +36,11 @@ def get_all_policy_with_column_permission(api_endpoint, headers, policyid_list): url = 'https://%s/v3/access_control/policies/%d/column_permissions' % (api_endpoint, i) print(url) res = requests.get(url=url, headers=headers) - if res.status_code != requests.codes.ok: + try: res.raise_for_status() + except requests.exceptions.HTTPError as e: + print('Skipping policy %d column_permissions: %s' % (i, e)) + continue column_permissions = res.json() if len(column_permissions) != 0: data = {'id': i, 'column_permissions': json.dumps(column_permissions)} @@ -47,8 +53,11 @@ def get_all_assign_users(api_endpoint, headers, policyid_list): url = 'https://%s/v3/access_control/policies/%s/users' % (api_endpoint, i) print(url) res = requests.get(url=url, headers=headers) - if res.status_code != requests.codes.ok: + try: res.raise_for_status() + except requests.exceptions.HTTPError as e: + print('Skipping policy %s users: %s' % (i, e)) + continue assign_users = res.json() if len(assign_users) != 0: data = {'id': i, 'assign_users': json.dumps(assign_users)}