From 2d12c22b39d7c963d813bc1646cfffc55cd55ce3 Mon Sep 17 00:00:00 2001 From: davidplunkett Date: Mon, 18 Mar 2019 21:25:15 +0000 Subject: [PATCH] check if variables used by template exist Change-Id: I13625c241d405230b5538ef26b1e2bc6314092e2 Signed-off-by: davidplunkett --- apply_dellxml.sh | 12 +++++++++++- apply_hpejson.sh | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/apply_dellxml.sh b/apply_dellxml.sh index bd4c430..47af171 100755 --- a/apply_dellxml.sh +++ b/apply_dellxml.sh @@ -74,7 +74,7 @@ if [ -n "$RCFILE" ] && [ -f "$RCFILE" ]; then fi # CHECK A FEW REQUIRED VARIABLES - BUT NOT ALL -CHECKLIST="SRV_NAME SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD BUILD_WEBIP BUILD_WEBPORT" +CHECKLIST="SRV_NAME SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD" for VAR in $CHECKLIST; do if [ -z "${!VAR}" ] ; then echo "ERROR: Invalid or missing variable [$VAR] = [${!VAR}] in rcfile [$RCFILE]" @@ -92,6 +92,16 @@ else echo "Using template [$REDFISH_ROOT/$TEMPLATE]" fi +# CHECK VARIABLES USED IN TEMPLATE +CHECKLIST=$(grep -oP '(?<=@@)[^@]+(?=@@)' "$REDFISH_ROOT/$TEMPLATE" | sort | uniq | xargs) +for VAR in $CHECKLIST; do + if [ -z "${!VAR}" ] ; then + echo "ERROR: Invalid or missing variable [$VAR] = [${!VAR}] required by template [$TEMPLATE]" + echo "usage: ./apply_dellxml.sh [--rc settingsfile] --template templatefile [--no-confirm] [--no-apply-hw] [--help]" + exit 1 + fi +done + # SET ADDITIONAL VARIABLES BASED ON RC FILE SRV_IPXE_URL=http://$BUILD_WEBIP:$BUILD_WEBPORT/ipxe-$SRV_IPXE_INF-$SRV_VLAN.efi XMLFILE=$SRV_NAME.${TEMPLATE%\.template} diff --git a/apply_hpejson.sh b/apply_hpejson.sh index da0f4b0..8e401f5 100755 --- a/apply_hpejson.sh +++ b/apply_hpejson.sh @@ -74,7 +74,7 @@ if [ -n "$RCFILE" ] && [ -f "$RCFILE" ]; then fi # CHECK A FEW REQUIRED VARIABLES - BUT NOT ALL -CHECKLIST="SRV_NAME SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD BUILD_WEBIP BUILD_WEBPORT" +CHECKLIST="SRV_NAME SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD" for VAR in $CHECKLIST; do if [ -z "${!VAR}" ] ; then echo "ERROR: Invalid or missing variable [$VAR] = [${!VAR}] in rcfile [$RCFILE]" @@ -92,6 +92,16 @@ else echo "Using template [$REDFISH_ROOT/$TEMPLATE]" fi +# CHECK VARIABLES USED IN TEMPLATE +CHECKLIST=$(grep -oP '(?<=@@)[^@]+(?=@@)' "$REDFISH_ROOT/$TEMPLATE" | sort | uniq | xargs) +for VAR in $CHECKLIST; do + if [ -z "${!VAR}" ] ; then + echo "ERROR: Invalid or missing variable [$VAR] = [${!VAR}] required by template [$TEMPLATE]" + echo "usage: ./apply_dellxml.sh [--rc settingsfile] --template templatefile [--no-confirm] [--no-apply-hw] [--help]" + exit 1 + fi +done + # SET ADDITIONAL VARIABLES BASED ON RC FILE SRV_IPXE_URL=http://$BUILD_WEBIP:$BUILD_WEBPORT/ipxe-$SRV_IPXE_INF-$SRV_VLAN.efi JSONFILE=$SRV_NAME.${TEMPLATE%\.template} -- 2.16.6