-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript-tf-json.sh
76 lines (76 loc) · 3.26 KB
/
script-tf-json.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
export region='eu-amsterdam-1'
export compt_ocid='<YOUR COMPARTMENT OCID>'
echo "--------- Packaging Terraform and source files for the Stack as .zip --------"
cd terraform
cp ../gen_apex.sh .
cp ../*.xml .
cp -rf ../index .
cp -rf ../table .
cp -rf ../ref_constraint .
mkdir html
cp ../index.html html/.
cp ../vue.js html/.
cp ../pricing.css html/.
zip -r stack.zip *
echo "----------------------------------------------------------------------------"
echo ""
export ocid=$(oci resource-manager stack create --config-source stack.zip --compartment-id $compt_ocid --terraform-version 0.12.x | jq '.data.id' | tr -d '"')
cd ..
sed -i "s|<YOUR COMPARTMENT OCID>|$compt_ocid|g" vars.json
sed -i "s|\"region\": \"\"|\"region\": \"$region\"|g" vars.json
echo "--------- Update Terraform with vars.json (to create infra) ---------"
cat vars.json
echo "---------------------------------------------------------------------"
oci resource-manager stack update --stack-id $ocid --variables file://vars.json --force
export jobId=$(oci resource-manager job create --stack-id $ocid --operation APPLY --apply-job-plan-resolution '{"isAutoApproved": true }' | jq '.data.id' | tr -d '"')
export tries=0
export status=''
while [ $tries -le 100 ] && [[ $status != 'SUCCEEDED' ]]
do
export status=$(oci resource-manager job get --job-id $jobId | jq '.data."lifecycle-state"' | tr -d '"')
echo "stack status: $tries $status"
tries=$(( $tries + 1 ))
sleep 5
if [ "$status" == "FAILED" ]; then
echo "${stackName} stack apply failed .. exiting script."
exit 1
fi
done
if [ "$status" != "SUCCEEDED" ]; then
echo "${stackName} stack apply not completed in 500 seconds .. exiting script."
exit 1
fi
oci resource-manager job get-job-logs-content --job-id $jobId > log.txt
sed -i 's/\\n/\n/g' log.txt
tail -n 3 log.txt | head -n 1 > out.txt
export atp=$(grep -oP '(?<=atp = \\")[^\\"]*' out.txt)
echo "ATP: $atp"
export url=$(oci db autonomous-database get --autonomous-database-id $atp | jq -r '.data."connection-urls"."apex-url"')
export ords=$(echo $url | sed "s|apex|priceadmin|g")
export apex=$(echo $url | sed "s|apex|r/priceadmin/price-admin/login|g")
sed -i "s|\"ords_url\": \"\"|\"ords_url\": \"$ords\"|g" vars.json
sed -i "s|\"apex_url\": \"\"|\"apex_url\": \"$apex\"|g" vars.json
echo "--------- Update Terraform with vars.json (to update html in bucket with previously generated values) ---------"
cat vars.json
echo "---------------------------------------------------------------------------------------------------------------"
oci resource-manager stack update --stack-id $ocid --variables file://vars.json --force
export jobId=$(oci resource-manager job create --stack-id $ocid --operation APPLY --apply-job-plan-resolution '{"isAutoApproved": true }' | jq '.data.id' | tr -d '"')
export tries=0
export status=''
while [ $tries -le 100 ] && [[ $status != 'SUCCEEDED' ]]
do
export status=$(oci resource-manager job get --job-id $jobId | jq '.data."lifecycle-state"' | tr -d '"')
echo "stack status: $tries $status"
tries=$(( $tries + 1 ))
sleep 5
if [ "$status" == "FAILED" ]; then
echo "${stackName} stack apply failed .. exiting script."
exit 1
fi
done
if [ "$status" != "SUCCEEDED" ]; then
echo "${stackName} stack apply not completed in 500 seconds .. exiting script."
exit 1
else
echo "Done."
fi