fix(cdn): manage Alliance hostname
This commit is contained in:
parent
a1c1f5e78f
commit
b395ddf4bd
1 changed files with 45 additions and 6 deletions
|
|
@ -19,22 +19,54 @@
|
|||
# why this is not used by the daily update path.
|
||||
#
|
||||
# The public hostnames currently use separate pull zones, so callers must pass
|
||||
# every zone that serves the repository.
|
||||
# every zone that serves the repository. A zone can be identified by its
|
||||
# numeric ID or by one of its hostnames; hostname lookup avoids persisting IDs
|
||||
# that change when a zone is recreated.
|
||||
#
|
||||
# Usage:
|
||||
# purge_cdn_zone.sh <BUNNYNET_API_KEY> <pull_zone_id> [<pull_zone_id>...]
|
||||
# purge_cdn_zone.sh <BUNNYNET_API_KEY> <pull_zone> [<pull_zone>...]
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
if (($# < 2)); then
|
||||
echo "usage: $0 <api_key> <pull_zone_id> [<pull_zone_id>...]" >&2
|
||||
echo "usage: $0 <api_key> <pull_zone> [<pull_zone>...]" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
api_key="$1"
|
||||
shift
|
||||
|
||||
for zone_id in "$@"; do
|
||||
resolve_zone_id() {
|
||||
local zone="$1"
|
||||
local response_file
|
||||
local zone_id
|
||||
|
||||
if [[ "${zone}" =~ ^[0-9]+$ ]]; then
|
||||
echo "${zone}"
|
||||
return
|
||||
fi
|
||||
|
||||
response_file=$(mktemp)
|
||||
curl -sS -o "${response_file}" \
|
||||
-H "AccessKey: ${api_key}" \
|
||||
"https://api.bunny.net/pullzone"
|
||||
zone_id=$(
|
||||
jq -r --arg hostname "${zone}" \
|
||||
'(.Items // .)[] | select(any(.Hostnames[]?; .Value == $hostname)) | .Id' \
|
||||
"${response_file}"
|
||||
)
|
||||
rm -f "${response_file}"
|
||||
|
||||
if [[ -z "${zone_id}" ]]; then
|
||||
echo "Could not find BunnyCDN pull zone for hostname ${zone}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "${zone_id}"
|
||||
}
|
||||
|
||||
for zone in "$@"; do
|
||||
zone_id=$(resolve_zone_id "${zone}")
|
||||
echo "Purging BunnyCDN pull zone ${zone_id}"
|
||||
|
||||
response_file="/tmp/purge_zone_response_${zone_id}.txt"
|
||||
|
|
|
|||
Loading…
Reference in a new issue