summaryrefslogtreecommitdiffstats
path: root/git/yaml_validation.py
diff options
context:
space:
mode:
authorJason DeTiberus <jdetiber@redhat.com>2016-12-21 17:15:42 -0500
committerJason DeTiberus <jdetiber@redhat.com>2017-01-10 11:45:30 -0500
commitbe949e0a0a2420205aaf80de514432a76596a854 (patch)
treebe5edc6198f976215c1521a490d788f46b29e227 /git/yaml_validation.py
parent9d316d3091b28820e3840c535fc9bc4b6603ed72 (diff)
downloadopenshift-be949e0a0a2420205aaf80de514432a76596a854.tar.gz
openshift-be949e0a0a2420205aaf80de514432a76596a854.tar.bz2
openshift-be949e0a0a2420205aaf80de514432a76596a854.tar.xz
openshift-be949e0a0a2420205aaf80de514432a76596a854.zip
More toxification
- Move pylint tests to tox - Move yamllint tests to tox - Create separate tox config (and setup.py) for root - bump ansible requirement - unify pylint config - add docs - remove git directory containing old testing tools - install python-six if not present for openshift-facts - add python-six as a dependency for openshift-ansible-utils
Diffstat (limited to 'git/yaml_validation.py')
-rwxr-xr-xgit/yaml_validation.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/git/yaml_validation.py b/git/yaml_validation.py
deleted file mode 100755
index 6672876bb..000000000
--- a/git/yaml_validation.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python
-# flake8: noqa
-#
-# python yaml validator for a git commit
-#
-'''
-python yaml validator for a git commit
-'''
-import shutil
-import sys
-import os
-import tempfile
-import subprocess
-import yaml
-
-def get_changes(oldrev, newrev, tempdir):
- '''Get a list of git changes from oldrev to newrev'''
- proc = subprocess.Popen(['/usr/bin/git', 'diff', '--name-only', oldrev,
- newrev, '--diff-filter=ACM'], stdout=subprocess.PIPE)
- stdout, _ = proc.communicate()
- files = stdout.split('\n')
-
- # No file changes
- if not files:
- return []
-
- cmd = '/usr/bin/git archive %s %s | /bin/tar x -C %s' % (newrev, " ".join(files), tempdir)
- proc = subprocess.Popen(cmd, shell=True)
- _, _ = proc.communicate()
-
- rfiles = []
- for dirpath, _, fnames in os.walk(tempdir):
- for fname in fnames:
- rfiles.append(os.path.join(dirpath, fname))
-
- return rfiles
-
-def main():
- '''
- Perform yaml validation
- '''
- results = []
- try:
- tmpdir = tempfile.mkdtemp(prefix='jenkins-git-')
- old, new, _ = sys.argv[1:]
-
- for file_mod in get_changes(old, new, tmpdir):
-
- print "+++++++ Received: %s" % file_mod
-
- # if the file extensions is not yml or yaml, move along.
- if not file_mod.endswith('.yml') and not file_mod.endswith('.yaml'):
- continue
-
- # We use symlinks in our repositories, ignore them.
- if os.path.islink(file_mod):
- continue
-
- try:
- yaml.load(open(file_mod))
- results.append(True)
-
- except yaml.scanner.ScannerError as yerr:
- print yerr
- results.append(False)
- finally:
- shutil.rmtree(tmpdir)
-
- if not all(results):
- sys.exit(1)
-
-if __name__ == "__main__":
- main()