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,30 @@ export CDK_PARAM_OFFBOARDING_DETAIL_TYPE="NA"
2951export CDK_PARAM_DEPROVISIONING_DETAIL_TYPE=" NA"
3052export CDK_PARAM_TIER=' basic'
3153
54+ TEMP_FILE=$( mktemp)
55+ # Deleting object version..."
56+ echo " Deleting Provision sourcecode Object Versions..."
57+ versions=$( aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
58+ | jq -r ' .Versions | length' )
59+
60+ if [ " $versions " -gt 0 ]; then
61+ aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
62+ | jq ' {"Objects": [.Versions[] | {Key: .Key, VersionId: .VersionId}]}' > $TEMP_FILE
63+ aws s3api delete-objects --bucket $CDK_PARAM_S3_BUCKET_NAME --delete file://$TEMP_FILE
64+ fi
65+
66+ # Deleting object markers
67+ echo " Deleting Provision sourcecode Object Markers..."
68+ delete_markers=$( aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
69+ | jq -r ' .DeleteMarkers | length' )
70+
71+ if [ " $delete_markers " -gt 0 ]; then
72+ aws s3api list-object-versions --bucket $CDK_PARAM_S3_BUCKET_NAME --output json \
73+ | jq ' {"Objects": [.DeleteMarkers[] | {Key: .Key, VersionId: .VersionId}]}' > $TEMP_FILE
74+ aws s3api delete-objects --bucket $CDK_PARAM_S3_BUCKET_NAME --delete file://$TEMP_FILE
75+ fi
76+
77+
3278echo " $( date) cleaning up tenants..."
3379next_token=" "
3480STACK_STATUS_FILTER=" CREATE_COMPLETE ROLLBACK_COMPLETE UPDATE_COMPLETE UPDATE_ROLLBACK_COMPLETE IMPORT_COMPLETE IMPORT_ROLLBACK_COMPLETE"
65111
66112npx cdk destroy --all --force
67113
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-
73114echo " $( date) cleaning up user pools..."
74115next_token=" "
75116while true ; do
104145
105146
106147echo " $( date) removing buckets..."
107- for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^coreappplane -*" ) ; do
148+ for i in $( aws s3 ls | awk ' {print $3}' | grep -E " ^tenant-update-stack-*|^controlplane-stack-*|^core-appplane-*|^saas-reference-architecture -*" ) ; do
108149 echo " $( date) removing s3 bucket with name s3://${i} ..."
109150 aws s3 rm --recursive " s3://${i} "
110151 aws s3 rb --force " s3://${i} " # delete in stack
0 commit comments