소스 검색

better error handling

Hobby-Student 3 년 전
부모
커밋
2304f005e3
1개의 변경된 파일20개의 추가작업 그리고 11개의 파일을 삭제
  1. 20 11
      dnsapi/dns_kas.sh

+ 20 - 11
dnsapi/dns_kas.sh

@@ -8,12 +8,12 @@
 #  - $KAS_Authtype (Kasserver API auth type. Default: plain)
 #  - $KAS_Authdata (Kasserver API auth data.)
 #
-# Author: squared GmbH <[email protected]>
+# Last update: squared GmbH <[email protected]>
 # Credits:
-# Inspired by dns_he.sh. Thanks a lot man!
-# Previous version by Martin Kammerlander, Phlegx Systems OG <[email protected]>
-# Previous update by Marc-Oliver Lange <[email protected]>
-# KASAPI SOAP guideline by https://github.com/o1oo11oo/kasapi.sh
+# - dns_he.sh. Thanks a lot man!
+# - Martin Kammerlander, Phlegx Systems OG <[email protected]>
+# - Marc-Oliver Lange <[email protected]>
+# - https://github.com/o1oo11oo/kasapi.sh
 ########################################################################
 KAS_Api_GET="$(_get "https://kasapi.kasserver.com/soap/wsdl/KasApi.wsdl")"
 KAS_Api="$(echo "$KAS_Api_GET" | tr -d ' ' | grep -i "<soap:addresslocation=" | sed "s/='/\n/g" | grep -i "http" | sed "s/'\/>//g")"
@@ -31,13 +31,13 @@ dns_kas_add() {
   _txtvalue=$2
 
   _info "[KAS] -> Using DNS-01 All-inkl/Kasserver hook"
+  _info "[KAS] -> Check and Save Props"
+  _check_and_save
+  
   _info "[KAS] -> Adding $_fulldomain DNS TXT entry on all-inkl.com/Kasserver"
   _info "[KAS] -> Retriving Credential Token"
   _get_credential_token
 
-  _info "[KAS] -> Check and Save Props"
-  _check_and_save
-
   _info "[KAS] -> Checking Zone and Record_Name"
   _get_zone_and_record_name "$_fulldomain"
 
@@ -90,14 +90,14 @@ dns_kas_rm() {
   _txtvalue=$2
 
   _info "[KAS] -> Using DNS-01 All-inkl/Kasserver hook"
+  _info "[KAS] -> Check and Save Props"
+  _check_and_save
+
   _info "[KAS] -> Cleaning up after All-inkl/Kasserver hook"
   _info "[KAS] -> Removing $_fulldomain DNS TXT entry on All-inkl/Kasserver"
   _info "[KAS] -> Retriving Credential Token"
   _get_credential_token
 
-  _info "[KAS] -> Check and Save Props"
-  _check_and_save
-
   _info "[KAS] -> Checking Zone and Record_Name"
   _get_zone_and_record_name "$_fulldomain"
 
@@ -239,6 +239,15 @@ _get_credential_token() {
   response="$(_post "$data" "$KAS_Auth" "" "POST" "$contentType")"
   _debug2 "[KAS] -> Response" "$response"
 
+  if [ -z "$response" ]; then
+    _info "[KAS] -> Response was empty, please check manually."
+    return 1
+  elif _contains "$response" "<SOAP-ENV:Fault>"; then
+    faultstring="$(echo "$response" | tr -d '\n\r' | sed "s/<faultstring>/\n=> /g" | sed "s/<\/faultstring>/\n/g" | grep "=>" | sed "s/=> //g")"
+    _err "[KAS] -> Could not retrieve login token or antoher error =>$faultstring<= occurred, please check manually."
+    return 1
+  fi
+
   _credential_token="$(echo "$response" | tr '\n' ' ' | sed 's/.*return xsi:type="xsd:string">\(.*\)<\/return>/\1/' | sed 's/<\/ns1:KasAuthResponse\(.*\)Envelope>.*//')"
   _debug "[KAS] -> Credential Token: " "$_credential_token"
   return 0