|
|
@ -0,0 +1,78 @@ |
|
|
|
|
|
|
|
|
|
|
|
#!/usr/bin/env sh |
|
|
|
|
|
|
|
|
|
|
|
dns_infoblox_add() { |
|
|
|
|
|
|
|
|
|
|
|
fulldomain=$1 |
|
|
|
|
|
txtvalue=$2 |
|
|
|
|
|
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue" |
|
|
|
|
|
_info "Using Infoblox API" |
|
|
|
|
|
_debug fulldomain "$fulldomain" |
|
|
|
|
|
_debug txtvalue "$txtvalue" |
|
|
|
|
|
#_err "Not implemented!" |
|
|
|
|
|
|
|
|
|
|
|
if [ -z "$Infoblox_Creds" ] || [ -z "$Infoblox_Server" ]; then |
|
|
|
|
|
Infoblox_Creds="" |
|
|
|
|
|
Infoblox_Server="" |
|
|
|
|
|
_err "You didn't specify the credentials or server yet (Infoblox_Creds and Infoblox_Server)." |
|
|
|
|
|
_err "Please set them via EXPORT ([username:password] and [ip or hostname]) and try again." |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
#save the login info to the account conf file. |
|
|
|
|
|
_saveaccountconf Infoblox_Creds "$Infoblox_Creds" |
|
|
|
|
|
_saveaccountconf Infoblox_Server "$Infoblox_Server" |
|
|
|
|
|
|
|
|
|
|
|
result=`curl -k -u $Infoblox_Creds -X POST $baseurlnObject` |
|
|
|
|
|
|
|
|
|
|
|
if [[ $result =~ record:txt/.*:.*/default ]]; then |
|
|
|
|
|
echo "Successfully created the txt record" |
|
|
|
|
|
return 0 |
|
|
|
|
|
else |
|
|
|
|
|
echo "Error encountered during record addition" |
|
|
|
|
|
echo $result |
|
|
|
|
|
_err $result |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
dns_infoblox_rm() { |
|
|
|
|
|
|
|
|
|
|
|
fulldomain=$1 |
|
|
|
|
|
txtvalue=$2 |
|
|
|
|
|
_info "Using Infoblox API" |
|
|
|
|
|
_debug fulldomain "$fulldomain" |
|
|
|
|
|
_debug txtvalue "$txtvalue" |
|
|
|
|
|
|
|
|
|
|
|
# Does the record exist? |
|
|
|
|
|
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue&_return_type=xml-pretty" |
|
|
|
|
|
echo $baseurlnObject |
|
|
|
|
|
|
|
|
|
|
|
result=`curl -k -u $Infoblox_Creds -X GET $baseurlnObject` |
|
|
|
|
|
|
|
|
|
|
|
if [[ $result =~ record:txt/.*:.*/default ]]; then |
|
|
|
|
|
# Extract object ref |
|
|
|
|
|
objRef=`grep -Po 'record:txt/.*:.*/default' <<< $result` |
|
|
|
|
|
objRmUrl="https://$Infoblox_Server/wapi/v2.2.2/$objRef" |
|
|
|
|
|
rmResult=`curl -k -u $Infoblox_Creds -X DELETE $objRmUrl` |
|
|
|
|
|
# Check if rm succeeded |
|
|
|
|
|
if [[ $rmResult =~ record:txt/.*:.*/default ]]; then |
|
|
|
|
|
echo "Successfully deleted $objRef" |
|
|
|
|
|
return 0 |
|
|
|
|
|
else |
|
|
|
|
|
echo "Error occurred during txt record delete" |
|
|
|
|
|
echo $rmResult |
|
|
|
|
|
_err $rmResult |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
else |
|
|
|
|
|
echo "Record to delete didn't match an existing record" |
|
|
|
|
|
echo $result |
|
|
|
|
|
_err $result |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#################### Private functions below ################################## |