diff -Naur gosc-scripts/imc-shell/imgcust-scripts/CustomizationUtils.sh gosc-scripts-modify/imc-shell/imgcust-scripts/CustomizationUtils.sh --- gosc-scripts/imc-shell/imgcust-scripts/CustomizationUtils.sh 2016-04-30 04:11:27.000000000 +0530 +++ gosc-scripts-modify/imc-shell/imgcust-scripts/CustomizationUtils.sh 2018-07-04 20:13:30.443320383 +0530 @@ -633,6 +633,55 @@ Info "RunCustomScript has completed" } +# Runs post-customization script. +# +# Args: +# scriptPath: string: relative path to the script +# Results: +# None +# Throws: +# Dies in case execution returns non-zero exit code. +RunPostCustomScript() +{ + local scriptPath=$1 + + Info "RunPostCustomScript invoked" + + if [[ -e $scriptPath ]]; then + # Strip any CR characters from the decoded script + Exec "${CAT} $scriptPath | ${TR} -d '\r' > $scriptPath.tmp" '' '' + Exec "${CHMOD} u+x $scriptPath.tmp" '' '' + + Info "Executing post-customization script..." + + ${SH} -c "$scriptPath.tmp postcustomization" + local exitCode=$? + if [[ $exitCode -ne 0 ]]; then + Die "Execution of post-customization failed!" + fi + else + Warn "Customization script '$scriptPath' does not exist" + fi + + Info "RunPostCustomScript has completed" +} + +# Sets Guest Customization status +# +# Args: +# Status: String: Started / Successful / Failed +# Results: +# None +# Throws: +# None +PostGCStatus() +{ + local STATUS=$1 + local OUTPUT="$(ps -C vmtoolsd -o cmd=)" + local CMD="$OUTPUT --cmd \"info-set guestinfo.gc.status $STATUS\"" + eval $CMD +} + # Installs post-customization script. # # Args: diff -Naur gosc-scripts/imc-shell/imgcust-scripts/PhotonCustomization.sh gosc-scripts-modify/imc-shell/imgcust-scripts/PhotonCustomization.sh --- gosc-scripts/imc-shell/imgcust-scripts/PhotonCustomization.sh 2016-04-30 02:40:39.000000000 +0530 +++ gosc-scripts-modify/imc-shell/imgcust-scripts/PhotonCustomization.sh 2018-07-04 23:25:43.503012031 +0530 @@ -20,7 +20,6 @@ scriptName=`${DIRNAME} $configPath`"/$scriptName" Info "Handling customization script [$scriptName]" RunCustomScript $scriptName - InstallCustomScript $scriptName else Info "No customization script to run" fi @@ -88,7 +87,27 @@ Info "Photon customization started" + #Set Guest Customization status as Started + PostGCStatus "Started" + RunCloudConfig $configFilePath Info "Photon customization finished" + + # Run Post customization script + + local scriptName=$(ConfigFile_GetCustomScriptName) + + if [[ -n "$scriptName" ]]; then + scriptName=`${DIRNAME} $configFilePath`"/$scriptName" + Info "Handling Post Customization script [$scriptName]" + RunPostCustomScript $scriptName + else + Info "No post customization script to run" + fi + + #Set Guest customization status as successful + PostGCStatus "Successful" + + Info "Photon Customization Successful. GC Status is updated" } diff -Naur gosc-scripts/imc-shell/imgcust-scripts/Utils.sh gosc-scripts-modify/imc-shell/imgcust-scripts/Utils.sh --- gosc-scripts/imc-shell/imgcust-scripts/Utils.sh 2016-04-30 02:40:39.000000000 +0530 +++ gosc-scripts-modify/imc-shell/imgcust-scripts/Utils.sh 2018-07-04 19:32:43.255385812 +0530 @@ -105,6 +105,8 @@ { Error "$@" echo "DIE: $@" 1>&2 + # Set Guest customization status as failure + PostGCStatus "Failed" exit 1 }