diff options
author | agardner <agardner@linuxfoundation.org> | 2017-11-23 15:59:03 -0500 |
---|---|---|
committer | agardner <agardner@linuxfoundation.org> | 2017-11-23 16:16:25 -0500 |
commit | 1c1f9c04db34c86b39ba91d8fb2a6fe58f1185d4 (patch) | |
tree | 079254c882cda9f87124c98c1425a70b19f0077b /config | |
parent | 25ae0806012f9cec6a1c10a4ac888e54c760c9bd (diff) |
Moving check-jinja2 to pharos.
Securedlab will be going away now that we can encrypt strings
(eyaml)
we need to check jinja2 PDF templates that will be moving into pharos
This adds one pod yaml files and fixes paths in check-jinja2.sh
After this is merged I can create a jenkins job for pharos.
Then I can start moving pdf files into the pharos repo
Change-Id: I2f2f2925275de49035d7d0160249d75b25ca0d20
Signed-off-by: agardner <agardner@linuxfoundation.org>
Diffstat (limited to 'config')
-rwxr-xr-x | config/utils/check-jinja2.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/config/utils/check-jinja2.sh b/config/utils/check-jinja2.sh new file mode 100755 index 00000000..075dc9c2 --- /dev/null +++ b/config/utils/check-jinja2.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2016 Linux Foundation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +set +x +set +o errexit + +GEN_CFG='./config/utils/generate_config.py' +INSTALLER_ADAPTERS='./config/installers/*' +TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage +RC=0 + +# Build a table header, using ';' as column sep +SUMMARY='PDF Verify Matrix;YAML Lint;' +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 + valid_yaml='OK' + echo -e "\n\nyamllint -s ${lab_config}" + if ! yamllint -s "${lab_config}"; then valid_yaml='FAIL'; fi + SUMMARY+="\n${lab_config#labs/};${valid_yaml};" + for adapter in ${INSTALLER_ADAPTERS}; do + pdf_inst=0 + pdf_inst_pass=0 + pdf_yaml_pass=0 + while IFS= read -r jinja_template; do + echo -e "\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}" + if "${GEN_CFG}" -y "${lab_config}" \ + -j "${jinja_template}" > "${TMPF}"; then + echo 'Result: PASS' + ((pdf_inst_pass+=1)) + echo -e "\nyamllint -s ${jinja_template%.j2}" + if yamllint -s "${TMPF}"; then ((pdf_yaml_pass+=1)); fi + else + echo 'Result: FAIL' + RC=1 + fi + ((pdf_inst+=1)) + done < <(find "${adapter}" -name '*.j2') + SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};" + done +done < <(find 'config' 'labs' -name 'pod*.yaml') + +rm -f "${TMPF}" +echo -e '\n\nNOTE: tuple fmt: (valid YAML output/sucessful parse/templates).\n' +echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';' + +cat <<EOF + +To troubleshoot PDF parsing against a specific installer adapter, +execute the following commands locally (e.g. for zte-pod2/joid): +$ ./config/utils/generate_config.py \\ + -y labs/zte/pod2.yaml \\ + -j ./pharos/config/installers/joid/pod_config.yaml.j2 + +EOF +exit "${RC}" |