|
@ -31,7 +31,7 @@ dns_ionos_add() { |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if [ "$_context" = "core" ];then |
|
|
|
|
|
|
|
|
if [ "$_context" = "core" ]; then |
|
|
_body="[{\"name\":\"$_sub_domain.$_domain\",\"type\":\"TXT\",\"content\":\"$txtvalue\",\"ttl\":$IONOS_TXT_TTL,\"prio\":$IONOS_TXT_PRIO,\"disabled\":false}]" |
|
|
_body="[{\"name\":\"$_sub_domain.$_domain\",\"type\":\"TXT\",\"content\":\"$txtvalue\",\"ttl\":$IONOS_TXT_TTL,\"prio\":$IONOS_TXT_PRIO,\"disabled\":false}]" |
|
|
|
|
|
|
|
|
if _ionos_rest POST "$IONOS_ROUTE_ZONES/$_zone_id/records" "$_body" && [ "$_code" = "201" ]; then |
|
|
if _ionos_rest POST "$IONOS_ROUTE_ZONES/$_zone_id/records" "$_body" && [ "$_code" = "201" ]; then |
|
@ -59,7 +59,7 @@ dns_ionos_rm() { |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if [ "$_context" = "core" ];then |
|
|
|
|
|
|
|
|
if [ "$_context" = "core" ]; then |
|
|
if ! _ionos_get_record "$fulldomain" "$_zone_id" "$txtvalue"; then |
|
|
if ! _ionos_get_record "$fulldomain" "$_zone_id" "$txtvalue"; then |
|
|
_err "Could not find _acme-challenge TXT record." |
|
|
_err "Could not find _acme-challenge TXT record." |
|
|
return 1 |
|
|
return 1 |
|
@ -205,21 +205,21 @@ _ionos_get_record() { |
|
|
_ionos_cloud_get_record() { |
|
|
_ionos_cloud_get_record() { |
|
|
zone_id=$1 |
|
|
zone_id=$1 |
|
|
txtrecord=$2 |
|
|
txtrecord=$2 |
|
|
# this is to transform the domain to lower case |
|
|
|
|
|
fulldomain=$(printf "%s" "$3" | tr "[:upper:]" "[:lower:]") |
|
|
|
|
|
# this is to transform record name to lower case |
|
|
|
|
|
|
|
|
# this is to transform the domain to lower case |
|
|
|
|
|
fulldomain=$(printf "%s" "$3" | tr "[:upper:]" "[:lower:]") |
|
|
|
|
|
# this is to transform record name to lower case |
|
|
# IONOS Cloud API transforms all record names to lower case |
|
|
# IONOS Cloud API transforms all record names to lower case |
|
|
_record_name=$(printf "%s" "$fulldomain" | cut -d . -f 1 | tr "[:upper:]" "[:lower:]") |
|
|
_record_name=$(printf "%s" "$fulldomain" | cut -d . -f 1 | tr "[:upper:]" "[:lower:]") |
|
|
|
|
|
|
|
|
_info "grepping with the following args: zone_id=$zone_id txtrecord=$txtrecord fulldomain=$fulldomain _record_name=$_record_name" |
|
|
|
|
|
|
|
|
_info "grepping with the following args: zone_id=$zone_id txtrecord=$txtrecord fulldomain=$fulldomain _record_name=$_record_name" |
|
|
|
|
|
|
|
|
if _ionos_cloud_rest GET "$IONOS_CLOUD_ROUTE_ZONES/$zone_id/records"; then |
|
|
if _ionos_cloud_rest GET "$IONOS_CLOUD_ROUTE_ZONES/$zone_id/records"; then |
|
|
_response="$(echo "$_response" | tr -d "\n")" |
|
|
_response="$(echo "$_response" | tr -d "\n")" |
|
|
|
|
|
|
|
|
pattern="{\"id\":\"[a-fA-F0-9\-]*\",\"type\":\"record\",\"href\":\"/zones/$zone_id/records/[a-fA-F0-9\-]*\",\"metadata\":{\"createdDate\":\"[A-Z0-9\:\.\-]*\",\"lastModifiedDate\":\"[A-Z0-9\:\.\-]*\",\"fqdn\":\"$fulldomain\",\"state\":\"AVAILABLE\",\"zoneId\":\"$zone_id\"},\"properties\":{\"content\":\"$txtrecord\",\"enabled\":true,\"name\":\"$_record_name\",\"priority\":[0-9]*,\"ttl\":[0-9]*,\"type\":\"TXT\"}}" |
|
|
|
|
|
|
|
|
pattern="\{\"id\":\"[a-fA-F0-9\-]*\",\"type\":\"record\",\"href\":\"/zones/$zone_id/records/[a-fA-F0-9\-]*\",\"metadata\":\{\"createdDate\":\"[A-Z0-9\:\.\-]*\",\"lastModifiedDate\":\"[A-Z0-9\:\.\-]*\",\"fqdn\":\"$fulldomain\",\"state\":\"AVAILABLE\",\"zoneId\":\"$zone_id\"\},\"properties\":\{\"content\":\"$txtrecord\",\"enabled\":true,\"name\":\"$_record_name\",\"priority\":[0-9]*,\"ttl\":[0-9]*,\"type\":\"TXT\"\}\}" |
|
|
|
|
|
|
|
|
_record="$(echo "$_response" | _egrep_o "$pattern")" |
|
|
_record="$(echo "$_response" | _egrep_o "$pattern")" |
|
|
_info "the found record after grep: $_record" |
|
|
|
|
|
|
|
|
_info "the found record after grep: $_record" |
|
|
if [ "$_record" ]; then |
|
|
if [ "$_record" ]; then |
|
|
_record_id=$(printf "%s\n" "$_record" | _egrep_o "\"id\":\"[a-fA-F0-9\-]*\"" | _head_n 1 | cut -d : -f 2 | tr -d '\"') |
|
|
_record_id=$(printf "%s\n" "$_record" | _egrep_o "\"id\":\"[a-fA-F0-9\-]*\"" | _head_n 1 | cut -d : -f 2 | tr -d '\"') |
|
|
_info "the record id after the search is: $_record_id" |
|
|
_info "the record id after the search is: $_record_id" |
|
|