mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 21:11:53 +00:00
chore(global_provider): Move methods to class as static (#3896)
This commit is contained in:
@@ -225,10 +225,10 @@ Each Prowler service requires a service client to use the service in the checks.
|
||||
The following is the `<new_service_name>_client.py` containing the initialization of the service's class we have just created so the service's checks can use them:
|
||||
|
||||
```python
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.<provider>.services.<new_service_name>.<new_service_name>_service import <Service>
|
||||
|
||||
<new_service_name>_client = <Service>(get_global_provider())
|
||||
<new_service_name>_client = <Service>(Provider.get_global_provider())
|
||||
```
|
||||
|
||||
## Permissions
|
||||
|
||||
@@ -115,7 +115,7 @@ class Test_iam_password_policy_uppercase:
|
||||
# Prowler for AWS uses a shared object called aws_provider where it stores
|
||||
# the info related with the provider
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=aws_provider,
|
||||
),
|
||||
# We have to mock also the iam_client from the check to enforce that the iam_client used is the one
|
||||
@@ -313,7 +313,7 @@ If the test your are creating belongs to a check that uses more than one provide
|
||||
|
||||
```python
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_aws_provider(
|
||||
[AWS_REGION_US_EAST_1, AWS_REGION_EU_WEST_1]
|
||||
),
|
||||
@@ -344,10 +344,10 @@ from prowler.providers.<provider>.services.<service>.<service>_client import <se
|
||||
```
|
||||
2. `<service>_client.py`:
|
||||
```python
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.<provider>.services.<service>.<service>_service import <SERVICE>
|
||||
|
||||
<service>_client = <SERVICE>(mocked_provider)
|
||||
<service>_client = <SERVICE>(Provider.get_global_provider())
|
||||
```
|
||||
|
||||
Due to the above import path it's not the same to patch the following objects because if you run a bunch of tests, either in parallel or not, some clients can be already instantiated by another check, hence your test execution will be using another test's service instance:
|
||||
@@ -368,7 +368,7 @@ Mocking a service client using the following code ...
|
||||
Once the needed attributes are set for the mocked provider, you can use the mocked provider:
|
||||
```python title="Mocking the service_client"
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
new=set_mocked_aws_provider([<region>]),
|
||||
), mock.patch(
|
||||
"prowler.providers.<provider>.services.<service>.<check>.<check>.<service>_client",
|
||||
@@ -390,7 +390,7 @@ Mocking a service client using the following code ...
|
||||
|
||||
```python title="Mocking the service and the service_client"
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
new=set_mocked_aws_provider([<region>]),
|
||||
), mock.patch(
|
||||
"prowler.providers.<provider>.services.<service>.<SERVICE>",
|
||||
@@ -447,7 +447,7 @@ class Test_compute_project_os_login_enabled:
|
||||
# In this scenario we have to mock the app_client from the check to enforce that the compute_client used is the one created above
|
||||
# And also is mocked the return value of get_global_provider function to return our GCP mocked provider defined in fixtures
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_gcp_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.gcp.services.compute.compute_project_os_login_enabled.compute_project_os_login_enabled.compute_client",
|
||||
@@ -487,7 +487,7 @@ class Test_compute_project_os_login_enabled:
|
||||
compute_client.projects = [project]
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_gcp_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.gcp.services.compute.compute_project_os_login_enabled.compute_project_os_login_enabled.compute_client",
|
||||
@@ -655,7 +655,7 @@ class Test_app_ensure_http_is_redirected_to_https:
|
||||
# In this scenario we have to mock the app_client from the check to enforce that the app_client used is the one created above
|
||||
# And also is mocked the return value of get_global_provider function to return our Azure mocked provider defined in fixtures
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.app.app_ensure_http_is_redirected_to_https.app_ensure_http_is_redirected_to_https.app_client",
|
||||
@@ -705,7 +705,7 @@ class Test_app_ensure_http_is_redirected_to_https:
|
||||
app_client = mock.MagicMock
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.common.get_global_provider",
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.app.app_ensure_http_is_redirected_to_https.app_ensure_http_is_redirected_to_https.app_client",
|
||||
|
||||
+4
-2
@@ -48,11 +48,12 @@ from prowler.providers.aws.lib.security_hub.security_hub import (
|
||||
resolve_security_hub_previous_findings,
|
||||
verify_security_hub_integration_enabled_per_region,
|
||||
)
|
||||
from prowler.providers.common.common import set_global_provider_object
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.common.quick_inventory import run_provider_quick_inventory
|
||||
|
||||
|
||||
def prowler():
|
||||
|
||||
# Parse Arguments
|
||||
parser = ProwlerArgumentParser()
|
||||
args = parser.parse()
|
||||
@@ -168,7 +169,8 @@ def prowler():
|
||||
sys.exit()
|
||||
|
||||
# Provider to scan
|
||||
global_provider = set_global_provider_object(args)
|
||||
Provider.set_global_provider(args)
|
||||
global_provider = Provider.get_global_provider()
|
||||
|
||||
# Print Provider Credentials
|
||||
if not args.only_logs:
|
||||
|
||||
@@ -8,7 +8,6 @@ import requests
|
||||
import yaml
|
||||
|
||||
from prowler.lib.logger import logger
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
|
||||
timestamp = datetime.today()
|
||||
timestamp_utc = datetime.now(timezone.utc).replace(tzinfo=timezone.utc)
|
||||
@@ -96,19 +95,6 @@ def check_current_version():
|
||||
return f"{prowler_version_string}"
|
||||
|
||||
|
||||
# TODO: revisit this function
|
||||
def update_provider_config(variable: str, value: str):
|
||||
try:
|
||||
global_provider = get_global_provider()
|
||||
if global_provider.audit_config and variable in global_provider.audit_config:
|
||||
global_provider.audit_config[variable] = value
|
||||
|
||||
except Exception as error:
|
||||
logger.error(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}] -- {error}"
|
||||
)
|
||||
|
||||
|
||||
def load_and_validate_config_file(provider: str, config_file_path: str) -> dict:
|
||||
"""
|
||||
load_and_validate_config_file reads the Prowler config file in YAML format from the default location or the file passed with the --config-file flag
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.accessanalyzer.accessanalyzer_service import (
|
||||
AccessAnalyzer,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
accessanalyzer_client = AccessAnalyzer(get_global_provider())
|
||||
accessanalyzer_client = AccessAnalyzer(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.account.account_service import Account
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
account_client = Account(get_global_provider())
|
||||
account_client = Account(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.acm.acm_service import ACM
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
acm_client = ACM(get_global_provider())
|
||||
acm_client = ACM(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.apigateway.apigateway_service import APIGateway
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
apigateway_client = APIGateway(get_global_provider())
|
||||
apigateway_client = APIGateway(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.apigatewayv2.apigatewayv2_service import (
|
||||
ApiGatewayV2,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
apigatewayv2_client = ApiGatewayV2(get_global_provider())
|
||||
apigatewayv2_client = ApiGatewayV2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.appstream.appstream_service import AppStream
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
appstream_client = AppStream(get_global_provider())
|
||||
appstream_client = AppStream(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.athena.athena_service import Athena
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
athena_client = Athena(get_global_provider())
|
||||
athena_client = Athena(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.autoscaling.autoscaling_service import AutoScaling
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
autoscaling_client = AutoScaling(get_global_provider())
|
||||
autoscaling_client = AutoScaling(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.awslambda.awslambda_service import Lambda
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
awslambda_client = Lambda(get_global_provider())
|
||||
awslambda_client = Lambda(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.backup.backup_service import Backup
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
backup_client = Backup(get_global_provider())
|
||||
backup_client = Backup(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.cloudformation.cloudformation_service import (
|
||||
CloudFormation,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cloudformation_client = CloudFormation(get_global_provider())
|
||||
cloudformation_client = CloudFormation(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cloudfront.cloudfront_service import CloudFront
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cloudfront_client = CloudFront(get_global_provider())
|
||||
cloudfront_client = CloudFront(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cloudtrail.cloudtrail_service import Cloudtrail
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cloudtrail_client = Cloudtrail(get_global_provider())
|
||||
cloudtrail_client = Cloudtrail(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cloudwatch.cloudwatch_service import CloudWatch
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cloudwatch_client = CloudWatch(get_global_provider())
|
||||
cloudwatch_client = CloudWatch(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cloudwatch.cloudwatch_service import Logs
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
logs_client = Logs(get_global_provider())
|
||||
logs_client = Logs(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.codeartifact.codeartifact_service import (
|
||||
CodeArtifact,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
codeartifact_client = CodeArtifact(get_global_provider())
|
||||
codeartifact_client = CodeArtifact(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.codebuild.codebuild_service import Codebuild
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
codebuild_client = Codebuild(get_global_provider())
|
||||
codebuild_client = Codebuild(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cognito.cognito_service import CognitoIdentity
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cognito_identity_client = CognitoIdentity(get_global_provider())
|
||||
cognito_identity_client = CognitoIdentity(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.cognito.cognito_service import CognitoIDP
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cognito_idp_client = CognitoIDP(get_global_provider())
|
||||
cognito_idp_client = CognitoIDP(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.config.config_service import Config
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
config_client = Config(get_global_provider())
|
||||
config_client = Config(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.directoryservice.directoryservice_service import (
|
||||
DirectoryService,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
directoryservice_client = DirectoryService(get_global_provider())
|
||||
directoryservice_client = DirectoryService(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.dlm.dlm_service import DLM
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
dlm_client = DLM(get_global_provider())
|
||||
dlm_client = DLM(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.documentdb.documentdb_service import DocumentDB
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
documentdb_client = DocumentDB(get_global_provider())
|
||||
documentdb_client = DocumentDB(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.drs.drs_service import DRS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
drs_client = DRS(get_global_provider())
|
||||
drs_client = DRS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.dynamodb.dynamodb_service import DAX
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
dax_client = DAX(get_global_provider())
|
||||
dax_client = DAX(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.dynamodb.dynamodb_service import DynamoDB
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
dynamodb_client = DynamoDB(get_global_provider())
|
||||
dynamodb_client = DynamoDB(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.ec2.ec2_service import EC2
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
ec2_client = EC2(get_global_provider())
|
||||
ec2_client = EC2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.ecr.ecr_service import ECR
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
ecr_client = ECR(get_global_provider())
|
||||
ecr_client = ECR(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.ecs.ecs_service import ECS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
ecs_client = ECS(get_global_provider())
|
||||
ecs_client = ECS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.efs.efs_service import EFS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
efs_client = EFS(get_global_provider())
|
||||
efs_client = EFS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.eks.eks_service import EKS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
eks_client = EKS(get_global_provider())
|
||||
eks_client = EKS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.elasticache.elasticache_service import ElastiCache
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
elasticache_client = ElastiCache(get_global_provider())
|
||||
elasticache_client = ElastiCache(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.elb.elb_service import ELB
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
elb_client = ELB(get_global_provider())
|
||||
elb_client = ELB(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.elbv2.elbv2_service import ELBv2
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
elbv2_client = ELBv2(get_global_provider())
|
||||
elbv2_client = ELBv2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.emr.emr_service import EMR
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
emr_client = EMR(get_global_provider())
|
||||
emr_client = EMR(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.fms.fms_service import FMS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
fms_client = FMS(get_global_provider())
|
||||
fms_client = FMS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.glacier.glacier_service import Glacier
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
glacier_client = Glacier(get_global_provider())
|
||||
glacier_client = Glacier(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.globalaccelerator.globalaccelerator_service import (
|
||||
GlobalAccelerator,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
globalaccelerator_client = GlobalAccelerator(get_global_provider())
|
||||
globalaccelerator_client = GlobalAccelerator(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.glue.glue_service import Glue
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
glue_client = Glue(get_global_provider())
|
||||
glue_client = Glue(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.guardduty.guardduty_service import GuardDuty
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
guardduty_client = GuardDuty(get_global_provider())
|
||||
guardduty_client = GuardDuty(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.iam.iam_service import IAM
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
iam_client = IAM(get_global_provider())
|
||||
iam_client = IAM(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.inspector2.inspector2_service import Inspector2
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
inspector2_client = Inspector2(get_global_provider())
|
||||
inspector2_client = Inspector2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.kafka.kafka_service import Kafka
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
kafka_client = Kafka(get_global_provider())
|
||||
kafka_client = Kafka(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.kms.kms_service import KMS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
kms_client = KMS(get_global_provider())
|
||||
kms_client = KMS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.lightsail.lightsail_service import Lightsail
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
lightsail_client = Lightsail(get_global_provider())
|
||||
lightsail_client = Lightsail(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.macie.macie_service import Macie
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
macie_client = Macie(get_global_provider())
|
||||
macie_client = Macie(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.neptune.neptune_service import Neptune
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
neptune_client = Neptune(get_global_provider())
|
||||
neptune_client = Neptune(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.networkfirewall.networkfirewall_service import (
|
||||
NetworkFirewall,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
networkfirewall_client = NetworkFirewall(get_global_provider())
|
||||
networkfirewall_client = NetworkFirewall(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.opensearch.opensearch_service import (
|
||||
OpenSearchService,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
opensearch_client = OpenSearchService(get_global_provider())
|
||||
opensearch_client = OpenSearchService(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.organizations.organizations_service import (
|
||||
Organizations,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
organizations_client = Organizations(get_global_provider())
|
||||
organizations_client = Organizations(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.rds.rds_service import RDS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
rds_client = RDS(get_global_provider())
|
||||
rds_client = RDS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.redshift.redshift_service import Redshift
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
redshift_client = Redshift(get_global_provider())
|
||||
redshift_client = Redshift(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.resourceexplorer2.resourceexplorer2_service import (
|
||||
ResourceExplorer2,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
resource_explorer_2_client = ResourceExplorer2(get_global_provider())
|
||||
resource_explorer_2_client = ResourceExplorer2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.route53.route53_service import Route53
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
route53_client = Route53(get_global_provider())
|
||||
route53_client = Route53(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.route53.route53_service import Route53Domains
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
route53domains_client = Route53Domains(get_global_provider())
|
||||
route53domains_client = Route53Domains(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.s3.s3_service import S3
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
s3_client = S3(get_global_provider())
|
||||
s3_client = S3(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.s3.s3_service import S3Control
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
s3control_client = S3Control(get_global_provider())
|
||||
s3control_client = S3Control(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.sagemaker.sagemaker_service import SageMaker
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
sagemaker_client = SageMaker(get_global_provider())
|
||||
sagemaker_client = SageMaker(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.secretsmanager.secretsmanager_service import (
|
||||
SecretsManager,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
secretsmanager_client = SecretsManager(get_global_provider())
|
||||
secretsmanager_client = SecretsManager(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.securityhub.securityhub_service import SecurityHub
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
securityhub_client = SecurityHub(get_global_provider())
|
||||
securityhub_client = SecurityHub(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.shield.shield_service import Shield
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
shield_client = Shield(get_global_provider())
|
||||
shield_client = Shield(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.sns.sns_service import SNS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
sns_client = SNS(get_global_provider())
|
||||
sns_client = SNS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.sqs.sqs_service import SQS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
sqs_client = SQS(get_global_provider())
|
||||
sqs_client = SQS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.ssm.ssm_service import SSM
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
ssm_client = SSM(get_global_provider())
|
||||
ssm_client = SSM(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.ssmincidents.ssmincidents_service import (
|
||||
SSMIncidents,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
ssmincidents_client = SSMIncidents(get_global_provider())
|
||||
ssmincidents_client = SSMIncidents(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.trustedadvisor.trustedadvisor_service import (
|
||||
TrustedAdvisor,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
trustedadvisor_client = TrustedAdvisor(get_global_provider())
|
||||
trustedadvisor_client = TrustedAdvisor(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.vpc.vpc_service import VPC
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
vpc_client = VPC(get_global_provider())
|
||||
vpc_client = VPC(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.waf.waf_service import WAF
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
waf_client = WAF(get_global_provider())
|
||||
waf_client = WAF(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.wafv2.wafv2_service import WAFv2
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
wafv2_client = WAFv2(get_global_provider())
|
||||
wafv2_client = WAFv2(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.aws.services.wellarchitected.wellarchitected_service import (
|
||||
WellArchitected,
|
||||
)
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
wellarchitected_client = WellArchitected(get_global_provider())
|
||||
wellarchitected_client = WellArchitected(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.aws.services.workspaces.workspaces_service import WorkSpaces
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
workspaces_client = WorkSpaces(get_global_provider())
|
||||
workspaces_client = WorkSpaces(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.aks.aks_service import AKS
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
aks_client = AKS(get_global_provider())
|
||||
aks_client = AKS(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.app.app_service import App
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
app_client = App(get_global_provider())
|
||||
app_client = App(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.appinsights.appinsights_service import AppInsights
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
appinsights_client = AppInsights(get_global_provider())
|
||||
appinsights_client = AppInsights(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.cosmosdb.cosmosdb_service import CosmosDB
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
cosmosdb_client = CosmosDB(get_global_provider())
|
||||
cosmosdb_client = CosmosDB(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.defender.defender_service import Defender
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
defender_client = Defender(get_global_provider())
|
||||
defender_client = Defender(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.entra.entra_service import Entra
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
entra_client = Entra(get_global_provider())
|
||||
entra_client = Entra(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.iam.iam_service import IAM
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
iam_client = IAM(get_global_provider())
|
||||
iam_client = IAM(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.keyvault.keyvault_service import KeyVault
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
keyvault_client = KeyVault(get_global_provider())
|
||||
keyvault_client = KeyVault(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.monitor.monitor_service import Monitor
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
monitor_client = Monitor(get_global_provider())
|
||||
monitor_client = Monitor(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.mysql.mysql_service import MySQL
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
mysql_client = MySQL(get_global_provider())
|
||||
mysql_client = MySQL(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.network.network_service import Network
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
network_client = Network(get_global_provider())
|
||||
network_client = Network(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.policy.policy_service import Policy
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
policy_client = Policy(get_global_provider())
|
||||
policy_client = Policy(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.postgresql.postgresql_service import PostgreSQL
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
postgresql_client = PostgreSQL(get_global_provider())
|
||||
postgresql_client = PostgreSQL(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import SQLServer
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
sqlserver_client = SQLServer(get_global_provider())
|
||||
sqlserver_client = SQLServer(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.storage.storage_service import Storage
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
storage_client = Storage(get_global_provider())
|
||||
storage_client = Storage(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.azure.services.vm.vm_service import VirtualMachines
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
vm_client = VirtualMachines(get_global_provider())
|
||||
vm_client = VirtualMachines(Provider.get_global_provider())
|
||||
|
||||
@@ -3,7 +3,7 @@ from argparse import Namespace
|
||||
from importlib import import_module
|
||||
|
||||
from prowler.lib.logger import logger
|
||||
from prowler.providers.common.common import get_available_providers, providers_path
|
||||
from prowler.providers.common.provider import Provider, providers_path
|
||||
|
||||
provider_arguments_lib_path = "lib.arguments.arguments"
|
||||
validate_provider_arguments_function = "validate_arguments"
|
||||
@@ -13,7 +13,7 @@ init_provider_arguments_function = "init_parser"
|
||||
def init_providers_parser(self):
|
||||
"""init_providers_parser calls the provider init_parser function to load all the arguments and flags. Receives a ProwlerArgumentParser object"""
|
||||
# We need to call the arguments parser for each provider
|
||||
providers = get_available_providers()
|
||||
providers = Provider.get_available_providers()
|
||||
for provider in providers:
|
||||
try:
|
||||
getattr(
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
import importlib
|
||||
import pkgutil
|
||||
import sys
|
||||
from importlib import import_module
|
||||
|
||||
from prowler.lib.logger import logger
|
||||
|
||||
providers_path = "prowler.providers"
|
||||
|
||||
global_provider = None
|
||||
|
||||
|
||||
def get_available_providers() -> list[str]:
|
||||
"""get_available_providers returns a list of the available providers"""
|
||||
providers = []
|
||||
# Dynamically import the package based on its string path
|
||||
prowler_providers = importlib.import_module(providers_path)
|
||||
# Iterate over all modules found in the prowler_providers package
|
||||
for _, provider, ispkg in pkgutil.iter_modules(prowler_providers.__path__):
|
||||
if provider != "common" and ispkg:
|
||||
providers.append(provider)
|
||||
return providers
|
||||
|
||||
|
||||
def get_global_provider():
|
||||
return global_provider
|
||||
|
||||
|
||||
# TODO: rename to set_global_provider
|
||||
def set_global_provider_object(arguments):
|
||||
try:
|
||||
global global_provider
|
||||
|
||||
provider_class_path = (
|
||||
f"{providers_path}.{arguments.provider}.{arguments.provider}_provider"
|
||||
)
|
||||
provider_class_name = f"{arguments.provider.capitalize()}Provider"
|
||||
provider_class = getattr(
|
||||
import_module(provider_class_path), provider_class_name
|
||||
)
|
||||
if not isinstance(global_provider, provider_class):
|
||||
global_provider = provider_class(arguments)
|
||||
|
||||
return global_provider
|
||||
except TypeError as error:
|
||||
logger.critical(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
sys.exit(1)
|
||||
except Exception as error:
|
||||
logger.critical(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
sys.exit(1)
|
||||
@@ -3,7 +3,7 @@ from os.path import isdir
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from prowler.config.config import update_provider_config
|
||||
from prowler.providers.common.provider import Provider
|
||||
|
||||
|
||||
# TODO: include this for all the providers
|
||||
@@ -39,7 +39,13 @@ class ProviderOutputOptions:
|
||||
|
||||
# Shodan API Key
|
||||
if arguments.shodan:
|
||||
update_provider_config("shodan_api_key", arguments.shodan)
|
||||
# TODO: revisit this logic
|
||||
provider = Provider.get_global_provider()
|
||||
updated_audit_config = Provider.update_provider_config(
|
||||
provider.audit_config, "shodan_api_key", arguments.shodan
|
||||
)
|
||||
if updated_audit_config:
|
||||
provider._audit_config = updated_audit_config
|
||||
|
||||
# Check output directory, if it is not created -> create it
|
||||
if arguments.output_directory and not self.fixer:
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
import importlib
|
||||
import pkgutil
|
||||
import sys
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any
|
||||
from importlib import import_module
|
||||
from typing import Any, Optional
|
||||
|
||||
from prowler.config.config import get_default_mute_file_path
|
||||
from prowler.lib.logger import logger
|
||||
from prowler.lib.mutelist.mutelist import parse_mutelist_file
|
||||
|
||||
providers_path = "prowler.providers"
|
||||
|
||||
|
||||
# TODO: with this we can enforce that all classes ending with "Provider" needs to inherint from the Provider class
|
||||
# class ProviderMeta:
|
||||
# def __init__(cls, name, bases, dct):
|
||||
@@ -18,6 +26,7 @@ from prowler.lib.mutelist.mutelist import parse_mutelist_file
|
||||
|
||||
# TODO: enforce audit_metadata for all the providers
|
||||
class Provider(ABC):
|
||||
_global: Optional["Provider"] = None
|
||||
_mutelist: dict
|
||||
_mutelist_file_path: str
|
||||
"""
|
||||
@@ -175,3 +184,56 @@ class Provider(ABC):
|
||||
|
||||
self._mutelist = mutelist
|
||||
self._mutelist_file_path = mutelist_path
|
||||
|
||||
@staticmethod
|
||||
def get_global_provider() -> "Provider":
|
||||
return Provider._global
|
||||
|
||||
@staticmethod
|
||||
def set_global_provider(arguments):
|
||||
try:
|
||||
provider_class_path = (
|
||||
f"{providers_path}.{arguments.provider}.{arguments.provider}_provider"
|
||||
)
|
||||
provider_class_name = f"{arguments.provider.capitalize()}Provider"
|
||||
provider_class = getattr(
|
||||
import_module(provider_class_path), provider_class_name
|
||||
)
|
||||
if not isinstance(Provider._global, provider_class):
|
||||
global_provider = provider_class(arguments)
|
||||
|
||||
Provider._global = global_provider
|
||||
except TypeError as error:
|
||||
logger.critical(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
sys.exit(1)
|
||||
except Exception as error:
|
||||
logger.critical(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
@staticmethod
|
||||
def get_available_providers() -> list[str]:
|
||||
"""get_available_providers returns a list of the available providers"""
|
||||
providers = []
|
||||
# Dynamically import the package based on its string path
|
||||
prowler_providers = importlib.import_module(providers_path)
|
||||
# Iterate over all modules found in the prowler_providers package
|
||||
for _, provider, ispkg in pkgutil.iter_modules(prowler_providers.__path__):
|
||||
if provider != "common" and ispkg:
|
||||
providers.append(provider)
|
||||
return providers
|
||||
|
||||
@staticmethod
|
||||
def update_provider_config(audit_config: dict, variable: str, value: str):
|
||||
try:
|
||||
if audit_config and variable in audit_config:
|
||||
audit_config[variable] = value
|
||||
|
||||
return audit_config
|
||||
except Exception as error:
|
||||
logger.error(
|
||||
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}] -- {error}"
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.gcp.services.apikeys.apikeys_service import APIKeys
|
||||
|
||||
apikeys_client = APIKeys(get_global_provider())
|
||||
apikeys_client = APIKeys(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.gcp.services.bigquery.bigquery_service import BigQuery
|
||||
|
||||
bigquery_client = BigQuery(get_global_provider())
|
||||
bigquery_client = BigQuery(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.gcp.services.cloudresourcemanager.cloudresourcemanager_service import (
|
||||
CloudResourceManager,
|
||||
)
|
||||
|
||||
cloudresourcemanager_client = CloudResourceManager(get_global_provider())
|
||||
cloudresourcemanager_client = CloudResourceManager(Provider.get_global_provider())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.gcp.services.cloudsql.cloudsql_service import CloudSQL
|
||||
|
||||
cloudsql_client = CloudSQL(get_global_provider())
|
||||
cloudsql_client = CloudSQL(Provider.get_global_provider())
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from prowler.providers.common.common import get_global_provider
|
||||
from prowler.providers.common.provider import Provider
|
||||
from prowler.providers.gcp.services.cloudstorage.cloudstorage_service import (
|
||||
CloudStorage,
|
||||
)
|
||||
|
||||
cloudstorage_client = CloudStorage(get_global_provider())
|
||||
cloudstorage_client = CloudStorage(Provider.get_global_provider())
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user