dnsapi: check Beget.com API replies
							parent
							
								
									077868604d
								
							
						
					
					
						commit
						66dd51a09a
					
				| 
						 | 
				
			
			@ -19,7 +19,7 @@ Beget_Api="https://api.beget.com/api"
 | 
			
		|||
dns_beget_add() {
 | 
			
		||||
  fulldomain=$1
 | 
			
		||||
  txtvalue=$2
 | 
			
		||||
  _debug "dns_beget_add $fulldomain $txtvalue"
 | 
			
		||||
  _debug "dns_beget_add() $fulldomain $txtvalue"
 | 
			
		||||
 | 
			
		||||
  Beget_Username="${Beget_Username:-$(_readaccountconf_mutable Beget_Username)}"
 | 
			
		||||
  Beget_Password="${Beget_Password:-$(_readaccountconf_mutable Beget_Password)}"
 | 
			
		||||
| 
						 | 
				
			
			@ -49,20 +49,27 @@ dns_beget_add() {
 | 
			
		|||
    data="{\"subdomain\":\"$_sub_domain\",\"domain_id\":$_domain_id}"
 | 
			
		||||
    res=$(_api_call "$Beget_Api/domain/addSubdomainVirtual" "$data")
 | 
			
		||||
 | 
			
		||||
    if _contains "$res" "^{\"status\":\"success\",\"answer\":{\"status\":\"success\",\"result\":[0-9]*}}$"; then
 | 
			
		||||
    if _is_api_reply_ok "$res"; then
 | 
			
		||||
      _debug "Cleanup subdomen records"
 | 
			
		||||
      data="{\"fqdn\":\"$fulldomain\",\"records\":{}}"
 | 
			
		||||
      res=$(_api_call "$Beget_Api/dns/changeRecords" "$data")
 | 
			
		||||
      if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
        _err "Can't cleanup subdomain records."
 | 
			
		||||
        return 1
 | 
			
		||||
      fi
 | 
			
		||||
      data="{\"fqdn\":\"www.$fulldomain\",\"records\":{}}"
 | 
			
		||||
      res=$(_api_call "$Beget_Api/dns/changeRecords" "$data")
 | 
			
		||||
      if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
        _err "Can't cleanup subdomain records."
 | 
			
		||||
        return 1
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  _info "Get current domain records"
 | 
			
		||||
  data="{\"fqdn\":\"$fulldomain\"}"
 | 
			
		||||
  res=$(_api_call "$Beget_Api/dns/getData" "$data")
 | 
			
		||||
 | 
			
		||||
  if ! _contains "$res" "^{\"status\":\"success\",\"answer\":{\"status\":\"success\",\"result\":{.*}}}$"; then
 | 
			
		||||
  if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
    _err "Can't get domain records."
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
| 
						 | 
				
			
			@ -82,6 +89,10 @@ dns_beget_add() {
 | 
			
		|||
  data=$(_add_record "$data" "TXT" "$str")
 | 
			
		||||
 | 
			
		||||
  res=$(_api_call "$Beget_Api/dns/changeRecords" "$data")
 | 
			
		||||
  if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
    _err "Can't change domain records."
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  return 0
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +102,7 @@ dns_beget_add() {
 | 
			
		|||
dns_beget_rm() {
 | 
			
		||||
  fulldomain=$1
 | 
			
		||||
  txtvalue=$2
 | 
			
		||||
  _debug "dns_beget_rm $fulldomain $txtvalue"
 | 
			
		||||
  _debug "dns_beget_rm() $fulldomain $txtvalue"
 | 
			
		||||
 | 
			
		||||
  Beget_Username="${Beget_Username:-$(_readaccountconf_mutable Beget_Username)}"
 | 
			
		||||
  Beget_Password="${Beget_Password:-$(_readaccountconf_mutable Beget_Password)}"
 | 
			
		||||
| 
						 | 
				
			
			@ -99,9 +110,8 @@ dns_beget_rm() {
 | 
			
		|||
  _info "Get current domain records"
 | 
			
		||||
  data="{\"fqdn\":\"$fulldomain\"}"
 | 
			
		||||
  res=$(_api_call "$Beget_Api/dns/getData" "$data")
 | 
			
		||||
 | 
			
		||||
  if ! _contains "$res" "^{\"status\":\"success\",\"answer\":{\"status\":\"success\",\"result\":{.*}}}$"; then
 | 
			
		||||
    _err Can\'t get domain records.
 | 
			
		||||
  if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
    _err "Can't get domain records."
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -120,6 +130,10 @@ dns_beget_rm() {
 | 
			
		|||
  data=$(_rm_record "$data" "$str")
 | 
			
		||||
 | 
			
		||||
  res=$(_api_call "$Beget_Api/dns/changeRecords" "$data")
 | 
			
		||||
  if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
    _err "Can't change domain records."
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  return 0
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -138,6 +152,10 @@ _get_root() {
 | 
			
		|||
 | 
			
		||||
  _debug "Request domain list"
 | 
			
		||||
  res=$(_api_call "$Beget_Api/domain/getList")
 | 
			
		||||
  if ! _is_api_reply_ok "$res"; then
 | 
			
		||||
    _err "Can't get domain list."
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  while true; do
 | 
			
		||||
    h=$(printf "%s" "$fulldomain" | cut -d . -f "$i"-100)
 | 
			
		||||
| 
						 | 
				
			
			@ -217,9 +235,13 @@ _api_call() {
 | 
			
		|||
    url=${url}"&input_data="
 | 
			
		||||
    url=${url}$(echo "$input_data" | _url_encode)
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  res=$(_get "$url")
 | 
			
		||||
 | 
			
		||||
  _debug "Reply: $res"
 | 
			
		||||
  echo "$res"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Usage: _is_api_reply_ok [api_reply]
 | 
			
		||||
_is_api_reply_ok() {
 | 
			
		||||
  _contains "$1" '^{"status":"success","answer":{"status":"success","result":.*}}$'
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue