From ee27636f327b82ce02419ca534c95e9150f364e6 Mon Sep 17 00:00:00 2001 From: Daniel Barranquero <74871504+danibarranqueroo@users.noreply.github.com> Date: Mon, 31 Mar 2025 13:55:48 +0200 Subject: [PATCH] fix(redshift): validation error for `Cluster.multi_az` (#7381) --- .../redshift_cluster_multi_az_enabled.py | 2 +- prowler/providers/aws/services/redshift/redshift_service.py | 4 ++-- .../redshift_cluster_multi_az_enabled_test.py | 2 +- .../providers/aws/services/redshift/redshift_service_test.py | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/prowler/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled.py b/prowler/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled.py index 63500e0360..ef06babdf9 100644 --- a/prowler/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled.py +++ b/prowler/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled.py @@ -11,7 +11,7 @@ class redshift_cluster_multi_az_enabled(Check): report.status_extended = ( f"Redshift Cluster {cluster.id} does not have Multi-AZ enabled." ) - if cluster.multi_az: + if cluster.multi_az == "Enabled": report.status = "PASS" report.status_extended = ( f"Redshift Cluster {cluster.id} has Multi-AZ enabled." diff --git a/prowler/providers/aws/services/redshift/redshift_service.py b/prowler/providers/aws/services/redshift/redshift_service.py index 03a6b92439..8284b9d05d 100644 --- a/prowler/providers/aws/services/redshift/redshift_service.py +++ b/prowler/providers/aws/services/redshift/redshift_service.py @@ -45,7 +45,7 @@ class Redshift(AWSService): "AllowVersionUpgrade", False ), encrypted=cluster.get("Encrypted", False), - multi_az=cluster.get("MultiAZ", False), + multi_az=cluster.get("MultiAZ", ""), region=regional_client.region, tags=cluster.get("Tags"), master_username=cluster.get("MasterUsername", ""), @@ -145,7 +145,7 @@ class Cluster(BaseModel): vpc_security_groups: list = [] public_access: bool = False encrypted: bool = False - multi_az: bool = False + multi_az: str = None master_username: str = None database_name: str = None endpoint_address: str = None diff --git a/tests/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled_test.py b/tests/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled_test.py index 1b2d2221c5..a32d8435db 100644 --- a/tests/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled_test.py +++ b/tests/providers/aws/services/redshift/redshift_cluster_multi_az_enabled/redshift_cluster_multi_az_enabled_test.py @@ -149,7 +149,7 @@ class Test_redshift_cluster_multi_az_enabled: ) # Moto does not pass the multi_az parameter back. - service_client.clusters[0].multi_az = 1 + service_client.clusters[0].multi_az = "Enabled" check = redshift_cluster_multi_az_enabled() result = check.execute() diff --git a/tests/providers/aws/services/redshift/redshift_service_test.py b/tests/providers/aws/services/redshift/redshift_service_test.py index ffdd6cdefa..28380ded4d 100644 --- a/tests/providers/aws/services/redshift/redshift_service_test.py +++ b/tests/providers/aws/services/redshift/redshift_service_test.py @@ -140,7 +140,8 @@ class Test_Redshift_Service: ] assert redshift.clusters[0].parameter_group_name == "default.redshift-1.0" assert redshift.clusters[0].encrypted - assert redshift.clusters[0].multi_az is False + # Moto does not pass the multi_az parameter back. + assert redshift.clusters[0].multi_az == "" assert redshift.clusters[0].master_username == "user" assert redshift.clusters[0].enhanced_vpc_routing assert redshift.clusters[0].database_name == "test"