Skip to content

Commit cc5c722

Browse files
authored
Merge pull request #5072 from aSauerwein/master
feature: add template option for panos deploy hook
2 parents 2d4b900 + 4fcddd1 commit cc5c722

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

deploy/panos.sh

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
# export PANOS_USER="" #User *MUST* have Commit and Import Permissions in XML API for Admin Role
1313
# export PANOS_PASS=""
1414
#
15+
# OPTIONAL
16+
# export PANOS_TEMPLATE="" #Template Name of panorama managed devices
17+
#
1518
# The script will automatically generate a new API key if
1619
# no key is found, or if a saved key has expired or is invalid.
1720

@@ -77,7 +80,10 @@ deployer() {
7780
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"certificate-name\"\r\n\r\n$_cdomain"
7881
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"key\"\r\n\r\n$_panos_key"
7982
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"format\"\r\n\r\npem"
80-
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cfullchain")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_cfullchain")"
83+
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cfullchain")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_cfullchain")"
84+
if [ "$_panos_template" ]; then
85+
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"target-tpl\"\r\n\r\n$_panos_template"
86+
fi
8187
fi
8288
if [ "$type" = 'key' ]; then
8389
panos_url="${panos_url}?type=import"
@@ -87,6 +93,9 @@ deployer() {
8793
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"format\"\r\n\r\npem"
8894
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"passphrase\"\r\n\r\n123456"
8995
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cdomain.key")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_ckey")"
96+
if [ "$_panos_template" ]; then
97+
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"target-tpl\"\r\n\r\n$_panos_template"
98+
fi
9099
fi
91100
#Close multipart
92101
content="$content${nl}--$delim--${nl}${nl}"
@@ -173,10 +182,20 @@ panos_deploy() {
173182
unset _panos_key
174183
fi
175184

185+
# PANOS_TEMPLATE
186+
if [ "$PANOS_TEMPLATE" ]; then
187+
_debug "Detected ENV variable PANOS_TEMPLATE. Saving to file."
188+
_savedeployconf PANOS_TEMPLATE "$PANOS_TEMPLATE" 1
189+
else
190+
_debug "Attempting to load variable PANOS_TEMPLATE from file."
191+
_getdeployconf PANOS_TEMPLATE
192+
fi
193+
176194
#Store variables
177195
_panos_host=$PANOS_HOST
178196
_panos_user=$PANOS_USER
179197
_panos_pass=$PANOS_PASS
198+
_panos_template=$PANOS_TEMPLATE
180199

181200
#Test API Key if found. If the key is invalid, the variable _panos_key will be unset.
182201
if [ "$_panos_host" ] && [ "$_panos_key" ]; then

0 commit comments

Comments
 (0)