소스 검색

Merge pull request #2210 from chasefox/dev

Fix gcloud most-specific zone match
neil 6 년 전
부모
커밋
ade9d662db
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      dnsapi/dns_gcloud.sh

+ 3 - 3
dnsapi/dns_gcloud.sh

@@ -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