ini lookup: add new interpolation option (#83773)

Fixes #83755
pull/72553/merge
Martin Krizek 1 year ago committed by GitHub
parent b25afbb4e9
commit a0f9bbf3f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,2 @@
minor_changes:
- ini lookup - add new ``interpolation`` option (https://github.com/ansible/ansible/issues/83755)

@ -49,6 +49,12 @@ DOCUMENTATION = """
default: False
aliases: ['allow_none']
version_added: '2.12'
interpolation:
description:
Allows for interpolation of values, see https://docs.python.org/3/library/configparser.html#configparser.BasicInterpolation
type: bool
default: True
version_added: '2.18'
seealso:
- ref: playbook_task_paths
description: Search paths used for relative files.
@ -140,7 +146,10 @@ class LookupModule(LookupBase):
self.set_options(var_options=variables, direct=kwargs)
paramvals = self.get_options()
self.cp = configparser.ConfigParser(allow_no_value=paramvals.get('allow_no_value', paramvals.get('allow_none')))
self.cp = configparser.ConfigParser(
allow_no_value=paramvals.get('allow_no_value', paramvals.get('allow_none')),
interpolation=configparser.BasicInterpolation() if paramvals.get('interpolation') else None,
)
if paramvals['case_sensitive']:
self.cp.optionxform = to_native

@ -0,0 +1,3 @@
[global]
home_dir: /Users
my_dir: %(home_dir)s/lumberjack

@ -0,0 +1,2 @@
[global]
Exec=/bin/program run %u

@ -2,3 +2,4 @@
- import_playbook: test_errors.yml
- import_playbook: test_case_sensitive.yml
- import_playbook: test_allow_no_value.yml
- import_playbook: test_interpolation.yml

@ -0,0 +1,8 @@
- hosts: testhost
gather_facts: false
tasks:
- name: Test interpolation
assert:
that:
- lookup('ini', 'my_dir', file='interpolation.ini') == '/Users/lumberjack'
- lookup('ini', 'Exec', file='nointerpolation.ini', interpolation=false) == '/bin/program run %u'
Loading…
Cancel
Save