Skip to content

Commit

Permalink
Added fix for specific API error that mijn.host sometimes throws.
Browse files Browse the repository at this point in the history
peterv99 committed Dec 27, 2024
1 parent d093476 commit ac9852f
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions dnsapi/dns_mijnhost.sh
Original file line number Diff line number Diff line change
@@ -19,8 +19,8 @@ dns_mijnhost_add() {
MIJNHOST_API_KEY="${MIJNHOST_API_KEY:-$(_readaccountconf_mutable MIJNHOST_API_KEY)}"
if [ -z "$MIJNHOST_API_KEY" ]; then
MIJNHOST_API_KEY=""
_err "You haven't specified mijn-host API key yet."
_err "Please set it and try again."
_err "You haven't specified your mijn-host API key yet."
_err "Please add MIJNHOST_API_KEY to the env."
return 1
fi

@@ -35,7 +35,7 @@ dns_mijnhost_add() {

_debug2 _sub_domain "$_sub_domain"
_debug2 _domain "$_domain"
_debug "Adding TXT record"
_debug "Adding DNS record" "${fulldomain}."

# Construct the API URL
api_url="$MIJNHOST_API/domains/$_domain/dns"
@@ -55,7 +55,7 @@ dns_mijnhost_add() {
# Build the payload for the API
data="{\"type\":\"TXT\",\"name\":\"$fulldomain.\",\"value\":\"$txtvalue\",\"ttl\":300}"

_debug2 "Record to add: " "$data"
_debug2 "Record to add" "$data"

# Updating the records
updated_records=$(echo "$records" | sed -E "s/\]( *$)/,$data\]/")
@@ -68,10 +68,10 @@ dns_mijnhost_add() {
_mijnhost_rest PUT "$api_url" "$data"

if [ "$_code" = "200" ]; then
_info "DNS record succesfully added"
_info "DNS record succesfully added."
return 0
else
_err "Error adding DNS record ($_code)"
_err "Error adding DNS record ($_code)."
return 1
fi
}
@@ -84,17 +84,18 @@ dns_mijnhost_rm() {
MIJNHOST_API_KEY="${MIJNHOST_API_KEY:-$(_readaccountconf_mutable MIJNHOST_API_KEY)}"
if [ -z "$MIJNHOST_API_KEY" ]; then
MIJNHOST_API_KEY=""
_err "You haven't specified mijn-host API key yet."
_err "You haven't specified your mijn-host API key yet."
_err "Please add MIJNHOST_API_KEY to the env."
return 1
fi

_debug "First detect the root zone"
_debug "Detecting root zone for" "${fulldomain}."
if ! _get_root "$fulldomain"; then
_err "Invalid domain"
return 1
fi

_debug "Removing TXT record" "$txtvalue" "for" "$fulldomain"
_debug "Removing DNS record for TXT value" "${txtvalue}."

# Construct the API URL
api_url="$MIJNHOST_API/domains/$_domain/dns"
@@ -124,10 +125,10 @@ dns_mijnhost_rm() {
_mijnhost_rest PUT "$api_url" "$data"

if [ "$_code" = "200" ]; then
_info "DNS record removed successfully"
_info "DNS record removed successfully."
return 0
else
_err "Error removing DNS record ($_code)"
_err "Error removing DNS record ($_code)."
return 1
fi
}
@@ -191,7 +192,7 @@ _mijnhost_rest() {
return 1
fi

if [ "$_ret" != "0" ] || [ -z "$_code" ]; then
if [ "$_ret" != "0" ] || [ -z "$_code" ] || [ "$_code" = "400" ] || _contains "$response" "DNS records not managed by mijn.host"; then #Sometimes API errors out
_request_retry_times="$(_math "$_request_retry_times" + 1)"
_info "REST call error $_code retrying $ep in $_request_retry_times s"
# Sleep 10 times the number of retries in seconds, to increase backoff time

0 comments on commit ac9852f

Please sign in to comment.