11#! /bin/bash -e
22
3+ confirm () {
4+ echo " "
5+ echo " =============================================="
6+ echo " ** WARNING! This ACTION IS IRREVERSIBLE! **"
7+ echo " =============================================="
8+ echo " "
9+ echo " You are about to delete all SaaS ECS reference Architecture resources."
10+ echo " Do you want to continue?"
11+ read -rp " [y/N] " response
12+ case " $response " in
13+ [yY][eE][sS]|[yY]) return 0 ;;
14+ * ) return 1 ;;
15+ esac
16+ }
17+
18+ if ! confirm; then
19+ echo " Cleanup cancelled"
20+ exit 1
21+ fi
22+
23+ export REGION=$( aws ec2 describe-availability-zones --output text --query ' AvailabilityZones[0].[RegionName]' )
24+
325echo " $( date) emptying out buckets..."
4- for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^coreappplane -*" ) ; do
26+ for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^core-appplane-*|^saas-reference-architecture -*" ) ; do
527 echo " $( date) emptying out s3 bucket with name s3://${i} ..."
628 aws s3 rm --recursive " s3://${i} "
729
@@ -16,7 +38,7 @@ cd ../server
1638npm install
1739
1840export CDK_PARAM_SYSTEM_ADMIN_EMAIL=" NA"
19- export CDK_PARAM_CODE_COMMIT_REPOSITORY_NAME =" saas-reference-architecture-ecs"
41+ export CDK_PARAM_S3_BUCKET_NAME =" saas-reference-architecture-ecs- $REGION "
2042export CDK_PARAM_COMMIT_ID=" NA"
2143export CDK_PARAM_REG_API_GATEWAY_URL=" NA"
2244export CDK_PARAM_EVENT_BUS_ARN=arn:aws:service:::resource
@@ -29,6 +51,29 @@ export CDK_PARAM_OFFBOARDING_DETAIL_TYPE="NA"
2951export CDK_PARAM_DEPROVISIONING_DETAIL_TYPE=" NA"
3052export CDK_PARAM_TIER=' basic'
3153
54+ # Deleting object version..."
55+ echo " Deleting Provision sourcecode Object Versions..."
56+ versions=$( aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
57+ | jq -r ' .Versions | length' )
58+
59+ if [ " $versions " -gt 0 ]; then
60+ aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
61+ | jq ' {"Objects": [.Versions[] | {Key: .Key, VersionId: .VersionId}]}' \
62+ | aws s3api delete-objects --bucket $CDK_PARAM_S3_BUCKET_NAME --delete file://-
63+ fi
64+
65+ # Deleting object markers
66+ echo " Deleting Provision sourcecode Object Markers..."
67+ delete_markers=$( aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
68+ | jq -r ' .DeleteMarkers | length' )
69+
70+ if [ " $delete_markers " -gt 0 ]; then
71+ aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
72+ | jq ' {"Objects": [.DeleteMarkers[] | {Key: .Key, VersionId: .VersionId}]}' \
73+ | aws s3api delete-objects --bucket $CDK_PARAM_S3_BUCKET_NAME --delete file://-
74+ fi
75+
76+
3277echo " $( date) cleaning up tenants..."
3378next_token=" "
3479STACK_STATUS_FILTER=" CREATE_COMPLETE ROLLBACK_COMPLETE UPDATE_COMPLETE UPDATE_ROLLBACK_COMPLETE IMPORT_COMPLETE IMPORT_ROLLBACK_COMPLETE"
65110
66111npx cdk destroy --all --force
67112
68- if aws codecommit get-repository --repository-name $CDK_PARAM_CODE_COMMIT_REPOSITORY_NAME ; then
69- DELETE_REPO=$( aws codecommit delete-repository --repository-name $CDK_PARAM_CODE_COMMIT_REPOSITORY_NAME )
70- echo " $DELETE_REPO "
71- fi
72-
73113echo " $( date) cleaning up user pools..."
74114next_token=" "
75115while true ; do
104144
105145
106146echo " $( date) removing buckets..."
107- for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^coreappplane -*" ) ; do
147+ for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^core-appplane-*|^saas-reference-architecture -*" ) ; do
108148 echo " $( date) removing s3 bucket with name s3://${i} ..."
109149 aws s3 rm --recursive " s3://${i} "
110150 aws s3 rb --force " s3://${i} " # delete in stack
0 commit comments