From f8ee841921e0569a56d0e546e4aff1699ef6b388 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Mon, 14 Apr 2025 10:25:54 -0400 Subject: [PATCH] fix(gcp): handle projects without ID (#7496) --- prowler/providers/gcp/gcp_provider.py | 39 ++++++++++++++++++--------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/prowler/providers/gcp/gcp_provider.py b/prowler/providers/gcp/gcp_provider.py index 13e366d970..4ba25277d3 100644 --- a/prowler/providers/gcp/gcp_provider.py +++ b/prowler/providers/gcp/gcp_provider.py @@ -628,15 +628,21 @@ class GcpProvider(Provider): .get("labels", {}) .items() } - project_id = asset["resource"]["data"]["projectId"] + project_number = asset["resource"]["data"]["projectNumber"] + project_id = ( + asset["resource"]["data"].get("projectId") + if asset["resource"]["data"].get("projectId") + else project_number + ) + project_name = ( + asset["resource"]["data"].get("name") + if asset["resource"]["data"].get("name") + else project_id + ) gcp_project = GCPProject( - number=asset["resource"]["data"]["projectNumber"], + number=project_number, id=project_id, - name=( - asset["resource"]["data"].get("name") - if asset["resource"]["data"].get("name") - else project_id - ), + name=project_name, lifecycle_state=asset["resource"]["data"].get( "lifecycleState" ), @@ -677,15 +683,22 @@ class GcpProvider(Provider): labels = { k: v for k, v in project.get("labels", {}).items() } + project_number = project["projectNumber"] + project_id = ( + project.get("projectId") + if project.get("projectId") + else project_number + ) + project_name = ( + project.get("name") + if project.get("name") + else project_id + ) project_id = project["projectId"] gcp_project = GCPProject( - number=project["projectNumber"], + number=project_number, id=project_id, - name=( - project.get("name") - if project.get("name") - else project_id - ), + name=project_name, lifecycle_state=project["lifecycleState"], labels=labels, )