From 45f1b4aedab9de51c75b7167eb1fb07d75d7a9c8 Mon Sep 17 00:00:00 2001 From: Prowler Bot Date: Mon, 14 Apr 2025 20:08:07 +0200 Subject: [PATCH] fix(gcp): handle projects without ID (#7506) Co-authored-by: Sergio Garcia --- 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, )