in global-clusters-automation/failover_and_delete_global_cluster.py [0:0]
def delete_cluster(cluster_to_delete):
try:
cluster_to_delete_id = cluster_to_delete.split(":")[-1]
region = cluster_to_delete.split(":")[3]
client = session.client('docdb', region_name=region)
response = client.describe_db_clusters(
DBClusterIdentifier=cluster_to_delete
)
cluster_instances = response['DBClusters'][0]['DBClusterMembers']
# Delete instances in a cluster
for each_item in cluster_instances:
instance_to_delete = each_item['DBInstanceIdentifier']
print('Deleting instance... ', instance_to_delete, ' within cluster ', cluster_to_delete)
delete_instance = client.delete_db_instance(
DBInstanceIdentifier=instance_to_delete
)
# Disable deletion protection
disable_deletion_protection = client.modify_db_cluster(
DBClusterIdentifier=cluster_to_delete_id,
ApplyImmediately=True,
DeletionProtection=False
)
# Delete cluster
deleted_cluster = client.delete_db_cluster(
DBClusterIdentifier=cluster_to_delete_id,
SkipFinalSnapshot=True
)
except ClientError as e:
print('ERROR OCCURRED WHILE PROCESSING: ', e)
print('PROCESSING WILL STOP')
raise ClientError