Add yamllint for plugin docs and fix issues.

This commit is contained in:
Matt Clay 2018-05-23 05:49:30 -07:00
parent 0b7932db30
commit 15b6837daf
13 changed files with 50 additions and 19 deletions

View file

@ -19,7 +19,7 @@ DOCUMENTATION = '''
- constructed
'''
EXAMPLES = '''
EXAMPLES = r'''
# inventory.config file in YAML format
plugin: constructed
strict: False

View file

@ -28,8 +28,8 @@ DOCUMENTATION = """
"""
EXAMPLES = """
- debug
msg: {{ lookup('chef_databag', 'name=data_bag_name item=data_bag_item') }}
- debug:
msg: "{{ lookup('chef_databag', 'name=data_bag_name item=data_bag_item') }}"
"""
RETURN = """

View file

@ -31,7 +31,8 @@ EXAMPLES = """
debug: msg="{{ lookup('config', 'DEFAULT_BECOME_USER')}}"
- name: print out role paths
debug: msg="These are the configured role paths: {{lookup('config', 'DEFAULT_ROLES_PATH')}}"
debug:
msg: "These are the configured role paths: {{lookup('config', 'DEFAULT_ROLES_PATH')}}"
- name: find retry files, skip if missing that key
find:

View file

@ -43,8 +43,8 @@ DOCUMENTATION = """
"""
EXAMPLES = """
- debug
msg: {{ lookup('conjur_variable', '/path/to/secret') }}
- debug:
msg: "{{ lookup('conjur_variable', '/path/to/secret') }}"
"""
RETURN = """

View file

@ -19,12 +19,6 @@ DOCUMENTATION = """
"""
EXAMPLES = """
tasks:
- name: show dictionary
debug: msg="{{item.key}}: {{item.value}}"
with_dict: {a: 1, b: 2, c: 3}
# with predefined vars
vars:
users:
alice:
@ -34,10 +28,16 @@ vars:
name: Bob Bananarama
telephone: 987-654-3210
tasks:
# with predefined vars
- name: Print phone records
debug:
msg: "User {{ item.key }} is {{ item.value.name }} ({{ item.value.telephone }})"
loop: "{{ lookup('dict', users) }}"
# with inline dictionary
- name: show dictionary
debug:
msg: "{{item.key}}: {{item.value}}"
with_dict: {a: 1, b: 2, c: 3}
"""
RETURN = """

View file

@ -40,7 +40,8 @@ EXAMPLES = """
- testuser2
- name: "loop through list from a variable"
debug: msg="An item: {{item}}"
debug:
msg: "An item: {{item}}"
with_items: "{{ somelist }}"
- name: more complex items to add several users

View file

@ -27,7 +27,7 @@ EXAMPLES = """
with_nested:
- [ 'alice', 'bob' ]
- [ 'clientdb', 'employeedb', 'providerdb' ]
As with the case of 'with_items' above, you can use previously defined variables.:
# As with the case of 'with_items' above, you can use previously defined variables.:
- name: here, 'users' contains the above list of employees
mysql_user:

View file

@ -69,7 +69,7 @@ EXAMPLES = """
- name: get a host record
set_fact:
host: "{{ lookup('nios', 'record:host', filter={'name': 'hostname.ansible.com'}) }}
host: "{{ lookup('nios', 'record:host', filter={'name': 'hostname.ansible.com'}) }}"
- name: get the authoritative zone from a non default dns view
set_fact:

View file

@ -68,7 +68,7 @@ EXAMPLES = """
priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"
- name: create a mysql user with a random password using only ascii letters
mysql_user: name={{ client }} password="{{ lookup('password', '/tmp/passwordfile chars=ascii_letters') }}" priv='{{ client }}_{{ tier }}_{{ role }}.*:ALL'
mysql_user: name={{ client }} password="{{ lookup('password', '/tmp/passwordfile chars=ascii_letters') }}" priv='{{ client }}_{{ tier }}_{{ role }}.*:ALL'
- name: create a mysql user with a random password using only digits
mysql_user:

View file

@ -40,7 +40,7 @@ EXAMPLES = """
variablename: hello
myvar: notename
- name: find several related variables:
- name: find several related variables
debug: msg="{{ lookup('vars', 'ansible_play_hosts', 'ansible_play_batch', 'ansible_play_hosts_all') }}"
- name: alternate way to find some 'prefixed vars' in loop

View file

@ -34,6 +34,10 @@ class YamllintTest(SanitySingleVersion):
paths = [
[i.path for i in targets.include if os.path.splitext(i.path)[1] in ('.yml', '.yaml')],
[i.path for i in targets.include if os.path.splitext(i.path)[1] == '.py' and
os.path.basename(i.path) != '__init__.py' and
i.path.startswith('lib/ansible/plugins/')],
[i.path for i in targets.include if os.path.splitext(i.path)[1] == '.py' and
os.path.basename(i.path) != '__init__.py' and
i.path.startswith('lib/ansible/modules/')],

View file

@ -0,0 +1,19 @@
extends: default
rules:
braces: disable
brackets: disable
colons: disable
commas: disable
comments: disable
comments-indentation: disable
document-start: disable
empty-lines: disable
hyphens: disable
indentation: disable
key-duplicates: disable
line-length: disable
new-line-at-end-of-file: disable
new-lines: {type: unix}
trailing-spaces: disable
truthy: disable

View file

@ -40,6 +40,7 @@ class YamlChecker(object):
"""
yaml_conf = YamlLintConfig(file='test/sanity/yamllint/config/default.yml')
module_conf = YamlLintConfig(file='test/sanity/yamllint/config/modules.yml')
plugin_conf = YamlLintConfig(file='test/sanity/yamllint/config/plugins.yml')
for path in paths:
extension = os.path.splitext(path)[1]
@ -50,7 +51,12 @@ class YamlChecker(object):
if extension in ('.yml', '.yaml'):
self.check_yaml(yaml_conf, path, contents)
elif extension == '.py':
self.check_module(module_conf, path, contents)
if path.startswith('lib/ansible/plugins/'):
conf = plugin_conf
else:
conf = module_conf
self.check_module(conf, path, contents)
else:
raise Exception('unsupported extension: %s' % extension)
@ -137,7 +143,7 @@ class YamlChecker(object):
if not module_ast:
return {}
if path.startswith('lib/ansible/modules/'):
if path.startswith('lib/ansible/modules/') or path.startswith('lib/ansible/plugins/'):
for body_statement in module_ast.body:
if isinstance(body_statement, ast.Assign):
check_assignment(body_statement, module_doc_types)