PDF: Add result summary to check-jinja2 99/42599/3
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Thu, 21 Sep 2017 00:13:55 +0000 (02:13 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sun, 24 Sep 2017 17:47:35 +0000 (19:47 +0200)
Apart from Pod Descritpro Files for OPNFV PODs, also validate the Pharos
PDF template itself. While at it, fix shellcheck warnings.

Sample output:

| PDF/Installer            | apex  | compass4nfv  | daisy  | joid  |
| pharos/config/pod1.yaml  | 1/1   | 12/12        | 1/1    | 1/1   |
| intel/pod18.yaml         | 1/1   | 12/12        | 1/1    | 1/1   |
| orange/pod1.yaml         | 0/1   | 4/12         | 0/1    | 0/1   |
| arm/pod5.yaml            | 1/1   | 12/12        | 1/1    | 1/1   |
| ericsson/pod1.yaml       | 1/1   | 12/12        | 1/1    | 1/1   |
| ericsson/pod2.yaml       | 1/1   | 12/12        | 1/1    | 1/1   |
| lf/pod4.yaml             | 1/1   | 12/12        | 1/1    | 1/1   |
| zte/pod3.yaml            | 1/1   | 12/12        | 1/1    | 1/1   |
| zte/pod1.yaml            | 1/1   | 12/12        | 1/1    | 1/1   |
| zte/pod2.yaml            | 1/1   | 12/12        | 1/1    | 1/1   |

Change-Id: Iba46a7cc62c80ccb987879ce94ffe5f0bbb23304
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
check-jinja2.sh

index 0a79364..09c5fa0 100755 (executable)
@@ -1,11 +1,37 @@
 #!/bin/bash
 set +x
-set -o errexit
+set +o errexit
+
 git submodule update --init --remote 2>/dev/null
-GEN_CFG="./pharos/config/utils/generate_config.py"
-for lab_configs in $(find labs/ -name 'pod*.yaml'); do
-    while IFS= read -r jinja_templates; do
-        echo "$GEN_CFG -y $lab_configs -j $jinja_templates"
-        $GEN_CFG -y $lab_configs -j $jinja_templates
-    done < <(find pharos/config/installers/ -name '*.j2')
+GEN_CFG='./pharos/config/utils/generate_config.py'
+INSTALLER_ADAPTERS='./pharos/config/installers/*'
+RC=0
+
+# Build a table header, using ';' as column sep
+SUMMARY='PDF/Installer;'
+for adapter in ${INSTALLER_ADAPTERS}; do
+    SUMMARY+="$(basename "${adapter}");"
 done
+
+# Iterate all PDFs, check with each installer adapter, log results
+while IFS= read -r lab_config; do
+    SUMMARY+="\n${lab_config#labs/};"
+    for adapter in ${INSTALLER_ADAPTERS}; do
+        pdf_inst=0
+        pdf_inst_pass=0
+        while IFS= read -r jinja_template; do
+            echo -e "\n\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
+            if "${GEN_CFG}" -y "${lab_config}" -j "${jinja_template}"; then
+                ((pdf_inst_pass+=1))
+            else
+                RC=1
+            fi
+            ((pdf_inst+=1))
+        done < <(find "${adapter}" -name '*.j2')
+        SUMMARY+="${pdf_inst_pass}/${pdf_inst};"
+    done
+done < <(find 'pharos/config' 'labs' -name 'pod*.yaml')
+
+echo -e '\n'
+echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -e -s ';'
+exit "${RC}"