diff --git a/dnsapi/dns_pleskxml.sh b/dnsapi/dns_pleskxml.sh
index 2c42145b..3f4f4f2a 100644
--- a/dnsapi/dns_pleskxml.sh
+++ b/dnsapi/dns_pleskxml.sh
@@ -66,30 +66,33 @@ _DBG_EARLY_CHECK_MODE() {
return 1
fi
- _info "plesk XML running in debug mode. Debug level = '${_pleskxml_DBG_LEVEL}' "
- # This won't display if DBG level was set to zero.
-}
-
-# arg1 = severity level (1=least serious, 3=most serious)
-# By design if DBG level is 9 for a MESSAGE, the message is ALWAYS shown, this is used for _info and _err
-# arg2 = message
-_DBG() {
- if [ "$1" -eq 9 ] || ([ "$_pleskxml_DBG_LEVEL" -gt 0 ] && [ "$1" -ge "$_pleskxml_DBG_LEVEL" ]); then
- case $1 in
- 1) _pleskxml_severity='INFO' ;;
- 2) _pleskxml_severity='WARN' ;;
- 3) _pleskxml_severity='ERR' ;;
- 9) _pleskxml_severity='_ACME.SH' ;;
- esac
- _pleskxml_DBG_COUNT=$((_pleskxml_DBG_COUNT + 1))
- printf '%04d DEBUG [%s]:\n%s\n\n' "$_pleskxml_DBG_COUNT" "$_pleskxml_severity" "$2"
+ if [ $_pleskxml_DBG_LEVEL -gt 0 ]; then
+ _info "plesk XML running in debug mode. Debug level = '${_pleskxml_DBG_LEVEL}' "
+ # This won't display if DBG level was set to zero.
fi
}
-# arg1 = severity level (1=least serious, 3=most serious)
-# arg2 = message (vardump will be appended)
+# arg1 = LINENO
+# arg2 = severity level (1=least serious, 3=most serious)
+# By design if DBG level is 9 for a MESSAGE, the message is ALWAYS shown, this is used for _info and _err
+# arg3 = message
+_DBG() {
+ if [ "$2" -eq 9 ] || ([ "$_pleskxml_DBG_LEVEL" -gt 0 ] && [ "$2" -ge "$_pleskxml_DBG_LEVEL" ]); then
+ case $2 in
+ 1) _pleskxml_severity='MAX_DETAIL' ;;
+ 2) _pleskxml_severity='DETAIL' ;;
+ 3) _pleskxml_severity='INFO' ;;
+ 9) _pleskxml_severity='ACME.SH' ;;
+ esac
+ _pleskxml_DBG_COUNT=$((_pleskxml_DBG_COUNT + 1))
+ printf '%04d DEBUG [%s/%d, line %s]:\n%s\n\n' "$_pleskxml_DBG_COUNT" "$_pleskxml_severity" "$2" "$1" "$3"
+ fi
+}
+
+# arg1 = LINENO
+# arg2 = severity level (1=least serious, 3=most serious)
_DBG_VARDUMP() {
- _DBG "$1" "$(printf '%s: 1st lines of current defined variables are now:\n%s\n\n' "${2:-NO_FURTHER_MSG}" "$(set | grep '_pleskxml' | sort)")"
+ _DBG "$1" "$2" "$(printf '1st lines of current defined variables are now:\n%s\n\n' "$(set | grep '_pleskxml' | sort)")"
}
_DBG_ERR_TRAP() {
@@ -118,26 +121,26 @@ _pleskxml_newline='
# (otherwise printf repeats the string causing the API call to fail)
_pleskxml_tplt_get_domain_id="%s"
-# Convert domain name to a Plesk internal domain ID
-# Args:
-# the domain name to query
+# Convert domain name to a Plesk internal domain ID
+# Args:
+# the domain name to query
_pleskxml_tplt_add_txt_record="%sTXT%s%s"
-# Adds a TXT record to a domain
-# Args:
-# the Plesk internal domain ID for the domain
-# the "host" entry within the domain, to add this to (eg '_acme_challenge')
-# the TXT record value
+# Adds a TXT record to a domain
+# Args:
+# the Plesk internal domain ID for the domain
+# the "host" entry within the domain, to add this to (eg '_acme_challenge')
+# the TXT record value
_pleskxml_tplt_rmv_dns_record="%s"
-# Adds a TXT record to a domain
-# Args:
-# the Plesk internal ID for the dns record to delete
+# Adds a TXT record to a domain
+# Args:
+# the Plesk internal ID for the dns record to delete
_pleskxml_tplt_get_dns_records="%s"
-# Gets all DNS records for a Plesk domain ID
-# Args:
-# the domain id to query
+# Gets all DNS records for a Plesk domain ID
+# Args:
+# the domain id to query
############ Define public functions #####################
@@ -145,45 +148,46 @@ _pleskxml_tplt_get_dns_records="%s/dev/null)"
_pleskxml_retcode="$?"
- _DBG 1 "_pleskxml_prettyprint_result =${_pleskxml_newline}'$_pleskxml_prettyprint_result' "
- _DBG 2 "retcode = $_pleskxml_retcode"
+ _DBG "$LINENO" 1 "_pleskxml_prettyprint_result =${_pleskxml_newline}'$_pleskxml_prettyprint_result' "
+ _DBG "$LINENO" 2 "retcode = $_pleskxml_retcode"
# BUGFIX TO CHECK - WILL RETCODE FROM cURL BE AVAILABLE HERE?
@@ -421,7 +432,7 @@ _pleskxml_api_request() {
if [ $_pleskxml_retcode -ne 0 ]; then
_pleskxml_errors="Exiting due to cURL error when querying Plesk XML API. The cURL return code was: $_pleskxml_retcode."
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
@@ -437,19 +448,20 @@ _pleskxml_api_request() {
| tr -d '\n'
)"
- _DBG_VARDUMP 2 'cURL succeeded, valid cURL response obtained'
+ _DBG "$LINENO" 2 'cURL succeeded, valid cURL response obtained'
+ _DBG_VARDUMP "$LINENO" 2
# Now we need to check item by item if it's OK.
# As we go, we will strip out "known OK" stuff to leave the core reply.
# XML header and packet version?
- _DBG 2 'Checking and tags exist...'
+ _DBG "$LINENO" 2 'Checking and tags exist...'
if printf '%s' "$_pleskxml_result" | grep -qiEv '^<\?xml version=[^>]+>]+>.*$'; then
# Error - should have .... Abort
_pleskxml_errors="Error when querying Plesk XML API. The API did not return a valid XML response. The response was:${_pleskxml_newline}${_pleskxml_prettyprint_result}${_pleskxml_newline}The collapsed version was:${_pleskxml_newline}'${_pleskxml_result}'${_pleskxml_newline}"
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
else
# So far so good. Strip the and ... tags and continue
@@ -458,7 +470,7 @@ _pleskxml_api_request() {
)"
fi
- _DBG 2 "Checking tags don't exist..."
+ _DBG "$LINENO" 2 "Checking tags don't exist..."
# section found anywhere in response?
# This usually means some kind of basic API error such as login failure, bad XML request, etc
@@ -466,11 +478,11 @@ _pleskxml_api_request() {
if printf '%s' "$_pleskxml_result" | grep -qiE '.*'; then
# Error - shouldn't contain .... Abort
_pleskxml_errors='Error when querying Plesk XML API. The result contained a tag.\nThis usually indicates an invalid login, badly formatted API request or other error. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
- _DBG 2 'Checking 1 or >=1 tag (or tags) found, each containing 'status:ok'...'
+ _DBG "$LINENO" 2 'Checking 1 or >=1 tag (or tags) found, each containing 'status:ok'...'
# Check results section. Most commands only have one results section.
# But some (i.e., get all DNS records for a domain) have many results sections,
@@ -485,11 +497,11 @@ _pleskxml_api_request() {
if printf '%s' "$_pleskxml_result" | grep -qiEv '.*'; then
# Error - doesn't contain .... Abort
_pleskxml_errors='Error when querying Plesk XML API. The result did not contain a section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
- _DBG 2 'Found at least 1 section. Splitting each result section to a separate line'
+ _DBG "$LINENO" 2 'Found at least 1 section. Splitting each result section to a separate line'
_pleskxml_result="$(printf '%s' "$_pleskxml_result" \
| sed "s//\\${_pleskxml_newline}/g" \
@@ -501,18 +513,19 @@ _pleskxml_api_request() {
_pleskxml_linecount=$(printf '%s\n' "$_pleskxml_result" | wc -l)
- _DBG 2 "Result is: '$_pleskxml_result' (${_pleskxml_linecount} line(s))"
+ _DBG "$LINENO" 2 "Result is: '$_pleskxml_result' (${_pleskxml_linecount} line(s))"
- _DBG_VARDUMP 2 'Testing section linecount is OK (1 or >=1 as required)'
+ _DBG "$LINENO" 2 'Testing section linecount is OK (1 or >=1 as required)'
+ _DBG_VARDUMP "$LINENO" 2
if [ $_pleskxml_multiple_results_allowed -eq 0 ] && [ "$_pleskxml_linecount" -gt 1 ]; then
# Error - contains multiple sections. Abort
_pleskxml_errors='Error when querying Plesk XML API. The result contained more than one section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
- _DBG 2 "Found ${_pleskxml_linecount} section(s), checking each has status:ok..."
+ _DBG "$LINENO" 2 "Found ${_pleskxml_linecount} section(s), checking each has status:ok..."
# Loop through each section, checking every line has exactly one result section,
# containing exactly one status section, which contains ok
@@ -522,11 +535,12 @@ _pleskxml_api_request() {
# _pleskxml_line *should* contain a single result section.
# Check this is correct.
- # _DBG "Checking a section... content is ${_pleskxml_line}"
+ # _DBG "$LINENO" "Checking a section... content is ${_pleskxml_line}"
if printf '%s' "$_pleskxml_line" | grep -qiEv '^.*$'; then
# Error - doesn't contain .... Abort
_pleskxml_errors='Error when querying Plesk XML API. A section was not found where expected.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
+ _err "$_pleskxml_errors"
return 1
fi
@@ -537,21 +551,21 @@ _pleskxml_api_request() {
if printf '%s' "$_pleskxml_line" | grep -qiEv '.*'; then
# Error - doesn't contain .... Abort
_pleskxml_errors='Error when querying Plesk XML API. A section did not contain a section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _DBG "$LINENO" 2 "$_pleskxml_errors"
return 1
elif printf '%s' "$_pleskxml_line" | grep -qiE '.*.*'; then
# Error - contains ....... Abort
_pleskxml_errors='Error when querying Plesk XML API. A section contained more than one section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _DBG "$LINENO" 2 "$_pleskxml_errors"
return 1
elif printf '%s' "$_pleskxml_line" | grep -qiEv 'ok'; then
# Error - doesn't contain ok. Abort
_pleskxml_errors='Error when querying Plesk XML API. A tag did not contain "ok". The response was:\n'"$_pleskxml_prettyprint_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
- # _DBG "Line is OK. Looping to next line or exiting..."
+ # _DBG "$LINENO" "Line is OK. Looping to next line or exiting..."
done <ok sections as they're checked now.
- _DBG 2 "All results lines had status:ok. Exiting loop, and removing all ok tags now they've been checked"
+ _DBG "$LINENO" 2 "All results lines had status:ok. Exiting loop, and removing all ok tags now they've been checked"
_pleskxml_result="$(printf '%s' "$_pleskxml_result" \
| sed -E 's/ok<\/status>//g'
@@ -567,15 +581,16 @@ EOL
# Result is OK. Remove any redundant self-closing tags, and or tags, and exit
- _DBG 2 'Now removing any self-closing tags, or ... tags'
+ _DBG "$LINENO" 2 'Now removing any self-closing tags, or ... tags'
_pleskxml_result="$(printf '%s' "$_pleskxml_result" \
| sed -E 's/(<[a-zA-Z0-9._-]+[[:space:]]*\/>|<\/?data\/?>)//g'
)"
- _DBG 2 "About to exit API function. Result = ${_pleskxml_newline}'${_pleskxml_result}' "
+ _DBG "$LINENO" 2 "About to exit API function. Result = ${_pleskxml_newline}'${_pleskxml_result}' "
- _DBG_VARDUMP 2 'Successfully exiting Plesk XML API function'
+ _DBG "$LINENO" 2 'Successfully exiting Plesk XML API function'
+ _DBG_VARDUMP "$LINENO" 2
return 0
@@ -583,21 +598,21 @@ EOL
_pleskxml_get_domain_ID() {
- _DBG 2 "Entered Plesk get_domain_ID($*), to get the domain's Plesk ID."
+ _DBG "$LINENO" 2 "Entered Plesk get_domain_ID($*), to get the domain's Plesk ID."
# Call cURL to convert a domain name to a plesk domain ID.
- _DBG 2 'About to make API request (domain name -> domain ID)'
+ _DBG "$LINENO" 2 'About to make API request (domain name -> domain ID)'
_pleskxml_api_request "$_pleskxml_tplt_get_domain_id" "$1"
_pleskxml_retcode=$?
# $1 is the domain name we wish to convert to a Plesk domain ID
- _DBG 2 'Returned from API request, now back in get_domain_ID()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in get_domain_ID()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
@@ -605,17 +620,17 @@ _pleskxml_get_domain_ID() {
# Result should comprise precisely one section
- _DBG 2 'Testing API return data for one and removing if so'
+ _DBG "$LINENO" 2 'Testing API return data for one and removing if so'
if printf '%s' "$_pleskxml_result" | grep -qiEv '^.*$'; then
# Error - doesn't comprise DOMAINNAME. Something's wrong. Abort
_pleskxml_errors='Error when querying Plesk XML API. The API did not comprise a section containing all other data.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
elif printf '%s' "$_pleskxml_result" | grep -qiE '.*'; then
# Error - contains ....... Abort
_pleskxml_errors='Error when querying Plesk XML API. The API contained more than one section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
else
# So far so good. Remove the ... section and continue
@@ -626,17 +641,17 @@ _pleskxml_get_domain_ID() {
# Result should contain precisely one section, containing the domain name inquired.
- _DBG 2 'Testing API return data for one and removing if so'
+ _DBG "$LINENO" 2 'Testing API return data for one and removing if so'
if printf '%s' "$_pleskxml_result" | grep -qiv "$1"; then
# Error - doesn't contain DOMAINNAME. Something's wrong. Abort
_pleskxml_errors='Error when querying Plesk XML API. The API did not contain the expected section containing the domain name.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
elif printf '%s' "$_pleskxml_result" | grep -qiE '.*'; then
# Error - contains ....... Abort
_pleskxml_errors='Error when querying Plesk XML API. The API contained more than one section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
else
# So far so good. Remove the ... section and continue
@@ -647,12 +662,12 @@ _pleskxml_get_domain_ID() {
# All that should be left is one section, containing DOMAIN_ID
- _DBG 2 "Remaining part of result is now: '$_pleskxml_result' "
+ _DBG "$LINENO" 2 "Remaining part of result is now: '$_pleskxml_result' "
if printf '%s' "$_pleskxml_result" | grep -qiEv '^[0-9]+$'; then
# Error - doesn't contain just NUMBERS. Something's wrong. Abort
_pleskxml_errors='Error when querying Plesk XML API. The API did not contain the expected [NUMERIC_ID] section, or contained other unexpected values as well.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
@@ -662,7 +677,10 @@ _pleskxml_get_domain_ID() {
| sed -E 's/^([0-9]+)<\/id>$/\1/'
)"
- _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk get_domain_ID'
+ _pleskxml_domain_id="$_pleskxml_result"
+
+ _DBG "$LINENO" 2 'SUCCESSFULLY exiting Plesk get_domain_ID'
+ _DBG_VARDUMP "$LINENO" 2
return 0
@@ -674,47 +692,47 @@ _pleskxml_get_domain_ID() {
_pleskxml_get_dns_records() {
- _DBG 2 "Entered Plesk _pleskxml_get_dns_records($*)"
+ _DBG "$LINENO" 2 "Entered Plesk _pleskxml_get_dns_records($*)"
# First, we need to get all DNS records, and check the list is valid
- _DBG 2 'About to make API request (get DNS records)'
+ _DBG "$LINENO" 2 'About to make API request (get DNS records)'
_pleskxml_api_request "$_pleskxml_tplt_get_dns_records" "$1"
_pleskxml_retcode=$?
# $1 is the Plesk internal domain ID for the domain
- _DBG 2 'Returned from API request, now back in get_txt_records()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in get_txt_records()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
# OK, we should have a section containing a list of DNS records.
# Now keep only the TXT records
- _DBG 2 "Full DNS records were:${_pleskxml_newline}${_pleskxml_newline}'${_pleskxml_result}' "
+ _DBG "$LINENO" 2 "Full DNS records were:${_pleskxml_newline}${_pleskxml_newline}'${_pleskxml_result}' "
if [ -n "${2:-}" ]; then
_pleskxml_result="$(printf '%s' "$_pleskxml_result" \
| grep "$2"
)"
- _DBG 2 "Filtered relevant DNS records. Records to be returned are:${_pleskxml_newline}${_pleskxml_newline}'${_pleskxml_result}' "
+ _DBG "$LINENO" 2 "Filtered relevant DNS records. Records to be returned are:${_pleskxml_newline}${_pleskxml_newline}'${_pleskxml_result}' "
else
- _DBG 2 'Not filtering DNS records. All records will be returned.'
+ _DBG "$LINENO" 2 'Not filtering DNS records. All records will be returned.'
fi
- _DBG 2 "SUCCESSFULLY exiting _pleskxml_get_dns_records"
+ _DBG "$LINENO" 2 "SUCCESSFULLY exiting _pleskxml_get_dns_records"
return 0
}
_pleskxml_add_txt_record() {
- _DBG 2 "Entered Plesk _pleskxml_add_txt_record($*)"
+ _DBG "$LINENO" 2 "Entered Plesk _pleskxml_add_txt_record($*)"
- _DBG 2 'About to make API request (add TXT record)'
+ _DBG "$LINENO" 2 'About to make API request (add TXT record)'
_pleskxml_api_request "$_pleskxml_tplt_add_txt_record" "$1" "$2" "$3"
_pleskxml_retcode=$?
@@ -723,11 +741,11 @@ _pleskxml_add_txt_record() {
# $2 is the "host" entry within the domain, to add this to (eg '_acme_challenge')
# $3 is the TXT record value
- _DBG 2 'Returned from API request, now back in add_txt_record()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in add_txt_record()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
@@ -737,7 +755,7 @@ _pleskxml_add_txt_record() {
if printf '%s' "$_pleskxml_result" | grep -qivE '^[0-9]+$'; then
# Error - doesn't contain just NUMBERS. Something's wrong. Abort
_pleskxml_errors='Error when calling Plesk XML API. The API did not contain the expected [PLESK_NEW_DNS_RECORD_ID] section, or contained other unexpected values as well.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
@@ -748,33 +766,35 @@ _pleskxml_add_txt_record() {
| sed -E "s/^([0-9]+)<\/id><\/result>$/\1/"
)"
- _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_add_txt_record'
+ _DBG "$LINENO" 2 'SUCCESSFULLY exiting Plesk _pleskxml_add_txt_record'
+ _DBG_VARDUMP "$LINENO" 2
return 0
}
_pleskxml_rmv_dns_record() {
- _DBG 2 "Entered Plesk _pleskxml_rmv_dns_record($*)"
+ _DBG "$LINENO" 2 "Entered Plesk _pleskxml_rmv_dns_record($*)"
- _DBG 2 'About to make API request (rmv TXT record)'
+ _DBG "$LINENO" 2 'About to make API request (rmv TXT record)'
_pleskxml_api_request "$_pleskxml_tplt_rmv_dns_record" "$1"
_pleskxml_retcode=$?
# $1 is the Plesk internal domain ID for the TXT record
- _DBG 2 'Returned from API request, now back in rmv_dns_record()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in rmv_dns_record()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
# OK, we should have removed a TXT record. If it failed, there wouldn't have been a "status:ok" above
- _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_dns_record'
+ _DBG "$LINENO" 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_dns_record'
+ _DBG_VARDUMP "$LINENO" 2
return 0
}
@@ -784,25 +804,25 @@ _pleskxml_rmv_dns_record() {
# 3rd arg = value of TXT record string to be found and removed
_pleskxml_rmv_txt_record() {
- _DBG 2 "Entered Plesk _pleskxml_rmv_dns_TXT_record($*). Getting DNS TXT records for the domain ID"
+ _DBG "$LINENO" 2 "Entered Plesk _pleskxml_rmv_dns_TXT_record($*). Getting DNS TXT records for the domain ID"
_pleskxml_get_dns_records "$1" 'TXT'
_pleskxml_retcode=$?
# $1 is the Plesk internal domain ID for the domain
- _DBG 2 'Returned from API request, now back in rmv_txt_record()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in rmv_txt_record()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
# OK, we should have a section containing a list of DNS TXT records.
# Now we need to find our desired record in it (if it exists).
- # and might as well collapse any successful matches to a signle line for line-count purposes at the same time
+ # and might as well collapse any successful matches to a single line for line-count purposes at the same time
- _DBG 2 "Filters to apply (as literal strings):${_pleskxml_newline}'${2:-}.'${_pleskxml_newline}'${3:-}' "
+ _DBG "$LINENO" 2 "Filters to apply (as literal strings):${_pleskxml_newline}'${2:-}.'${_pleskxml_newline}'${3:-}' "
_pleskxml_result="$(printf '%s' "$_pleskxml_result" \
| grep -F "${2:-}." \
@@ -814,19 +834,19 @@ _pleskxml_rmv_txt_record() {
# ands this avoids regex and escaping which is easier
# NOTE: the returned "host" field is actually the FQDN, not just the host ID, hence the grep match on that field.
- _DBG 2 "Filtered result:${_pleskxml_newline}'$_pleskxml_result' "
+ _DBG "$LINENO" 2 "Filtered result:${_pleskxml_newline}'$_pleskxml_result' "
if printf '%s' "$_pleskxml_result" | grep -qiE ".*"; then
# Error - contains ....... Abort
_pleskxml_errors='Error when querying Plesk XML API. The API contained more than one section.\nThis is unexpected: something has gone wrong. Please raise this as a bug/issue in the module. The response was:\n'"$_pleskxml_prettyprint_result"'\nand the exact test string was:\n'"$_pleskxml_result"'\n'
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
if printf '%s\n' "$_pleskxml_result" | grep -qiv ""; then
# No matching TXT records, so we're done.
_info "Couldn't find a TXT record matching the requested host/value. Not an error, but a concern..."
- _DBG 2 "Exiting Plesk _pleskxml_rmv_txt_record (without raising an error), as nothing more to do: the record requested for deletion doesn't exist"
+ _DBG "$LINENO" 2 "Exiting Plesk _pleskxml_rmv_txt_record (without raising an error), as nothing more to do: the record requested for deletion doesn't exist"
_pleskxml_result=''
return 0
fi
@@ -837,112 +857,109 @@ _pleskxml_rmv_txt_record() {
| sed -E 's/^.*([0-9]+)<\/id>.*$/\1/'
)"
- _DBG 2 "A unique matching DNS TXT record was found, with Plesk record ID = '$_pleskxml_result'. Calling API to delete this record."
+ _DBG "$LINENO" 2 "A unique matching DNS TXT record was found, with Plesk record ID = '$_pleskxml_result'. Calling API to delete this record."
_pleskxml_rmv_dns_record "$_pleskxml_result"
_pleskxml_retcode=$?
- _DBG 2 'Returned from API request, now back in rmv_txt_record()'
+ _DBG "$LINENO" 2 'Returned from API request, now back in rmv_txt_record()'
if [ $_pleskxml_retcode -ne 0 ] || [ "$_pleskxml_errors" != '' ] || [ "$_pleskxml_result" = '' ]; then
# Really, just testing return code should be enough, based on above code, but let's go "all-in" and test all variables returned
- _DBG 2 "$_pleskxml_errors"
+ _err "$_pleskxml_errors"
return 1
fi
- _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_txt_record'
+ _DBG "$LINENO" 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_txt_record'
+ _DBG_VARDUMP "$LINENO" 2
return 0
}
-exit
+if false; then
-# ---------------------- TEST CODE ------------------------------
+ # ---------------------- TEST CODE ------------------------------
-# defined by user
-pleskxml_uri="https://plesk.XXXXX.net:8443/enterprise/control/agent.php"
-pleskxml_user="XXXXX"
-pleskxml_pass="XXXXX"
-pleskxml_debug_min_level=3
+ # defined by user
+ pleskxml_uri="https://plesk.XXXXX.net:8443/enterprise/control/agent.php"
+ pleskxml_user="XXXXX"
+ pleskxml_pass="XXXXX"
+ pleskxml_debug_min_level=3
-# defined from args by module
-_pleskxml_FQDN="_acme_challenge.XXXXX.com"
-_pleskxml_TXT_string='~test~string~'
+ # defined from args by module
+ _pleskxml_FQDN="_acme_challenge.XXXXX.com"
+ _pleskxml_TXT_string='~test~string~'
-printf '\n\n\n\n======================================================================== START OF RUN\n\n'
+ printf '\n\n\n\n======================================================================== START OF RUN\n\n'
-_info 'Checking debug mode...'
+ _info 'Checking debug mode...'
-_DBG_EARLY_CHECK_MODE
+ _DBG_EARLY_CHECK_MODE
-_DBG 3 'Debug mode done. Now testing _pleskxml_get_variables()'
+ _DBG "$LINENO" 3 'Debug mode done. Now testing _pleskxml_get_variables()'
-_pleskxml_get_variables
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _pleskxml_get_variables
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 '==============================================================='
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG 3 'Testing _pleskxml_get_domain_ID()'
-_pleskxml_get_domain_ID "atticflat.uk"
+ _DBG "$LINENO" 3 'Testing _pleskxml_get_domain_ID()'
+ _pleskxml_get_domain_ID "atticflat.uk"
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG_VARDUMP 2
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG 3 '==============================================================='
+ test_string="TEST STRING ADDED @ $(date)"
-test_string="TEST STRING ADDED @ $(date)"
+ _DBG "$LINENO" 3 "Testing add a TXT string: '$test_string' "
+ _pleskxml_add_txt_record 874 '_test_subdomain' "$test_string"
-_DBG 3 "Testing add a TXT string: '$test_string' "
-_pleskxml_add_txt_record 874 '_test_subdomain' "$test_string"
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG_VARDUMP 2
+ _DBG "$LINENO" 3 'Testing get DNS records (ALL)'
+ _pleskxml_get_dns_records 874
-_DBG 3 '==============================================================='
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 'Testing get DNS records (ALL)'
-_pleskxml_get_dns_records 874
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG "$LINENO" 3 'Testing get DNS records (TXT ONLY)'
+ _pleskxml_get_dns_records 874 TXT
-_DBG_VARDUMP 2
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 '==============================================================='
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG 3 'Testing get DNS records (TXT ONLY)'
-_pleskxml_get_dns_records 874 TXT
+ _DBG "$LINENO" 3 'Testing rmv a TXT string'
+ _pleskxml_rmv_txt_record 874 '_test_subdomain' "$test_string"
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG_VARDUMP 2
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG 3 '==============================================================='
+ _DBG "$LINENO" 3 'Re-testing get DNS records (TXT ONLY) after TXT string removal'
+ _pleskxml_get_dns_records 874 TXT
-_DBG 3 'Testing rmv a TXT string'
-_pleskxml_rmv_txt_record 874 '_test_subdomain' "$test_string"
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG "$LINENO" 3 '==============================================================='
-_DBG_VARDUMP 2
+ _DBG "$LINENO" 3 'Testing rmv a TXT string, with a non-matching string'
+ _pleskxml_rmv_txt_record 874 '_test_subdomain' 'JUNKegqw4bw4bb2'
-_DBG 3 '==============================================================='
+ _DBG "$LINENO" 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
+ _DBG_VARDUMP "$LINENO" 3
-_DBG 3 'Re-testing get DNS records (TXT ONLY) after TXT string removal'
-_pleskxml_get_dns_records 874 TXT
+ _DBG "$LINENO" 3 '=============================================================== END OF RUN'
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
-
-_DBG_VARDUMP 2
-
-_DBG 3 '==============================================================='
-
-_DBG 3 'Testing rmv a TXT string, with a non-matching string'
-_pleskxml_rmv_txt_record 874 '_test_subdomain' 'JUNKegqw4bw4bb2'
-
-_DBG 3 "$(printf 'RESULT:\n _pleskxml_errors: "%s"\n _pleskxml_retcode: "%s"\n _pleskxml_result: "%s"\n\n' "$_pleskxml_errors" "$_pleskxml_retcode" "$_pleskxml_result")"
-
-_DBG_VARDUMP 2
-
-_DBG 3 '=============================================================== END OF RUN'
+fi