Skip to content

Commit 0f3d8da

Browse files
committed
fix: adding clean to the test rig.
1 parent a1fb76b commit 0f3d8da

3 files changed

Lines changed: 204 additions & 2 deletions

File tree

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,4 @@ terraform.tfvars
1919
_pycache_/*
2020
.terraform.lock.hcl
2121
errFile
22-
clean
23-
clean
2422
test.sh

clean

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
# I think it's a good idea to test your scripts. It's kinda awkward but you'll
2+
# be happy you did
3+
4+
5+
# DON'T REMOVE FROM test script.
6+
CYAN='\033[0;36m'
7+
BCYAN='\033[1;36m'
8+
NC='\033[0m' # No Color
9+
DIVIDER=$(printf %"$(tput cols)"s | tr " " "*")
10+
if [ -z "$DIVIDER" ]
11+
then
12+
DIVIDER=$(printf %"80"s | tr " " "*")
13+
fi
14+
DIVIDER+="\n"
15+
16+
17+
function get_project_id() {
18+
local __resultvar=$1
19+
VALUE=$(gcloud config get-value project | xargs)
20+
eval $__resultvar="'$VALUE'"
21+
}
22+
23+
function get_project_number() {
24+
local __resultvar=$1
25+
local PRO=$2
26+
VALUE=$(gcloud projects list --filter="project_id=$PRO" --format="value(PROJECT_NUMBER)" | xargs)
27+
eval $__resultvar="'$VALUE'"
28+
}
29+
30+
# DISPLAY HELPERS
31+
function section_open() {
32+
section_description=$1
33+
printf "$DIVIDER"
34+
printf "${CYAN}$section_description${NC} \n"
35+
printf "$DIVIDER"
36+
}
37+
38+
function section_close() {
39+
printf "$DIVIDER"
40+
printf "${CYAN}$section_description ${BCYAN}- done${NC}\n"
41+
printf "\n\n"
42+
}
43+
44+
function evalTest() {
45+
local command=$1
46+
local expected=$2
47+
48+
local ERR=""
49+
got=$(eval $command 2>errFile)
50+
ERR=$(<errFile)
51+
52+
if [ ${#ERR} -gt 0 ]; then
53+
if [ "$expected" = "EXPECTERROR" ]; then
54+
printf "Expected Error thrown \n"
55+
return
56+
fi
57+
58+
printf "Halting - error: '$ERR' \n"
59+
exit 1
60+
fi
61+
62+
if [ "$got" != "$expected" ]; then
63+
printf "Halting: '$got' expected '$expected' \n"
64+
exit 1
65+
fi
66+
67+
printf "$expected is ok\n"
68+
}
69+
70+
# END DON'T REMOVE FROM test script.
71+
72+
get_project_id PROJECT
73+
get_project_number PROJECT_NUMBER $PROJECT
74+
REGION=us-west1
75+
ZONE=us-west1-a
76+
BASENAME=serverless-social-media
77+
78+
79+
gcloud config set project ${PROJECT}
80+
81+
82+
private_ip_name=$(terraform output -raw private_ip_name)
83+
84+
85+
section_open "Delete Load Balancer parts"
86+
gcloud compute forwarding-rules delete $PROJECT -q
87+
gcloud compute target-http-proxies delete $PROJECT-http-proxy -q
88+
gcloud compute url-maps delete $PROJECT-url-map -q
89+
gcloud compute url-maps delete $PROJECT-https-redirect -q
90+
gcloud compute backend-services delete $PROJECT-backend-default -q --global
91+
section_close
92+
93+
94+
section_open "Delete Cloud Run Services"
95+
gcloud run services delete $PROJECT --region=us-central1 -q
96+
gcloud run services delete $PROJECT --region=us-west1 -q
97+
gcloud run services delete $PROJECT --region=us-east1 -q
98+
section_close
99+
100+
section_open "Deleting Secrets"
101+
gcloud secrets delete django_settings -q
102+
gcloud secrets delete DATABASE_PASSWORD -q
103+
gcloud secrets delete DATABASE_USER -q
104+
gcloud secrets delete DATABASE_NAME -q
105+
gcloud secrets delete DATABASE_HOST_PROD -q
106+
gcloud secrets delete DATABASE_PORT_PROD -q
107+
gcloud secrets delete EXTERNAL_IP -q
108+
gcloud secrets delete GS_BUCKET_NAME -q
109+
gcloud secrets delete PROJECT_ID -q
110+
gcloud secrets delete WEBSITE_URL_US_CENTRAL1 -q
111+
gcloud secrets delete WEBSITE_URL_US_WEST1 -q
112+
gcloud secrets delete WEBSITE_URL_US_EAST1 -q
113+
gcloud secrets delete SUPERUSER_PASSWORD -q
114+
section_close
115+
116+
section_open "Delete SQL Server"
117+
sql_servers_raw=$(gcloud sql instances list --format="value(name)")
118+
read -r -a sql_servers <<< $(echo "$sql_servers_raw" | tr '\n' ' ')
119+
120+
121+
for sql_name in "${sql_servers[@]}"; do
122+
gcloud sql instances delete $sql_name -q
123+
done
124+
section_close
125+
126+
section_open "Delete the Cloud Storage Bucket"
127+
gsutil rm -rf gs://$PROJECT-bucket/*
128+
gsutil rb gs://$PROJECT-bucket
129+
section_close
130+
131+
section_open "Delete Service Account"
132+
gcloud iam service-accounts delete django@$PROJECT.iam.gserviceaccount.com -q
133+
section_close
134+
135+
section_open "Deleting VPNs"
136+
gcloud compute networks vpc-access connectors delete vpc-con-us-west1 --region us-west1 -q
137+
gcloud compute networks vpc-access connectors delete vpc-con-us-central1 --region us-central1 -q
138+
gcloud compute networks vpc-access connectors delete vpc-con-us-east1 --region us-east1 -q
139+
section_close
140+
141+
section_open "Deleting Network Endpoint Groups"
142+
gcloud compute network-endpoint-groups delete $PROJECT--neg--us-west1 --region us-west1 -q
143+
gcloud compute network-endpoint-groups delete $PROJECT--neg--us-central1 --region us-central1 -q
144+
gcloud compute network-endpoint-groups delete $PROJECT--neg--us-east1 --region us-east1 -q
145+
section_close
146+
147+
section_open "Delete Load Balancer parts"
148+
gcloud compute forwarding-rules delete $PROJECT -q
149+
gcloud compute target-http-proxies delete $PROJECT-http-proxy -q
150+
gcloud compute url-maps delete $PROJECT-url-map -q
151+
gcloud compute url-maps delete $PROJECT-https-redirect -q
152+
gcloud compute backend-services delete $PROJECT-backend-default -q --global
153+
section_close
154+
155+
section_open "Delete the IP Address"
156+
ip_addresses_raw=$(gcloud compute addresses list --format="value(name)")
157+
read -r -a ip_addresses <<< $(echo "$ip_addresses_raw" | tr '\n' ' ')
158+
159+
160+
for sql_name in "${ip_addresses[@]}"; do
161+
gcloud compute addresses delete $ip_addresses --global -q
162+
done
163+
164+
ip_addresses_raw=$(gcloud compute addresses list --format="value(name)")
165+
read -r -a ip_addresses <<< $(echo "$ip_addresses_raw" | tr '\n' ' ')
166+
167+
168+
for sql_name in "${ip_addresses[@]}"; do
169+
gcloud compute addresses delete $ip_addresses --global -q
170+
done
171+
172+
section_close
173+
174+
175+
176+
section_open "Delete Extraneous networks"
177+
networks_raw=$(gcloud compute networks list --format="value(name)")
178+
read -r -a networks <<< $(echo "$networks_raw" | tr '\n' ' ')
179+
180+
181+
for network in "${networks[@]}"; do
182+
183+
if [[ "$network" = "default" ]]
184+
then
185+
echo "don't delete default"
186+
else
187+
echo "delete $network"
188+
gcloud compute networks delete $network -q
189+
fi
190+
done
191+
section_close
192+
193+
194+
195+
196+
197+
198+
printf "$DIVIDER"
199+
printf "CONGRATS!!!!!!! \n"
200+
printf "You got the end the of your test with everything working. \n"
201+
printf "$DIVIDER"

test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
# limitations under the License.
1414

1515
steps:
16+
- name: 'gcr.io/cloudshell-images/cloudshell:latest'
17+
entrypoint: bash
18+
args: [ './clean' ]
1619
- name: 'gcr.io/cloudshell-images/cloudshell:latest'
1720
entrypoint: bash
1821
args: [ './test' ]

0 commit comments

Comments
 (0)