better information for user from inventory plugins (#46766)

* better information for user from inventory plugins

 - use foreman as example
This commit is contained in:
Brian Coca 2018-10-12 11:27:29 -04:00 committed by GitHub
commit 9e0c2a658f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 4 deletions

View file

@ -170,8 +170,13 @@ class BaseInventoryPlugin(AnsiblePlugin):
So only call this base class if you expect it to be a file.
'''
valid = False
b_path = to_bytes(path, errors='surrogate_or_strict')
return (os.path.exists(b_path) and os.access(b_path, os.R_OK))
if (os.path.exists(b_path) and os.access(b_path, os.R_OK)):
valid = True
else:
self.display.vvv('Skipping due to inventory source not existing or not being readable by the current user')
return valid
def _populate_host_vars(self, hosts, variables, group=None, port=None):
if not isinstance(variables, Mapping):

View file

@ -14,7 +14,7 @@ DOCUMENTATION = '''
- requests >= 1.1
description:
- Get inventory hosts from the foreman service.
- "Uses a configuration file as an inventory source, it must end in foreman.yml or foreman.yaml and has a ``plugin: foreman`` entry."
- "Uses a configuration file as an inventory source, it must end in ``.foreman.yml`` or ``.foreman.yaml`` and has a ``plugin: foreman`` entry."
extends_documentation_fragment:
- inventory_cache
options:
@ -29,7 +29,7 @@ DOCUMENTATION = '''
description: foreman authentication user
required: True
password:
description: forman authentication password
description: foreman authentication password
required: True
validate_certs:
description: verify SSL certificate if using https
@ -102,6 +102,8 @@ class InventoryModule(BaseInventoryPlugin, Cacheable):
if super(InventoryModule, self).verify_file(path):
if path.endswith(('foreman.yaml', 'foreman.yml')):
valid = True
else:
self.display.vvv('Skipping due to inventory source not ending in "foreman.yaml" nor "foreman.yml"')
return valid
def _get_session(self):