diff options
author | Kenny Woodson <kwoodson@redhat.com> | 2016-01-19 14:30:06 -0500 |
---|---|---|
committer | Kenny Woodson <kwoodson@redhat.com> | 2016-01-19 14:32:31 -0500 |
commit | 01ba7f730b9af8a81f88a5b12fb8a7031e624829 (patch) | |
tree | 3dccf60f1e671f64ee90b9d3c7e2251a139eab14 /git/yaml_validate.py | |
parent | db356978d437ed70f7d4f8023d79c43e70c2e0bf (diff) | |
download | openshift-01ba7f730b9af8a81f88a5b12fb8a7031e624829.tar.gz openshift-01ba7f730b9af8a81f88a5b12fb8a7031e624829.tar.bz2 openshift-01ba7f730b9af8a81f88a5b12fb8a7031e624829.tar.xz openshift-01ba7f730b9af8a81f88a5b12fb8a7031e624829.zip |
Fixing yaml validation in python. Inputs behave differently as does glob
Diffstat (limited to 'git/yaml_validate.py')
-rwxr-xr-x | git/yaml_validate.py | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/git/yaml_validate.py b/git/yaml_validate.py deleted file mode 100755 index 7e0a08a4b..000000000 --- a/git/yaml_validate.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python -# -# python yaml validator for a git commit -# -''' -python yaml validator for a git commit -''' -import shutil -import sys -import os -import glob -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) - proc.wait() - files = proc.stdout.read().strip().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.wait() - - return [fmod for fmod in glob.glob('%s/**/*' % tempdir) if not os.path.isdir(fmod)] - -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 not file_mod.endswith('.yml') or not file_mod.endswith('.yaml'): - continue - - try: - yaml.load(file_mod) - results.append(True) - - except yaml.scanner.ScannerError as yerr: - print yerr.message - results.append(False) - finally: - shutil.rmtree(tmpdir) - - if not all(results): - sys.exit(1) - -if __name__ == "__main__": - main() |