summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-03-01 16:57:19 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-03-01 16:57:19 +0000
commit5812aed26f2c56f5e1e06260d60618d019248684 (patch)
treead5f5b59e452e96efa63e28ebf89e604141fd7d2
parent77035382d218b650b23dc1f383739c5a939072a9 (diff)
parentcc9278d1d6ee2db051c91ce4653b7727633b1b6c (diff)
Merge "lib.sh: Validate pdf/idf with pharos schema"
-rw-r--r--mcp/scripts/lib.sh16
1 files changed, 15 insertions, 1 deletions
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index eb0ad8866..c9159fff6 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -540,6 +540,9 @@ function do_templates() {
PHAROS_GEN_CFG="./pharos/config/utils/generate_config.py"
PHAROS_INSTALLER_ADAPTER="./pharos/config/installers/fuel/pod_config.yml.j2"
PHAROS_INSTALLER_NETMAP="$(dirname "${PHAROS_INSTALLER_ADAPTER}")/net_map.j2"
+ PHAROS_VALIDATE_SCHEMA_SCRIPT="./pharos/config/utils/validate_schema.py"
+ PHAROS_SCHEMA_PDF="./pharos/config/pdf/pod1.schema.yaml"
+ PHAROS_SCHEMA_IDF="./pharos/config/pdf/idf-pod1.schema.yaml"
BASE_CONFIG_PDF="${lab_config_uri}/labs/${target_lab}/${target_pod}.yaml"
BASE_CONFIG_IDF="${lab_config_uri}/labs/${target_lab}/idf-${target_pod}.yaml"
LOCAL_PDF="${image_dir}/$(basename "${BASE_CONFIG_PDF}")"
@@ -555,7 +558,18 @@ function do_templates() {
notify_e "[ERROR] Could not retrieve PDF (Pod Descriptor File)!"
elif ! curl -o "${LOCAL_IDF}" "${BASE_CONFIG_IDF}"; then
notify_e "[ERROR] Could not retrieve IDF (Installer Descriptor File)!"
- elif ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" \
+ fi
+ # Check first if configuration files are valid
+ if [[ ! "$target_pod" =~ "virtual" ]]; then
+ if ! "${PHAROS_VALIDATE_SCHEMA_SCRIPT}" -y "${LOCAL_PDF}" \
+ -s "${PHAROS_SCHEMA_PDF}"; then
+ notify_e "[ERROR] PDF does not match yaml schema!\n" 1>&2
+ elif ! "${PHAROS_VALIDATE_SCHEMA_SCRIPT}" -y "${LOCAL_IDF}" \
+ -s "${PHAROS_SCHEMA_IDF}"; then
+ notify_e "[ERROR] IDF does not match yaml schema!\n" 1>&2
+ fi
+ fi
+ if ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" \
-j "${PHAROS_INSTALLER_ADAPTER}" > "${image_dir}/pod_config.yml"; then
notify_e "[ERROR] Could not convert PDF+IDF to reclass model input!"
fi