pvincent
7 months ago
6 changed files with 123 additions and 12 deletions
-
2.gitignore
-
78lib/registrar/ovh-domain.sh
-
34lib/registrar/ovh-me.sh
-
2scripts/lxc-miaou-create
-
16scripts/miaou
-
3templates/nftables/lxd.table.j2
@ -0,0 +1,2 @@ |
|||||
|
lib/registrar/.ovh-credential.sh |
||||
|
lib/registrar/.ovh-credential |
@ -0,0 +1,78 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
# GET DOMAIN : https://eu.api.ovh.com/createToken/?GET=/domain*&POST=/domain*&PUT=/domain*&DELETE=/domain* |
||||
|
|
||||
|
function set_base { |
||||
|
|
||||
|
BASE_URL="https://eu.api.ovh.com/1.0" |
||||
|
source ./.ovh-credential |
||||
|
} |
||||
|
|
||||
|
function build_url_list_records { |
||||
|
zone="$1" |
||||
|
result="${BASE_URL}/domain/zone/$zone/record" |
||||
|
|
||||
|
fieldType="${2:-}" |
||||
|
subDomain="${3:-}" |
||||
|
any="$fieldType$subDomain" |
||||
|
|
||||
|
[[ -n $any ]] && result+="?" |
||||
|
[[ -n $fieldType ]] && result+="fieldType=$fieldType&" |
||||
|
[[ -n $subDomain ]] && result+="subDomain=$subDomain&" |
||||
|
result=${result::-1} |
||||
|
|
||||
|
echo "$result" |
||||
|
} |
||||
|
|
||||
|
function list_records { |
||||
|
zone="$1" |
||||
|
fieldType="${2:-}" |
||||
|
subDomain="${3:-}" |
||||
|
|
||||
|
query=$(build_url_list_records "$zone" "$fieldType" "$subDomain") |
||||
|
method="GET" |
||||
|
body="" |
||||
|
tstamp=$(date +%s) |
||||
|
sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) |
||||
|
signature="\$1\$$sha" |
||||
|
|
||||
|
curl -s \ |
||||
|
-X $method \ |
||||
|
-H "Content-type: application/json" \ |
||||
|
-H "X-Ovh-Application: $AK" \ |
||||
|
-H "X-Ovh-Consumer: $CK" \ |
||||
|
-H "X-Ovh-Signature: $signature" \ |
||||
|
-H "X-Ovh-Timestamp: $tstamp" \ |
||||
|
"$query" | yq .[] # values of array |
||||
|
} |
||||
|
|
||||
|
function get_record { |
||||
|
zone="$1" |
||||
|
record="$2" |
||||
|
method="GET" |
||||
|
query="${BASE_URL}/domain/zone/$zone/record/$record" |
||||
|
body="" |
||||
|
tstamp=$(date +%s) |
||||
|
sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) |
||||
|
signature="\$1\$$sha" |
||||
|
|
||||
|
curl -s \ |
||||
|
-X $method \ |
||||
|
-H "Content-type: application/json" \ |
||||
|
-H "X-Ovh-Application: $AK" \ |
||||
|
-H "X-Ovh-Consumer: $CK" \ |
||||
|
-H "X-Ovh-Signature: $signature" \ |
||||
|
-H "X-Ovh-Timestamp: $tstamp" \ |
||||
|
"$query" | yq -o=props |
||||
|
} |
||||
|
|
||||
|
##----------- |
||||
|
## -- MAIN -- |
||||
|
##----------- |
||||
|
|
||||
|
. "$MIAOU_BASEDIR/lib/init.sh" |
||||
|
|
||||
|
set_base |
||||
|
for i in $(list_records "$1" CNAME "$2"); do |
||||
|
get_record "$1" "$i" |
||||
|
done |
@ -0,0 +1,34 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
# GET DOMAIN : https://eu.api.ovh.com/createToken/?GET=/me*&POST=/me*&PUT=/me*&DELETE=/me* |
||||
|
|
||||
|
function set_base { |
||||
|
|
||||
|
BASE_URL="https://eu.api.ovh.com/1.0" |
||||
|
source ./.ovh-credential |
||||
|
|
||||
|
} |
||||
|
|
||||
|
function get_me { |
||||
|
local method query body tstamp sha signature |
||||
|
method="GET" |
||||
|
query="${BASE_URL}/me" |
||||
|
body="" |
||||
|
tstamp=$(date +%s) |
||||
|
sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) |
||||
|
signature="\$1\$$sha" |
||||
|
|
||||
|
curl -s \ |
||||
|
-X $method \ |
||||
|
-H "Content-type: application/json" \ |
||||
|
-H "X-Ovh-Application: $AK" \ |
||||
|
-H "X-Ovh-Consumer: $CK" \ |
||||
|
-H "X-Ovh-Signature: $signature" \ |
||||
|
-H "X-Ovh-Timestamp: $tstamp" \ |
||||
|
"$query" | yq -P |
||||
|
} |
||||
|
|
||||
|
. "$MIAOU_BASEDIR/lib/init.sh" |
||||
|
|
||||
|
set_base |
||||
|
get_me |
Write
Preview
Loading…
Cancel
Save
Reference in new issue