Merge pull request #2210 from chasefox/dev

Fix gcloud most-specific zone match
This commit is contained in:
neil 2019-05-12 21:58:44 +08:00 committed by GitHub
commit ade9d662db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -134,14 +134,14 @@ _dns_gcloud_find_zone() {
filter="$filter)" filter="$filter)"
_debug filter "$filter" _debug filter "$filter"
# List domains and find the longest match (in case of some levels of delegation) # List domains and find the zone with the deepest sub-domain (in case of some levels of delegation)
if ! match=$(gcloud dns managed-zones list \ if ! match=$(gcloud dns managed-zones list \
--format="value(name, dnsName)" \ --format="value(name, dnsName)" \
--filter="$filter" \ --filter="$filter" \
| while read -r dnsName name; do | while read -r dnsName name; do
printf "%s\t%s\t%s\n" "${#dnsName}" "$dnsName" "$name" printf "%s\t%s\t%s\n" "$(echo "$name" | awk -F"." '{print NF-1}')" "$dnsName" "$name"
done \ done \
| sort -n -r | _head_n 1 | cut -f2,3 | grep '^.*'); then | sort -n -r | _head_n 1 | cut -f2,3 | grep '^.*'); then
_err "_dns_gcloud_find_zone: Can't find a matching managed zone! Perhaps wrong project or gcloud credentials?" _err "_dns_gcloud_find_zone: Can't find a matching managed zone! Perhaps wrong project or gcloud credentials?"
return 1 return 1
fi fi