Hallo, ich habe schon diverse Themen durchsucht aber leider konnte mir keine Information weiter helfen. Gefunden habe ich zum Beispiel dieses Thema dns-record-update, aber auch das Umschreiben des übergebenen Payload meinerseits führte mich nicht zu einem erfolgreichen Ergebnis. Ich kann den Login, den Logout und auch die Infos zu meiner Zone, Records, etc. auslesen aber ich bekomme es beim besten Willen nicht hin einen Record zu aktualisieren.
Mein Records Array sieht folgendermaßen aus:
{
"dnsrecords": [
{
"id": "8888",
"hostname": "test",
"type": "A",
"priority": "0",
"destination": "8.8.8.8",
"deleterecord": false,
"state": "yes"
}
]
}
Display More
Ich habe auch schon versucht den kompletten Payload der responsedata zurück zu geben aber erhalte immer folgende Fehlermeldung:
{
"serverrequestid": "xxx",
"clientrequestid": "",
"action": "",
"status": "error",
"statuscode": 4013,
"shortmessage": "Validation Error.",
"longmessage": "Api key missing. JSON decode failed while validating request.",
"responsedata": ""
}
Der Login/Logout geht, deshalb gehe ich davon aus, dass das Problem nicht bei dem apikey liegt:
{
"serverrequestid": "xxx",
"clientrequestid": "",
"action": "logout",
"status": "success",
"statuscode": 2000,
"shortmessage": "Logout successful",
"longmessage": "Session has been terminated successful.",
"responsedata": ""
}
Mein Script sieht folgendermaßen aus:
#!/bin/bash
APIKEY="apikey"
APIPW="apipw"
CID="customerID"
DOMAIN="meinedomain.de"
LOGIN=$(curl -X POST https://ccp.netcup.net/run/webservice/servers/endpoint.php?JSON -H 'Content-Type: application/json' -d '{
"action":"login",
"param":{
"apikey":"'"$APIKEY"'",
"apipassword":"'"$APIPW"'",
"customernumber":"'"$CID"'"
}
}')
APISESSIONID=$(echo $LOGIN | jq -r '.responsedata.apisessionid')
RECORDS=$(curl -X POST https://ccp.netcup.net/run/webservice/servers/endpoint.php?JSON -H 'Content-Type: application/json' -d '{
"action":"infoDnsRecords",
"param":{
"apikey":"'"$APIKEY"'",
"apisessionid":"'"$APISESSIONID"'",
"customernumber":"'"$CID"'",
"domainname":"'"$DOMAIN"'"
}
}' | jq '.responsedata.dnsrecords[] | select(.hostname=="test") | {dnsrecords: [.]}')
echo $RECORDS | jq
curl -X POST https://ccp.netcup.net/run/webservice/servers/endpoint.php?JSON -H 'Content-Type: application/json' -d '{
"action":"updateDnsRecords",
"param":{
"domainname":"'"$DOMAIN"'",
"customernumber":"'"$CID"'",
"apikey":"'"$APIKEY"'",
"apisessionid":"'"$APISESSIONID"'",
"dnsrecordset":"'"$RECORDS"'"
}
}' | jq
curl -X POST https://ccp.netcup.net/run/webservice/servers/endpoint.php?JSON -H 'Content-Type: application/json' -d '{
"action":"logout",
"param":{
"apikey":"'"$APIKEY"'",
"apisessionid":"'"$APISESSIONID"'",
"customernumber":"'"$CID"'"
}
}' | jq
Display More
Eventuell hat noch jemand eine Idee.