fix(gcp provider): move generate_client for consistency (#3064)

This commit is contained in:
Nacho Rivera
2023-11-27 10:31:40 +01:00
committed by GitHub
parent bf0e62aca5
commit ed33fac337
2 changed files with 18 additions and 17 deletions

View File

@@ -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}"
)

View File

@@ -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}"
)