From 4ee7cb886df4790d59a68044a9aa57f609d62f1a Mon Sep 17 00:00:00 2001 From: Suzana Nesic Date: Tue, 18 Mar 2025 08:35:26 -0400 Subject: [PATCH] adding replica removal validation Signed-off-by: Suzana Nesic --- hooks/post_plan.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hooks/post_plan.py b/hooks/post_plan.py index a2a2df8..aa17cf6 100755 --- a/hooks/post_plan.py +++ b/hooks/post_plan.py @@ -100,6 +100,7 @@ def _validate_version_upgrade(self) -> None: continue current_version = u.change.before["engine_version"] desired_version = u.change.after["engine_version"] + db_name = u.change.after["identifier"] if current_version != desired_version: valid_upgrade_targets = self.aws_api.get_rds_valid_upgrade_targets( u.change.before["engine"], current_version @@ -120,6 +121,11 @@ def _validate_version_upgrade(self) -> None: self.errors.append( "To enable major version upgrade, allow_major_version_upgrade attribute must be set to True" ) + # Read replica removal validation + if len(u.change.after["replicas"]) > 0: + self.errors.append( + f"The primary database, {db_name}, has a read replica associated with it. Please remove the replica before upgrading the primary database" + ) def _validate_deletion_protection_not_enabled_on_destroy(self) -> None: for u in self.aws_db_instance_deletions: