check if variables used by template exist 88/488/1
authordavidplunkett <dp7642@att.com>
Mon, 18 Mar 2019 21:25:15 +0000 (21:25 +0000)
committerdavidplunkett <dp7642@att.com>
Mon, 18 Mar 2019 21:25:15 +0000 (21:25 +0000)
Change-Id: I13625c241d405230b5538ef26b1e2bc6314092e2
Signed-off-by: davidplunkett <dp7642@att.com>
apply_dellxml.sh
apply_hpejson.sh

index bd4c430..47af171 100755 (executable)
@@ -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}
index da0f4b0..8e401f5 100755 (executable)
@@ -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}