From ac9ba6a417fc5b332829c6132806e7e4fe1c148d Mon Sep 17 00:00:00 2001 From: stilez Date: Mon, 13 Aug 2018 14:12:35 +0000 Subject: [PATCH] Spaces/indents - I think! --- dnsapi/dns_pleskxml.sh | 300 ++++++++++++++++++++--------------------- 1 file changed, 149 insertions(+), 151 deletions(-) diff --git a/dnsapi/dns_pleskxml.sh b/dnsapi/dns_pleskxml.sh index fb13e9a7..a845ffec 100644 --- a/dnsapi/dns_pleskxml.sh +++ b/dnsapi/dns_pleskxml.sh @@ -7,22 +7,22 @@ # v0.1 alpha - 2018-08-13 -# This DNS01 method allows acme.sh to set DNS TXT records +# This DNS01 method allows acme.sh to set DNS TXT records # using the Plesk XML API described at: # https://docs.plesk.com/en-US/12.5/api-rpc/about-xml-api.28709 # and more specifically: https://docs.plesk.com/en-US/12.5/api-rpc/reference.28784 # This may be needed if the DNS provider doesn't make the standard Plesk API available to a user. -# As a result, Plesk can't be configured using usual means or RFC1236. But the XML API is often +# As a result, Plesk can't be configured using usual means or RFC1236. But the XML API is often # still left accessible, and is well documented, so it can be used instead, for acme.sh purposes. # API NOTES: # 1) The API uses a user/password combination. It should therefore require cURL over HTTPS -# with a MAXIMALLY SECURE TLS CIPHER AND GOOD CERT + REVOCATION CHECKS ON THE API URI, -# in (almost) all cases. +# with a MAXIMALLY SECURE TLS CIPHER AND GOOD CERT + REVOCATION CHECKS ON THE API URI, +# in (almost) all cases. # Acceptable/valid ciphers and certificate checks can be specified via optional cURL variables (see below). # Note that edge cases may exist where SSL is not yet set up @@ -30,7 +30,7 @@ # 2) --anyauth is used with cURL, to ensure the highest available level of encryption. -# 3) The API references domains by a domain ID, when manipulating records. So the code must +# 3) The API references domains by a domain ID, when manipulating records. So the code must # initially convert domain names (string) to Plesk domain IDs (numeric). @@ -41,7 +41,7 @@ # export pleskxml_uri="https://www.plesk_uri.org:8443/enterprise/control/agent.php" # (or something similar) # export pleskxml_user="johndoe" -# export pleskxml_pass="kj8we8dej38e8d#q0q3!!!qa" +# export pleskxml_pass="XXXXX" # OPTIONAL VARIABLES: @@ -62,7 +62,7 @@ ############ Before anything else, define dedug functions to be sure they are detected even if while testing ##################### _DBG_EARLY_CHECK_MODE() { - + if printf '%s' "${pleskxml_debug_min_level:-0}" | grep -qE '^[0-3]$' ; then _pleskxml_DBG_LEVEL="${pleskxml_debug_min_level:-0}" _pleskxml_DBG_COUNT=0 @@ -72,7 +72,7 @@ _DBG_EARLY_CHECK_MODE() { fi _info "plesk XML running in debug mode. Debug level = '${_pleskxml_DBG_LEVEL}' " - # This won't display if DBG level was set to zero. + # This won't display if DBG level was set to zero. } # arg1 = severity level (1=least serious, 3=most serious) @@ -130,7 +130,7 @@ _pleskxml_newline=' ' -# Plesk XML templates. +# Plesk XML templates. # Note ALL TEMPLATES MUST HAVE EXACTLY 3 %s PLACEHOLDERS # (otherwise printf repeats the string causing the API call to fail) @@ -163,24 +163,23 @@ _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 1 "_pleskxml_prettyprint_result =${_pleskxml_newline}'$_pleskxml_prettyprint_result' " + _DBG 2 "retcode = $_pleskxml_retcode" # BUGFIX TO CHECK - WILL RETCODE FROM cURL BE AVAILABLE HERE? # Abort if cURL failed - + 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" + _DBG 2 "$_pleskxml_errors" return 1 fi - + # OK. Next, check XML reply was OK. Start by pushing it into one line, with leading/trailing space trimmed. # _pleskxml_result="$( printf '%s' "$_pleskxml_prettyprint_result" | \ @@ -463,20 +462,20 @@ _DBG 2 "$_pleskxml_errors" sed -E 's/(^[[:space:]]+|[[:space:]]+$)//g' | \ tr -d '\n' \ )" - -_DBG_VARDUMP 2 'cURL succeeded, valid cURL response obtained' - - # 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. + _DBG_VARDUMP 2 'cURL succeeded, valid cURL response obtained' + + # 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 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" + _DBG 2 "$_pleskxml_errors" return 1 else # So far so good. Strip the and ... tags and continue @@ -485,41 +484,41 @@ _DBG 2 "$_pleskxml_errors" )" fi -_DBG 2 "Checking tags don't exist..." + _DBG 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 - + 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" + _DBG 2 "$_pleskxml_errors" return 1 fi -_DBG 2 'Checking 1 or >=1 tag (or tags) found, each containing 'status:ok'...' + _DBG 2 'Checking 1 or >=1 tag (or tags) found, each containing 'status:ok'...' - - # Check results section. Most commands only have one results section. + + # 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, # and we will need to check each ... section separately. # So this gets a bit messy, especially as we don't have non-greedy regex # and we will have to work around that as well. # For this, we will split the string up again with exactly 1 section per line. - # We check there is at least one result section. Then we add newlines before and after + # We check there is at least one result section. Then we add newlines before and after # any ... and ignore any lines that don't contain ''. 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" + _DBG 2 "$_pleskxml_errors" return 1 fi -_DBG 2 'Found at least 1 section. Splitting each result section to a separate line' + _DBG 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" | \ @@ -528,30 +527,30 @@ _DBG 2 'Found at least 1 section. Splitting each result section to a se )" # Detect and abort if there are >1 sections and we're ponly expecting 1 section. - + _pleskxml_linecount=$( printf '%s\n' "$_pleskxml_result" | wc -l ) -_DBG 2 "Result is: '$_pleskxml_result' (${_pleskxml_linecount} line(s))" + _DBG 2 "Result is: '$_pleskxml_result' (${_pleskxml_linecount} line(s))" + + _DBG_VARDUMP 2 'Testing section linecount is OK (1 or >=1 as required)' -_DBG_VARDUMP 2 'Testing section linecount is OK (1 or >=1 as required)' - 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" + _DBG 2 "$_pleskxml_errors" return 1 fi -_DBG 2 "Found ${_pleskxml_linecount} section(s), checking each has status:ok..." - - # Loop through each section, checking every line has exactly one result section, + _DBG 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 while IFS= read -r _pleskxml_line; do # _pleskxml_line *should* contain a single result section. # Check this is correct. - + # _DBG "Checking a section... content is ${_pleskxml_line}" @@ -560,25 +559,25 @@ _DBG 2 "Found ${_pleskxml_linecount} section(s), checking each has stat _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' return 1 fi - + # Now strip the tag and check there is precisely one section and its ciontents are "ok" - + _pleskxml_line="$( printf '%s' "$_pleskxml_line" | sed -E 's/^(.*)<\/result>$/\1/' )" 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 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 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" + _DBG 2 "$_pleskxml_errors" return 1 fi @@ -590,7 +589,7 @@ EOL # So far so good. Remove all 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 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' \ @@ -598,18 +597,18 @@ _DBG 2 "All results lines had status:ok. Exiting loop, and removing all or tags, and exit -_DBG 2 'Now removing any self-closing tags, or ... tags' + _DBG 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 2 "About to exit API function. Result = ${_pleskxml_newline}'${_pleskxml_result}' " -_DBG_VARDUMP 2 'Successfully exiting Plesk XML API function' + _DBG_VARDUMP 2 'Successfully exiting Plesk XML API function' return 0 - + } @@ -617,39 +616,39 @@ _DBG_VARDUMP 2 'Successfully exiting Plesk XML API function' _pleskxml_get_domain_ID() { -_DBG 2 "Entered Plesk get_domain_ID($*), to get the domain's Plesk ID." + _DBG 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 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 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" + _DBG 2 "$_pleskxml_errors" return 1 fi # OK, we should have a domain ID. Let's check and return it if so. - + # Result should comprise precisely one section - -_DBG 2 'Testing API return data for one and removing if so' + + _DBG 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" + _DBG 2 "$_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" + _DBG 2 "$_pleskxml_errors" return 1 else # So far so good. Remove the ... section and continue @@ -659,18 +658,18 @@ _DBG 2 "$_pleskxml_errors" fi # Result should contain precisely one section, containing the domain name inquired. - -_DBG 2 'Testing API return data for one and removing if so' + + _DBG 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" + _DBG 2 "$_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" + _DBG 2 "$_pleskxml_errors" return 1 else # So far so good. Remove the ... section and continue @@ -680,25 +679,25 @@ _DBG 2 "$_pleskxml_errors" fi # All that should be left is one section, containing DOMAIN_ID - -_DBG 2 "Remaining part of result is now: '$_pleskxml_result' " + + _DBG 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" + _DBG 2 "$_pleskxml_errors" return 1 fi - + # SUCCESS! Remove the surrounding tag and return the value! _pleskxml_result="$( printf '%s' "$_pleskxml_result" | \ sed -E 's/^([0-9]+)<\/id>$/\1/' \ )" -_DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk get_domain_ID' + _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk get_domain_ID' - return 0 + return 0 } @@ -709,41 +708,40 @@ _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk get_domain_ID' _pleskxml_get_dns_records() { -_DBG 2 "Entered Plesk _pleskxml_get_dns_records($*)" + _DBG 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 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 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" + _DBG 2 "$_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 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 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 2 'Not filtering DNS records. All records will be returned.' fi - -_DBG 2 "SUCCESSFULLY exiting _pleskxml_get_dns_records" + + _DBG 2 "SUCCESSFULLY exiting _pleskxml_get_dns_records" return 0 } @@ -751,9 +749,9 @@ _DBG 2 "SUCCESSFULLY exiting _pleskxml_get_dns_records" _pleskxml_add_txt_record() { -_DBG 2 "Entered Plesk _pleskxml_add_txt_record($*)" + _DBG 2 "Entered Plesk _pleskxml_add_txt_record($*)" -_DBG 2 'About to make API request (add TXT record)' + _DBG 2 'About to make API request (add TXT record)' _pleskxml_api_request "$_pleskxml_tplt_add_txt_record" "$1" "$2" "$3" _pleskxml_retcode=$? @@ -762,24 +760,24 @@ _DBG 2 'About to make API request (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 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" + _DBG 2 "$_pleskxml_errors" return 1 fi # OK, we should have added a TXT record. Let's check and return success if so. # All that should be left in the result, is one section, containing PLESK_NEW_DNS_RECORD_ID - + 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" + _DBG 2 "$_pleskxml_errors" return 1 fi - + # SUCCESS! Remove the surrounding tags and return the value! # (although we don't actually use it! @@ -787,35 +785,35 @@ _DBG 2 "$_pleskxml_errors" sed -E "s/^([0-9]+)<\/id><\/result>$/\1/" \ )" -_DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_add_txt_record' + _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_add_txt_record' - return 0 + return 0 } _pleskxml_rmv_dns_record() { -_DBG 2 "Entered Plesk _pleskxml_rmv_dns_record($*)" + _DBG 2 "Entered Plesk _pleskxml_rmv_dns_record($*)" -_DBG 2 'About to make API request (rmv TXT record)' + _DBG 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 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" + _DBG 2 "$_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_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_dns_record' - return 0 + return 0 } @@ -825,18 +823,18 @@ _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_dns_record' _pleskxml_rmv_txt_record() { -_DBG 2 "Entered Plesk _pleskxml_rmv_dns_TXT_record($*). Getting DNS TXT records for the domain ID" + _DBG 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 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" + _DBG 2 "$_pleskxml_errors" return 1 fi @@ -844,7 +842,7 @@ _DBG 2 "$_pleskxml_errors" # 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 -_DBG 2 "Filters to apply (as literal strings):${_pleskxml_newline}'${2:-}.'${_pleskxml_newline}'${3:-}' " + _DBG 2 "Filters to apply (as literal strings):${_pleskxml_newline}'${2:-}.'${_pleskxml_newline}'${3:-}' " _pleskxml_result="$( printf '%s' "$_pleskxml_result" | \ grep -F "${2:-}." | \ @@ -856,19 +854,19 @@ _DBG 2 "Filters to apply (as literal strings):${_pleskxml_newline}'${2:-.*"; 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" + _DBG 2 "$_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 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 @@ -879,22 +877,22 @@ _DBG 2 "Exiting Plesk _pleskxml_rmv_txt_record (without raising an error), as no 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 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 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" + _DBG 2 "$_pleskxml_errors" return 1 fi -_DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_txt_record' + _DBG_VARDUMP 2 'SUCCESSFULLY exiting Plesk _pleskxml_rmv_txt_record' - return 0 + return 0 } @@ -903,16 +901,16 @@ exit # ---------------------- TEST CODE ------------------------------ -# defined by user +# 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~' - + printf '\n\n\n\n======================================================================== START OF RUN\n\n' _info 'Checking debug mode...'