From ca16a8f12da0a787315af8fcc879c2333992a0fe Mon Sep 17 00:00:00 2001 From: Yuan Ming Date: Thu, 13 Jan 2022 00:16:40 +0800 Subject: [PATCH] Add domain match in _get_zoneid MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 接口是模糊搜索,在账户添加了二级域名、相同结尾域名等情况下,会返回多条结果。 在原脚本基础上增加对返回体判断,遍历取所需ZoneID。 --- dnsapi/dns_huaweicloud.sh | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/dnsapi/dns_huaweicloud.sh b/dnsapi/dns_huaweicloud.sh index f7192725..519b715e 100644 --- a/dnsapi/dns_huaweicloud.sh +++ b/dnsapi/dns_huaweicloud.sh @@ -129,14 +129,27 @@ _get_zoneid() { fi _debug "$h" response=$(_get "${dns_api}/v2/zones?name=${h}") - + _debug "$response" if _contains "${response}" "id"; then - _debug "Get Zone ID Success." - _zoneid=$(echo "${response}" | _egrep_o "\"id\": *\"[^\"]*\"" | cut -d : -f 2 | tr -d \" | tr -d " ") - printf "%s" "${_zoneid}" - return 0 + zoneidlist=$(echo "${response}" | _egrep_o "\"id\": *\"[^\"]*\"" | cut -d : -f 2 | tr -d \" | tr -d " ") + zonenamelist=$(echo "${response}" | _egrep_o "\"name\": *\"[^\"]*\"" | cut -d : -f 2 | tr -d \" | tr -d " ") + _debug "Return Zone ID(s):" + _debug "${zoneidlist}" + _debug "Return Zone Name(s):" + _debug "${zonenamelist}" + zoneidnum=0 + while read -r zonename; do + let zoneidnum++ + _debug "Check Zone Name $zonename" + if [ $zonename = $h"." ]; then + _debug "Get Zone ID Success." + _zoneid=$(echo "${zoneidlist}" | sed -n $zoneidnum"p") + _debug "ZoneID:"$_zoneid + printf "%s" "${_zoneid}" + return 0 + fi + done <<< "$zonenamelist" fi - i=$(_math "$i" + 1) done return 1