fix(checks): improve --list-checks function (#2240)

This commit is contained in:
Sergio Garcia
2023-04-19 17:00:20 +02:00
committed by GitHub
parent 7a00f79a56
commit feeb5b58d9
2 changed files with 21 additions and 12 deletions

View File

@@ -11,6 +11,7 @@ from prowler.lib.check.check import (
exclude_services_to_run,
execute_checks,
list_categories,
list_checks,
list_services,
parse_checks_from_folder,
print_categories,
@@ -61,13 +62,6 @@ def prowler():
if not args.no_banner:
print_banner(args)
# Set the audit info based on the selected provider
audit_info = set_provider_audit_info(provider, args.__dict__)
# Import custom checks from folder
if checks_folder:
parse_checks_from_folder(audit_info, checks_folder, provider)
# We treat the compliance framework as another output format
if compliance_framework:
args.output_modes.extend(compliance_framework)
@@ -105,6 +99,18 @@ def prowler():
)
sys.exit()
# If -l/--list-checks passed as argument, print checks to execute and quit
if args.list_checks:
print_checks(provider, list_checks(provider), bulk_checks_metadata)
sys.exit()
# Set the audit info based on the selected provider
audit_info = set_provider_audit_info(provider, args.__dict__)
# Import custom checks from folder
if checks_folder:
parse_checks_from_folder(audit_info, checks_folder, provider)
# Load checks to execute
checks_to_execute = load_checks_to_execute(
bulk_checks_metadata,
@@ -131,11 +137,6 @@ def prowler():
# Sort final check list
checks_to_execute = sorted(checks_to_execute)
# If -l/--list-checks passed as argument, print checks to execute and quit
if args.list_checks:
print_checks(provider, checks_to_execute, bulk_checks_metadata)
sys.exit()
# Once the audit_info is set and we have the eventual checks based on the resource identifier,
# it is time to check what Prowler's checks are going to be executed
if audit_info.audit_resources:

View File

@@ -193,6 +193,14 @@ def list_services(provider: str) -> set():
return sorted(available_services)
def list_checks(provider: str) -> set():
available_checks = set()
checks_tuple = recover_checks_from_provider(provider)
for check_name, _ in checks_tuple:
available_checks.add(check_name)
return sorted(available_checks)
def list_categories(provider: str, bulk_checks_metadata: dict) -> set():
available_categories = set()
for check in bulk_checks_metadata.values():