#!/bin/bash # Step for the BUILD_FACTORY running the 'test.taler.net' site. set -eu if test -z "${DEPLOYMENT}"; then echo Please provide DEPLOYMENT env var: 'test' or 'demo' exit 1 fi DOMAIN="taler.net" # Give services time to start sleep 5 error_stringify () { case $1 in 28) echo "connection timed out" ;; 7) echo "failed to connect to host" ;; 0) echo "successful" ;; *) echo "unknown, see curl man page" ;; esac } error_fmt="%s (http status code: %s)/(curl condition: %s - %s)\n" URL="https://exchange.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s "$URL" -o /dev/null \ -w "%{http_code}") if ! test 200 = $http_status_code; then printf "'%s' failed\n" $URL printf "$error_fmt" \ "Exchange did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="http://backend.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s $URL \ --header "Authorization: ApiKey sandbox" \ -o /dev/null \ -w "%{http_code}") if ! test 200 = $http_status_code; then printf "'%s' failed\n" $URL printf "$error_fmt" \ "Merchant backend did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="https://shop.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s $URL -o /dev/null \ -w "%{http_code}") if ! test 302 = $http_status_code; then printf "%s failed\n" $URL printf "$error_fmt" \ "Blog did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="https://survey.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s $URL -o /dev/null \ -w "%{http_code}") if ! test 302 = $http_status_code; then printf "%s failed\n" $URL printf "$error_fmt" \ "Survey site did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="https://donations.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s $URL -o /dev/null \ -w "%{http_code}") if ! test 302 = $http_status_code; then printf "%s failed\n" $URL printf "$error_fmt" \ "Donations shop did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="https://bank.${DEPLOYMENT}.${DOMAIN}/" http_status_code=$(curl \ -s $URL -o /dev/null \ -w "%{http_code}") if ! test 302 = $http_status_code; then printf "%s failed\n" $URL printf "$error_fmt" \ "Bank did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi URL="https://${DEPLOYMENT}.${DOMAIN}/en/index.html" http_status_code=$(curl \ -s $URL -o /dev/null \ -w "%{http_code}") if ! test 200 = $http_status_code; then printf "%s failed\n" $URL printf "$error_fmt" \ "Landing page not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi if $(taler-config -s twister -o twister_deploy >& /dev/null); then for twister_url in "https://twister-backend.wild.gv.taler.net" \ "https://twister-bank.wild.gv.taler.net" \ "https://twister-exchange.wild.gv.taler.net"; do http_status_code=$(curl \ -H "Authorization: ApiKey sandbox" \ -s $twister_url -o /dev/null \ -w "%{http_code}") if ! test 200 = $http_status_code; then if test 503 = $http_status_code; then printf "%s %s\n" \ "Hit a '503 Service Unavailable' from Twister." \ "Assuming all is correct." exit 0 fi # Real failure here. printf "%s failed\n" $twister_url printf "$error_fmt" \ "Twister did not restart correctly" \ $http_status_code $? "$(error_stringify $?)" exit 1 fi done fi printf "All services correctly restarted!\n"