aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChmouel Boudjnah <chmouel@enovance.com>2014-10-03 09:26:36 +0000
committerChmouel Boudjnah <chmouel@enovance.com>2014-10-03 09:59:19 +0000
commitac0b2a797f3a279fb15728def4016f6156ccfe0a (patch)
tree785a4208cd483f8d983719a0f5c454731e210ecd
parenta6310d7692c0fe10e19ca9859b6c4d9754611171 (diff)
downloadkolla-ac0b2a797f3a279fb15728def4016f6156ccfe0a.tar.gz
kolla-ac0b2a797f3a279fb15728def4016f6156ccfe0a.zip
Add validate-json tox target
This is a simple JSON validation script based on demjson python library, we do some shell script trickeries to exit properly if there is a failure for tox (should probably patch demjson to properly exit instead). Change-Id: I930908336deef7daeaab5b55ba2031c64698d880 Implements: blueprint json-validation-gate
-rw-r--r--test-requirements.txt1
-rwxr-xr-xtools/validate-json.sh19
-rw-r--r--tox.ini11
3 files changed, 31 insertions, 0 deletions
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 000000000..df7e22df3
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1 @@
+demjson
diff --git a/tools/validate-json.sh b/tools/validate-json.sh
new file mode 100755
index 000000000..c4d1f3924
--- /dev/null
+++ b/tools/validate-json.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -e
+
+TMPFILE=$(mktemp)
+ret=0
+
+function clean {
+ rm -f ${TMPFILE}
+}
+trap clean EXIT
+
+for f in $(find docker/ -type f -name '*.json');do
+ jsonlint -s ${f} >${TMPFILE}
+ egrep -q 'has errors$' ${TMPFILE} && { cat ${TMPFILE}; ret=1 ;}
+done
+
+cat ${TMPFILE}
+
+exit ${ret}
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 000000000..5a3f84656
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,11 @@
+[tox]
+skipsdist = True
+envlist = validate-json
+minversion = 1.6
+
+[testenv]
+deps = -r{toxinidir}/test-requirements.txt
+
+[testenv:validate-json]
+commands =
+ {toxinidir}/tools/validate-json.sh