diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-09-17 12:09:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-09-17 12:09:31 +0000 |
commit | 4a12edc59dc3b6b62c825329c60295fa6dd0c3da (patch) | |
tree | 4937ee7eb4b4bde6b9fc39459544e04acb686216 | |
parent | 13d59fd1b62f2a3649e140df22b632e1312a870f (diff) | |
parent | 607804f2420c4e428a4d4c8b058be3761d7a83ee (diff) |
Merge "Add YAML sanity check"
-rwxr-xr-x | tools/yaml-validate.py | 46 | ||||
-rw-r--r-- | tox.ini | 3 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py new file mode 100755 index 00000000..cb5669a7 --- /dev/null +++ b/tools/yaml-validate.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +import sys +import traceback +import yaml + +base_path = sys.argv[1] +exit_val = 0 +failed_files = [] + +def validate(filename): + try: + yaml.load(open(filename).read()) + except Exception: + print(traceback.format_exc()) + return 1 + return 0 + +for subdir, dirs, files in os.walk(base_path): + for f in files: + if f.endswith('.yaml'): + file_path = os.path.join(subdir, f) + failed = validate(file_path) + if failed: + failed_files.append(file_path) + exit_val |= failed + +if failed_files: + print('Validation failed on:') + for f in failed_files: + print(f) +else: + print('Validation successful!') +sys.exit(exit_val) @@ -9,3 +9,6 @@ deps = -r{toxinidir}/requirements.txt [testenv:venv] commands = {posargs} + +[testenv:validate] +commands = python ./tools/yaml-validate.py .
\ No newline at end of file |