Check the version_added value
parent
86c50839bd
commit
e3dbe85f25
|
@ -11,10 +11,14 @@ import argparse
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from fnmatch import fnmatch
|
from fnmatch import fnmatch
|
||||||
|
from distutils.version import StrictVersion
|
||||||
|
|
||||||
from utils import find_globals
|
from utils import find_globals
|
||||||
|
|
||||||
from ansible.executor.module_common import REPLACER_WINDOWS
|
from ansible.executor.module_common import REPLACER_WINDOWS
|
||||||
from ansible.utils.module_docs import get_docstring, BLACKLIST_MODULES
|
from ansible.utils.module_docs import get_docstring, BLACKLIST_MODULES
|
||||||
|
|
||||||
|
from ansible import __version__ as ansible_version
|
||||||
from ansible.module_utils import basic as module_utils_basic
|
from ansible.module_utils import basic as module_utils_basic
|
||||||
|
|
||||||
# We only use StringIO, since we cannot setattr on cStringIO
|
# We only use StringIO, since we cannot setattr on cStringIO
|
||||||
|
@ -295,6 +299,22 @@ class ModuleValidator(Validator):
|
||||||
self.warnings.append('Redeclared basic.py variable or '
|
self.warnings.append('Redeclared basic.py variable or '
|
||||||
'function: %s' % ', '.join(redeclared))
|
'function: %s' % ', '.join(redeclared))
|
||||||
|
|
||||||
|
def _check_version_added(self, doc):
|
||||||
|
try:
|
||||||
|
version_added = StrictVersion(doc.get('version_added', 0))
|
||||||
|
except ValueError:
|
||||||
|
self.errors.append('version_added is not a valid version '
|
||||||
|
'number: %s' % version_added)
|
||||||
|
return
|
||||||
|
|
||||||
|
strict_ansible_version = StrictVersion(ansible_version)
|
||||||
|
should_be = '.'.join(ansible_version.split('.')[:2])
|
||||||
|
|
||||||
|
if (version_added < strict_ansible_version or
|
||||||
|
strict_ansible_version < version_added):
|
||||||
|
self.errors.append('version_added should be %s. Currently %s' %
|
||||||
|
(should_be, version_added))
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(ModuleValidator, self).validate()
|
super(ModuleValidator, self).validate()
|
||||||
|
|
||||||
|
@ -339,6 +359,8 @@ class ModuleValidator(Validator):
|
||||||
self.traces.append(trace)
|
self.traces.append(trace)
|
||||||
if not bool(doc):
|
if not bool(doc):
|
||||||
self.errors.append('Invalid or no DOCUMENTATION provided')
|
self.errors.append('Invalid or no DOCUMENTATION provided')
|
||||||
|
else:
|
||||||
|
self._check_version_added(doc)
|
||||||
if not bool(examples):
|
if not bool(examples):
|
||||||
self.errors.append('No EXAMPLES provided')
|
self.errors.append('No EXAMPLES provided')
|
||||||
if not bool(ret):
|
if not bool(ret):
|
||||||
|
|
Loading…
Reference in New Issue