added view variable to infoblox integration script

This commit is contained in:
Rikard Gynnerstedt 2017-06-08 13:32:05 +02:00
parent 8e845d9f21
commit 0b52645bb6

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh #!/bin/bash
## Infoblox API integration by Jason Keller and Elijah Tenai ## Infoblox API integration by Jason Keller and Elijah Tenai
## ##
@ -9,7 +9,7 @@ dns_infoblox_add() {
## Nothing to see here, just some housekeeping ## Nothing to see here, just some housekeeping
fulldomain=$1 fulldomain=$1
txtvalue=$2 txtvalue=$2
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue" baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue&view=$Infoblox_View"
_info "Using Infoblox API" _info "Using Infoblox API"
_debug fulldomain "$fulldomain" _debug fulldomain "$fulldomain"
@ -19,11 +19,15 @@ dns_infoblox_add() {
if [ -z "$Infoblox_Creds" ] || [ -z "$Infoblox_Server" ]; then if [ -z "$Infoblox_Creds" ] || [ -z "$Infoblox_Server" ]; then
Infoblox_Creds="" Infoblox_Creds=""
Infoblox_Server="" Infoblox_Server=""
_err "You didn't specify the credentials or server yet (Infoblox_Creds and Infoblox_Server)." _err "You didn't specify the credentials, server or infoblox view yet (Infoblox_Creds, Infoblox_Server and Infoblox_View)."
_err "Please set them via EXPORT ([username:password] and [ip or hostname]) and try again." _err "Please set them via EXPORT ([username:password], [ip or hostname]) and try again."
return 1 return 1
fi fi
if [ -z "$Infoblox_View" ]; then
Infoblox_View="default"
fi
## Save the credentials to the account file ## Save the credentials to the account file
_saveaccountconf Infoblox_Creds "$Infoblox_Creds" _saveaccountconf Infoblox_Creds "$Infoblox_Creds"
_saveaccountconf Infoblox_Server "$Infoblox_Server" _saveaccountconf Infoblox_Server "$Infoblox_Server"
@ -39,7 +43,7 @@ dns_infoblox_add() {
result=$(_post "" "$baseurlnObject" "" "POST") result=$(_post "" "$baseurlnObject" "" "POST")
## Let's see if we get something intelligible back from the unit ## Let's see if we get something intelligible back from the unit
if echo "$result" | egrep 'record:txt/.*:.*/default'; then if echo "$result" | egrep "record:txt/.*:.*/${Infoblox_View}"; then
_info "Successfully created the txt record" _info "Successfully created the txt record"
return 0 return 0
else else
@ -68,18 +72,18 @@ dns_infoblox_rm() {
export _H2="Authorization: Basic $Infoblox_CredsEncoded" export _H2="Authorization: Basic $Infoblox_CredsEncoded"
## Does the record exist? Let's check. ## Does the record exist? Let's check.
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue&_return_type=xml-pretty" baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue&view=$Infoblox_View&_return_type=xml-pretty"
result=$(_get "$baseurlnObject") result=$(_get "$baseurlnObject")
## Let's see if we get something intelligible back from the grid ## Let's see if we get something intelligible back from the grid
if echo "$result" | egrep 'record:txt/.*:.*/default'; then if echo "$result" | egrep 'record:txt/.*:.*/default'; then
## Extract the object reference ## Extract the object reference
objRef=$(printf "%b" "$result" | _egrep_o 'record:txt/.*:.*/default') objRef=$(printf "%b" "$result" | _egrep_o "record:txt/.*:.*/${Infoblox_View}")
objRmUrl="https://$Infoblox_Server/wapi/v2.2.2/$objRef" objRmUrl="https://$Infoblox_Server/wapi/v2.2.2/$objRef"
## Delete them! All the stale records! ## Delete them! All the stale records!
rmResult=$(_post "" "$objRmUrl" "" "DELETE") rmResult=$(_post "" "$objRmUrl" "" "DELETE")
## Let's see if that worked ## Let's see if that worked
if echo "$rmResult" | egrep 'record:txt/.*:.*/default'; then if echo "$rmResult" | egrep "record:txt/.*:.*/${Infoblox_View}"; then
_info "Successfully deleted $objRef" _info "Successfully deleted $objRef"
return 0 return 0
else else