summaryrefslogtreecommitdiffstats
path: root/config/utils
diff options
context:
space:
mode:
Diffstat (limited to 'config/utils')
-rw-r--r--config/utils/README.eyaml.rst2
-rwxr-xr-xconfig/utils/check-jinja2.sh15
-rw-r--r--config/utils/config.example.yaml2
-rwxr-xr-xconfig/utils/generate_config.py12
4 files changed, 25 insertions, 6 deletions
diff --git a/config/utils/README.eyaml.rst b/config/utils/README.eyaml.rst
index 0031d9d8..1f584261 100644
--- a/config/utils/README.eyaml.rst
+++ b/config/utils/README.eyaml.rst
@@ -1,6 +1,6 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
-.. (c) 2017 OPNFV and others.
+.. (c) 2018 OPNFV and others.
Use eyaml to decrypt secret values
==================================
diff --git a/config/utils/check-jinja2.sh b/config/utils/check-jinja2.sh
index 1001b156..59a6506b 100755
--- a/config/utils/check-jinja2.sh
+++ b/config/utils/check-jinja2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# SPDX-license-identifier: Apache-2.0
##############################################################################
-# Copyright (c) 2016 Linux Foundation and others.
+# Copyright (c) 2018 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
@@ -12,8 +12,15 @@ set +x
set +o errexit
export PATH=$PATH:/usr/local/bin/
+# Optional filtering of test matrix: per-lab, per-pod, per-installer
+# e.g. To check zte-pod{2,3} against all installer adapters:
+# ./config/utils/check-jinja2.sh zte 'pod(2|3)'
+FILTER_LAB=${1:-*} # e.g. 'zte' (glob)
+FILTER_POD=${2:-(pod|virtual)[[:digit:]]+} # e.g. 'pod1' (regex)
+FILTER_IA=${3:-*} # e.g. 'fuel' (glob)
+
GEN_CFG='./config/utils/generate_config.py'
-INSTALLER_ADAPTERS='./config/installers/*'
+INSTALLER_ADAPTERS="./config/installers/${FILTER_IA}"
TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage
RC=0
@@ -25,6 +32,7 @@ for adapter in 'PDF Verify Matrix' ${INSTALLER_ADAPTERS}; do
done
# Iterate all PDFs, check with each installer adapter, log results
+# shellcheck disable=SC2086
while IFS= read -r lab_config; do
SUMMARY+="\n${lab_config#labs/};"
lab_nodes=$(grep -ce 'node:' "${lab_config}")
@@ -70,7 +78,8 @@ while IFS= read -r lab_config; do
done < <(find "${adapter}" -name '*.j2')
SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};"
done
-done < <(find 'labs' -name 'pod*.yaml')
+done < <(find labs/${FILTER_LAB} -regextype egrep \
+ -regex "labs/.+/${FILTER_POD}.yaml")
rm -f "${TMPF}"
cat <<EOF
diff --git a/config/utils/config.example.yaml b/config/utils/config.example.yaml
index 084d11d2..3a10a144 100644
--- a/config/utils/config.example.yaml
+++ b/config/utils/config.example.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 OPNFV and others.
+# Copyright (c) 2018 OPNFV and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py
index cf558e28..5dbdb7d1 100755
--- a/config/utils/generate_config.py
+++ b/config/utils/generate_config.py
@@ -1,6 +1,6 @@
#!/usr/bin/python
##############################################################################
-# Copyright (c) 2017 OPNFV and others.
+# Copyright (c) 2018 OPNFV and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
@@ -39,6 +39,15 @@ def ipaddr_index(base_address, index):
base_address_str = str(base_address)
return ipaddress.ip_address(base_address_str) + int(index)
+# Custom filter to transform a prefix netmask to IP address format netmask
+def netmask(prefix):
+ """Get netmask from prefix length integer"""
+ try:
+ prefix_str = unicode(prefix)
+ except NameError as ex:
+ prefix_str = str(prefix)
+ return ipaddress.IPv4Network("1.0.0.0/"+prefix_str).netmask
+
# Custom filter to convert between processor architecture
# (as reported by $(uname -m)) and DPKG-style architecture
def dpkg_arch(arch, to_dpkg=True):
@@ -50,6 +59,7 @@ def dpkg_arch(arch, to_dpkg=True):
ENV = Environment(loader=FileSystemLoader(os.path.dirname(ARGS.jinja2)))
ENV.filters['ipaddr_index'] = ipaddr_index
+ENV.filters['netmask'] = netmask
ENV.filters['dpkg_arch'] = dpkg_arch
# Run `eyaml decrypt` on the whole file, but only if PDF data is encrypted