Changed function _dns_cpaneldns_get_record(). Reporting is better and less code to do the job.

This commit is contained in:
Klaas Eenkhoorn 2018-08-03 14:45:03 +02:00
parent bcfc56323f
commit 671434f7a0

View File

@ -84,7 +84,6 @@ dns_cpaneldns_rm() {
record=$2
while _dns_cpaneldns_get_record "$zone" "$host" "$record"; do
record_id="$(_dns_cpaneldns_get_record "$zone" "$host" "$record")"
if [ ! -z "$record_id" ]; then
_debug zone "$zone"
@ -180,7 +179,35 @@ _dns_cpaneldns_get_zone_name() {
return 1
}
_dns_cpaneldns_get_record() {
zone=$1
host=$2
record=$3
_debug zone "$zone"
_debug host "$host"
_debug record "$record"
_dns_cpaneldns_http_api_call "cpanel_jsonapi_module=ZoneEdit" "cpanel_jsonapi_func=fetchzone_records&domain=$zone&$name=$host&type=TXT&txtdata=$record"
if ! _contains "$response" "\"line\":"; then
_info "No records left matching TXT host."
record_id=""
return 1
else
recordlist="$(echo "$response" | tr '{' "\n" | grep "$record" | _head_n 1)"
record_id="$(echo "$recordlist" | tr ',' "\n" | grep -E '^"line"' | sed -re 's/^\"line\"\:\"([0-9]+)\"$/\1/g' | cut -d ":" -f 2)"
_info "Removing record ID: $record_id"
_debug record_id "$record_id"
return 0
fi
}
_dns_cpaneldns_http_api_call() {
method=$1
_debug CPANELDNS_AUTH_ID "$CPANELDNS_AUTH_ID"
@ -199,30 +226,3 @@ _dns_cpaneldns_http_api_call() {
_debug response "$response"
return 0
}
_dns_cpaneldns_get_record() {
zone=$1
host=$2
record=$3
_debug zone "$zone"
_debug host "$host"
_debug record "$record"
_dns_cpaneldns_http_api_call "cpanel_jsonapi_module=ZoneEdit" "cpanel_jsonapi_func=fetchzone_records&domain=$zone&$name=$host&type=TXT&txtdata=$record"
if ! _contains "$response" "\"line\":"; then
_info "No records left matching TXT host."
return 1
fi
if $response; then
recordlist="$(echo "$response" | tr '{' "\n" | grep "$record" | _head_n 1)"
record_id="$(echo "$recordlist" | tr ',' "\n" | grep -E '^"line"' | sed -re 's/^\"line\"\:\"([0-9]+)\"$/\1/g' | cut -d ":" -f 2)"
echo "$record_id"
_debug record_id "$record_id"
return 0
fi
}