mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
Config continued (#31024)
* included inventory and callback in new config allow inventory to be configurable updated connection options settings also updated winrm to work with new configs removed now obsolete set_host_overrides added notes for future bcoca, current one is just punting, it's future's problem updated docs per feedback added remove group/host methods to inv data moved fact cache from data to constructed cleaner/better options fix when vars are added extended ignore list to config dicts updated paramiko connection docs removed options from base that paramiko already handles left the look option as it is used by other plugin types resolve delegation updated cache doc options fixed test_script better fragment merge for options fixed proxy command restore ini for proxy normalized options moved pipelining to class updates for host_key_checking restructured mixins * fix typo
This commit is contained in:
@@ -47,6 +47,9 @@ def get_plugin_class(obj):
|
||||
|
||||
class AnsiblePlugin(with_metaclass(ABCMeta, object)):
|
||||
|
||||
# allow extra passthrough parameters
|
||||
allow_extras = False
|
||||
|
||||
def __init__(self):
|
||||
self._options = {}
|
||||
|
||||
@@ -59,8 +62,28 @@ class AnsiblePlugin(with_metaclass(ABCMeta, object)):
|
||||
def set_option(self, option, value):
|
||||
self._options[option] = value
|
||||
|
||||
def set_options(self, options):
|
||||
self._options = options
|
||||
def set_options(self, task_keys=None, var_options=None, direct=None):
|
||||
'''
|
||||
Sets the _options attribute with the configuration/keyword information for this plugin
|
||||
|
||||
:arg task_keys: Dict with playbook keywords that affect this option
|
||||
:arg var_options: Dict with either 'conneciton variables'
|
||||
:arg direct: Dict with 'direct assignment'
|
||||
'''
|
||||
|
||||
if not self._options:
|
||||
# load config options if we have not done so already, if vars provided we should be mostly done
|
||||
self._options = C.config.get_plugin_options(get_plugin_class(self), self._load_name, keys=task_keys, variables=var_options)
|
||||
|
||||
# they can be direct options overriding config
|
||||
if direct:
|
||||
for k in self._options:
|
||||
if k in direct:
|
||||
self.set_option(k, direct[k])
|
||||
|
||||
# allow extras/wildcards from vars that are not directly consumed in configuration
|
||||
if self.allow_extras and var_options and '_extras' in var_options:
|
||||
self.set_option('_extras', var_options['_extras'])
|
||||
|
||||
def _check_required(self):
|
||||
# FIXME: standarize required check based on config
|
||||
|
||||
Reference in New Issue
Block a user