|
|
@ -1,7 +1,8 @@
|
|
|
|
#!/usr/bin/env sh
|
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
|
|
|
|
|
|
|
# Gandi LiveDNS v5 API
|
|
|
|
# Gandi LiveDNS v5 API
|
|
|
|
# https://doc.livedns.gandi.net/
|
|
|
|
# https://api.gandi.net/docs/livedns/
|
|
|
|
|
|
|
|
# https://api.gandi.net/docs/authentication/ for token + apikey (deprecated) authentication
|
|
|
|
# currently under beta
|
|
|
|
# currently under beta
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Requires GANDI API KEY set in GANDI_LIVEDNS_KEY set as environment variable
|
|
|
|
# Requires GANDI API KEY set in GANDI_LIVEDNS_KEY set as environment variable
|
|
|
@ -19,13 +20,23 @@ dns_gandi_livedns_add() {
|
|
|
|
fulldomain=$1
|
|
|
|
fulldomain=$1
|
|
|
|
txtvalue=$2
|
|
|
|
txtvalue=$2
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "$GANDI_LIVEDNS_KEY" ]; then
|
|
|
|
if [ -z "$GANDI_LIVEDNS_KEY" -a -z "$GANDI_LIVEDNS_TOKEN" ]; then
|
|
|
|
_err "No API key specified for Gandi LiveDNS."
|
|
|
|
_err "No Token or API key (deprecated) specified for Gandi LiveDNS."
|
|
|
|
_err "Create your key and export it as GANDI_LIVEDNS_KEY"
|
|
|
|
_err "Create your token or key and export it as GANDI_LIVEDNS_KEY or GANDI_LIVEDNS_TOKEN respectively"
|
|
|
|
return 1
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Keep only one secret in configuration
|
|
|
|
|
|
|
|
if [ -n "$GANDI_LIVEDNS_TOKEN" ]; then
|
|
|
|
|
|
|
|
_saveaccountconf GANDI_LIVEDNS_TOKEN "$GANDI_LIVEDNS_TOKEN"
|
|
|
|
|
|
|
|
_clearaccountconf GANDI_LIVEDNS_KEY
|
|
|
|
|
|
|
|
elif [ -n "$GANDI_LIVEDNS_KEY" ]; then
|
|
|
|
_saveaccountconf GANDI_LIVEDNS_KEY "$GANDI_LIVEDNS_KEY"
|
|
|
|
_saveaccountconf GANDI_LIVEDNS_KEY "$GANDI_LIVEDNS_KEY"
|
|
|
|
|
|
|
|
_clearaccountconf GANDI_LIVEDNS_TOKEN
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_debug "First detect the root zone"
|
|
|
|
_debug "First detect the root zone"
|
|
|
|
if ! _get_root "$fulldomain"; then
|
|
|
|
if ! _get_root "$fulldomain"; then
|
|
|
@ -157,7 +168,12 @@ _gandi_livedns_rest() {
|
|
|
|
_debug "$ep"
|
|
|
|
_debug "$ep"
|
|
|
|
|
|
|
|
|
|
|
|
export _H1="Content-Type: application/json"
|
|
|
|
export _H1="Content-Type: application/json"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "$GANDI_LIVEDNS_TOKEN" ]; then
|
|
|
|
|
|
|
|
export _H2="Authorization: Bearer $GANDI_LIVEDNS_TOKEN"
|
|
|
|
|
|
|
|
else
|
|
|
|
export _H2="X-Api-Key: $GANDI_LIVEDNS_KEY"
|
|
|
|
export _H2="X-Api-Key: $GANDI_LIVEDNS_KEY"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$m" = "GET" ]; then
|
|
|
|
if [ "$m" = "GET" ]; then
|
|
|
|
response="$(_get "$GANDI_LIVEDNS_API/$ep")"
|
|
|
|
response="$(_get "$GANDI_LIVEDNS_API/$ep")"
|
|
|
|