very weird thing happening in AWS SSM Parameter Input. The pasted input below gets modified in AWS SSM Automation Documents. Can anyone tell me why this happens? It breaks my script and i can't work with this.
here's my code
schemaVersion: "2.2"
description: "Check HANA DB and stop it LINUX"
mainSteps:
- action: "aws:runShellScript"
name: "HANA_DB_STOP"
inputs:
runCommand:
- '#### errocodes'
- '#### 0 = SCRIPT RAN OK'
- '#### 10 = SCRIPT FAILED'
- ''
- '# stop hana db'
- 'echo "Stopping Hana DB"'
- 'sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop'
- ''
- '# check hana db state'
- 'echo "Checking if Hana DB is running."'
- 'HANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`'
- 'sleep 20'
- 'if [[ "$HANADBSTATUS" =~ "GRAY" ]]'
- 'then'
- ' echo "Hana DB is stopped."'
- ' exit 0'
- 'else'
- 'i=1'
- 'while [[ ! "$HANADBSTATUS" =~ "GRAY" ]] && [[ "$i" -lt 11 ]]'
- ' do'
- ' echo "Warning: HANA DB is running. Checking 10 times with 20 second intervalls until script aborts. This is check $i." '
- ' sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop'
- ' sleep 20'
- ' # check db state again'
- ' HANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`'
- ' ((i++))'
- ' if [ "$i" = 10 ]'
- ' then'
- ' echo "Error: retried $i-Times. Couldnt stop DB. Exiting Script."'
- ' echo "Script aborts with Error 0"'
- ' exit 10'
- ' fi'
- ' done'
- ' if [[ "$HANADBSTATUS" =~ "GRAY" ]]'
- ' then'
- ' echo "Hana DB is stopped."'
- ' exit 0'
- ' fi'
- 'fi'
This is the output AWS gives me
schemaVersion: '2.2'
description: Check HANA DB and stop it LINUX
mainSteps:
- action: 'aws:runShellScript'
name: HANA_DB_STOP
inputs:
runCommand:
- '#### errocodes'
- "#### 0\t= SCRIPT RAN OK"
- "#### 10\t= SCRIPT FAILED"
- ''
- '# stop hana db'
- echo "Stopping Hana DB"
- sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop
- ''
- '# check hana db state'
- echo "Checking if Hana DB is running."
- HANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`
- sleep 20
- 'if [[ "$HANADBSTATUS" =~ "GRAY" ]]'
- then
- ' echo "Hana DB is stopped."'
- ' exit 0'
- else
- i=1
- 'while [[ ! "$HANADBSTATUS" =~ "GRAY" ]] && [[ "$i" -lt 11 ]]'
- "\tdo"
- "\t\techo \"Warning: HANA DB is running. Checking 10 times with 20 second intervalls until script aborts. This is check $i.\" "
- "\t\tsudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop"
- "\t\tsleep 20"
- "\t\t# check db state again"
- "\t\tHANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`"
- "\t\t((i++))"
- "\t\tif [ \"$i\" = 10 ]"
- "\t\t\tthen"
- "\t\t\t\techo \"Error: retried $i-Times. Couldnt stop DB. Exiting Script.\""
- "\t\t\t\techo \"Script aborts with Error 0\""
- "\t\t\t\texit 10"
- "\t\tfi"
- "\tdone"
- "\tif [[ \"$HANADBSTATUS\" =~ \"GRAY\" ]]"
- ' then'
- ' echo "Hana DB is stopped."'
- ' exit 0'
- "\tfi"
- fi
I know why \t gets added, but i still don't understand why and how it removes the ' in my scripts