From c94bd96c93d6d2ee46399e97476e633ac73bfc99 Mon Sep 17 00:00:00 2001 From: Sergio Garcia <38561120+sergargar@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:26:53 +0100 Subject: [PATCH] chore(args): make compatible severity and services arguments (#3024) --- prowler/lib/check/checks_loader.py | 4 ++++ prowler/lib/cli/parser.py | 2 +- tests/lib/cli/parser_test.py | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/prowler/lib/check/checks_loader.py b/prowler/lib/check/checks_loader.py index 6a0a92db..c82a601e 100644 --- a/prowler/lib/check/checks_loader.py +++ b/prowler/lib/check/checks_loader.py @@ -36,6 +36,10 @@ def load_checks_to_execute( # Check check's severity if bulk_checks_metadata[check].Severity in severities: checks_to_execute.add(check) + if service_list: + checks_to_execute = ( + recover_checks_from_service(service_list, provider) & checks_to_execute + ) # Handle if there are checks passed using -C/--checks-file elif checks_file: diff --git a/prowler/lib/cli/parser.py b/prowler/lib/cli/parser.py index 28f1e59a..09672025 100644 --- a/prowler/lib/cli/parser.py +++ b/prowler/lib/cli/parser.py @@ -220,7 +220,7 @@ Detailed documentation at https://docs.prowler.cloud group.add_argument( "-s", "--services", nargs="+", help="List of services to be executed." ) - group.add_argument( + common_checks_parser.add_argument( "--severity", nargs="+", help="List of severities to be executed [informational, low, medium, high, critical]", diff --git a/tests/lib/cli/parser_test.py b/tests/lib/cli/parser_test.py index e09f366d..2f911ef5 100644 --- a/tests/lib/cli/parser_test.py +++ b/tests/lib/cli/parser_test.py @@ -502,6 +502,18 @@ class Test_Parser: assert service_1 in parsed.services assert service_2 in parsed.services + def test_checks_parser_services_with_severity(self): + argument1 = "--services" + service_1 = "iam" + argument2 = "--severity" + severity = "low" + command = [prowler_command, argument1, service_1, argument2, severity] + parsed = self.parser.parse(command) + assert len(parsed.services) == 1 + assert service_1 in parsed.services + assert len(parsed.severity) == 1 + assert severity in parsed.severity + def test_checks_parser_informational_severity(self): argument = "--severity" severity = "informational"