diff --git a/prowler/providers/gcp/gcp_provider.py b/prowler/providers/gcp/gcp_provider.py index fe8ae67d..7f5b700f 100644 --- a/prowler/providers/gcp/gcp_provider.py +++ b/prowler/providers/gcp/gcp_provider.py @@ -3,10 +3,8 @@ import sys from google import auth from googleapiclient import discovery -from googleapiclient.discovery import Resource from prowler.lib.logger import logger -from prowler.providers.gcp.lib.audit_info.models import GCP_Audit_Info class GCP_Provider: @@ -92,16 +90,3 @@ class GCP_Provider: f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) return [] - - -def generate_client( - service: str, - api_version: str, - audit_info: GCP_Audit_Info, -) -> Resource: - try: - return discovery.build(service, api_version, credentials=audit_info.credentials) - except Exception as error: - logger.error( - f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) diff --git a/prowler/providers/gcp/lib/service/service.py b/prowler/providers/gcp/lib/service/service.py index 7b8b44e1..30bcc5a2 100644 --- a/prowler/providers/gcp/lib/service/service.py +++ b/prowler/providers/gcp/lib/service/service.py @@ -3,10 +3,11 @@ import threading import google_auth_httplib2 import httplib2 from colorama import Fore, Style +from google.oauth2.credentials import Credentials from googleapiclient import discovery +from googleapiclient.discovery import Resource from prowler.lib.logger import logger -from prowler.providers.gcp.gcp_provider import generate_client from prowler.providers.gcp.lib.audit_info.models import GCP_Audit_Info @@ -25,7 +26,9 @@ class GCPService: self.api_version = api_version self.default_project_id = audit_info.default_project_id self.region = region - self.client = generate_client(service, api_version, audit_info) + self.client = self.__generate_client__( + service, api_version, audit_info.credentials + ) # Only project ids that have their API enabled will be scanned self.project_ids = self.__is_api_active__(audit_info.project_ids) @@ -66,3 +69,16 @@ class GCPService: f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) return project_ids + + def __generate_client__( + self, + service: str, + api_version: str, + credentials: Credentials, + ) -> Resource: + try: + return discovery.build(service, api_version, credentials=credentials) + except Exception as error: + logger.error( + f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + )