diff options
| -rw-r--r-- | setup.py | 44 | ||||
| -rw-r--r-- | tox.ini | 1 | 
2 files changed, 44 insertions, 1 deletions
@@ -6,7 +6,7 @@ from __future__ import print_function  import os  import fnmatch  import re - +import subprocess  import yaml  # Always prefer setuptools over distutils @@ -146,6 +146,47 @@ class OpenShiftAnsiblePylint(PylintCommand):          return func(*func_args, **func_kwargs) +class OpenShiftAnsibleGenerateValidation(Command): +    ''' Command to run generated module validation''' +    description = "Run generated module validation" +    user_options = [] + +    def initialize_options(self): +        ''' initialize_options ''' +        pass + +    def finalize_options(self): +        ''' finalize_options ''' +        pass + +    # self isn't used but I believe is required when it is called. +    # pylint: disable=no-self-use +    def run(self): +        ''' run command ''' +        # find the files that call generate +        generate_files = find_files('roles', +                                    ['inventory', +                                     'test', +                                     'playbooks', +                                     'utils'], +                                    None, +                                    'generate.py') + +        # call them with --verify +        errors = False +        for gen in generate_files: +            print('Checking generated module code: {0}'.format(gen)) +            try: +                subprocess.call([gen, '--verify']) +            except subprocess.CalledProcessError as cpe: +                print(cpe) +                errors = True + +        if errors: +            print('Found errors while generating module code.') +            raise SystemExit(1) + +  class UnsupportedCommand(Command):      ''' Basic Command to override unsupported commands '''      user_options = [] @@ -188,6 +229,7 @@ setup(          'sdist': UnsupportedCommand,          'lint': OpenShiftAnsiblePylint,          'yamllint': OpenShiftAnsibleYamlLint, +        'generate_validation': OpenShiftAnsibleGenerateValidation,      },      packages=[],  ) @@ -16,3 +16,4 @@ commands =      pylint: python setup.py lint      yamllint: python setup.py yamllint      unit: nosetests +    generate_validation: python setup.py generate_validation  | 
