diff options
Diffstat (limited to 'lib/ansible/plugins/__init__.py')
-rw-r--r-- | lib/ansible/plugins/__init__.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/ansible/plugins/__init__.py b/lib/ansible/plugins/__init__.py index 63988e80d3..9260ba0f61 100644 --- a/lib/ansible/plugins/__init__.py +++ b/lib/ansible/plugins/__init__.py @@ -69,12 +69,17 @@ class AnsiblePlugin(ABC): possible_fqcns.add(name) return bool(possible_fqcns.intersection(set(self.ansible_aliases))) + def get_option_and_origin(self, option, hostvars=None): + try: + option_value, origin = C.config.get_config_value_and_origin(option, plugin_type=self.plugin_type, plugin_name=self._load_name, variables=hostvars) + except AnsibleError as e: + raise KeyError(to_native(e)) + return option_value, origin + def get_option(self, option, hostvars=None): + if option not in self._options: - try: - option_value = C.config.get_config_value(option, plugin_type=self.plugin_type, plugin_name=self._load_name, variables=hostvars) - except AnsibleError as e: - raise KeyError(to_native(e)) + option_value, dummy = self.get_option_and_origin(option, hostvars=hostvars) self.set_option(option, option_value) return self._options.get(option) |