From 8411fcb5fc8b3ec8a4e30abb4f526ec289a0516f Mon Sep 17 00:00:00 2001 From: Pepe Fagoaga Date: Fri, 18 Oct 2024 11:39:48 +0200 Subject: [PATCH] chore(severities): Use enum (#5460) --- prowler/config/config.py | 2 -- prowler/lib/check/checks_loader.py | 4 ++-- prowler/lib/check/custom_checks_metadata.py | 4 ++-- prowler/lib/cli/parser.py | 12 ++++++------ 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/prowler/config/config.py b/prowler/config/config.py index 994f51ea7c..8af991f593 100644 --- a/prowler/config/config.py +++ b/prowler/config/config.py @@ -21,8 +21,6 @@ gcp_logo = "https://user-images.githubusercontent.com/38561120/235928332-eb4accd orange_color = "\033[38;5;208m" banner_color = "\033[1;92m" -finding_statuses = ["PASS", "FAIL", "MANUAL"] -valid_severities = ["critical", "high", "medium", "low", "informational"] # Compliance actual_directory = pathlib.Path(os.path.dirname(os.path.realpath(__file__))) diff --git a/prowler/lib/check/checks_loader.py b/prowler/lib/check/checks_loader.py index acc97cb059..00d93af4f6 100644 --- a/prowler/lib/check/checks_loader.py +++ b/prowler/lib/check/checks_loader.py @@ -1,10 +1,10 @@ from colorama import Fore, Style -from prowler.config.config import valid_severities from prowler.lib.check.check import ( parse_checks_from_compliance_framework, parse_checks_from_file, ) +from prowler.lib.check.models import Severity from prowler.lib.check.utils import ( recover_checks_from_provider, recover_checks_from_service, @@ -29,7 +29,7 @@ def load_checks_to_execute( # Local subsets checks_to_execute = set() check_aliases = {} - check_severities = {key: [] for key in valid_severities} + check_severities = {severity.value: [] for severity in Severity} check_categories = {} # First, loop over the bulk_checks_metadata to extract the needed subsets diff --git a/prowler/lib/check/custom_checks_metadata.py b/prowler/lib/check/custom_checks_metadata.py index cff5f6547f..3c100a720b 100644 --- a/prowler/lib/check/custom_checks_metadata.py +++ b/prowler/lib/check/custom_checks_metadata.py @@ -3,7 +3,7 @@ import sys import yaml from jsonschema import validate -from prowler.config.config import valid_severities +from prowler.lib.check.models import Severity from prowler.lib.logger import logger custom_checks_metadata_schema = { @@ -17,7 +17,7 @@ custom_checks_metadata_schema = { "properties": { "Severity": { "type": "string", - "enum": valid_severities, + "enum": [severity.value for severity in Severity], }, "CheckTitle": { "type": "string", diff --git a/prowler/lib/cli/parser.py b/prowler/lib/cli/parser.py index 2309d8742c..ea1c7acbf1 100644 --- a/prowler/lib/cli/parser.py +++ b/prowler/lib/cli/parser.py @@ -10,9 +10,9 @@ from prowler.config.config import ( default_config_file_path, default_fixer_config_file_path, default_output_directory, - finding_statuses, - valid_severities, ) +from prowler.lib.check.models import Severity +from prowler.lib.outputs.finding import Status from prowler.providers.common.arguments import ( init_providers_parser, validate_provider_arguments, @@ -138,8 +138,8 @@ Detailed documentation at https://docs.prowler.com common_outputs_parser.add_argument( "--status", nargs="+", - help=f"Filter by the status of the findings {finding_statuses}", - choices=finding_statuses, + help=f"Filter by the status of the findings {[status.value for status in Status]}", + choices=[status.value for status in Status], ) common_outputs_parser.add_argument( "--output-formats", @@ -257,8 +257,8 @@ Detailed documentation at https://docs.prowler.com "--severity", "--severities", nargs="+", - help=f"Severities to be executed {valid_severities}", - choices=valid_severities, + help=f"Severities to be executed {[severity.value for severity in Severity]}", + choices=[severity.value for severity in Severity], ) group.add_argument( "--compliance",