blob: 306b6e39a0743a22bc91736ebd671c46c85e4446 [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
set -eu
start_time=$(date +%s)
source to-access.sh
set-dns.sh
insert-self-into-dns.sh
while ! to-ping; do
echo waiting for trafficops
sleep 3
done
xmlID="$(<<<"$DS_HOSTS" sed 's/ .*//g')" # Only get the first xmlID
while true; do
sleep 3
if ! exampleURLs=($(to-get "/api/${TO_API_VERSION}/deliveryservices?xmlId=${xmlID}" | jq -r '.response[].exampleURLs[]')) ||
[[ "${#exampleURLs[@]}" -eq 0 ]]; then
echo waiting for delivery service ${xmlID} example URLs
continue
fi
echo "example URLs: '${exampleURLs[*]}'"
success="true"
for u in "${exampleURLs[@]}"; do
if ! status=$(curl -Lkvs --connect-timeout 2 -m5 -o /dev/null -w "%{http_code}" "$u") ||
[[ "$status" -ne 200 ]]; then
echo "failed to curl delivery service example URL '$u' got status code '$status'"
success="false"
break
fi
echo "successfully curled delivery service example URL '$u'"
done
if [[ "$success" == "true" ]]; then
echo "successfully curled all delivery service example URLs '${exampleURLs[*]}'"
break
fi
done
xmlID="$(<<<"$DS_HOSTS" sed -E 's/.* (\w+) .*/\1/g')" # Only get the second xmlID
while true; do
sleep 3
if ! exampleURLs=($(to-get "/api/${TO_API_VERSION}/deliveryservices?xmlId=${xmlID}" | jq -r '.response[].exampleURLs[]')) ||
[[ "${#exampleURLs[@]}" -eq 0 ]]; then
echo waiting for delivery service ${xmlID} example URLs
continue
fi
echo "example URLs: '${exampleURLs[*]}'"
dsDomain="${exampleURLs[0]/*\/}"
if ! digResponse="$(dig +short "@${TR_FQDN}" -t CNAME "$dsDomain")" ||
[[ "$digResponse" != "$FEDERATION_CNAME" ]]; then
echo "Failed to query Delivery Service ${dsDomain} for Federation CNAME ${FEDERATION_CNAME}"
success=false
fi
if [[ "$success" == true ]]; then
echo "successfully queried Delivery Service ${dsDomain} for Federation CNAME '${FEDERATION_CNAME}'"
break
fi
done
end_time=$(date +%s)
delta=$((end_time - start_time))
echo "completed readiness check in $delta seconds"