diff options
author | Sloane Hertel <19572925+s-hertel@users.noreply.github.com> | 2024-08-06 23:50:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-06 23:50:51 +0200 |
commit | 26c8a28d050422553df229743ffc86380dc50b81 (patch) | |
tree | 738e4618f920237b02c591cb5387dd171e06bd54 /lib | |
parent | core: raw params better error msg (#83726) (diff) | |
download | ansible-26c8a28d050422553df229743ffc86380dc50b81.tar.xz ansible-26c8a28d050422553df229743ffc86380dc50b81.zip |
csvfile lookup - fix giving an error when no search term is provided (#83710)
Fixes #83689
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ansible/plugins/lookup/csvfile.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/ansible/plugins/lookup/csvfile.py b/lib/ansible/plugins/lookup/csvfile.py index 1304eaac6c..9dd98938ef 100644 --- a/lib/ansible/plugins/lookup/csvfile.py +++ b/lib/ansible/plugins/lookup/csvfile.py @@ -12,6 +12,7 @@ DOCUMENTATION = r""" - The csvfile lookup reads the contents of a file in CSV (comma-separated value) format. The lookup looks for the row where the first column matches keyname (which can be multiple words) and returns the value in the O(col) column (default 1, which indexed from 0 means the second column in the file). + - At least one keyname is required, provided as a positional argument(s) to the lookup. options: col: description: column to return (0 indexed). @@ -75,6 +76,22 @@ EXAMPLES = """ assert: that: - lookup('ansible.builtin.csvfile', 'Jane', file='people.csv', delimiter=',', col=0, keycol=1) == "Smith" + +# Contents of debug.csv +# test1 ret1.1 ret2.1 +# test2 ret1.2 ret2.2 +# test3 ret1.3 ret2.3 + +- name: "Lookup multiple keynames in the first column (index 0), returning the values from the second column (index 1)" + debug: + msg: "{{ lookup('csvfile', 'test1', 'test2', file='debug.csv', delimiter=' ') }}" + +- name: Lookup multiple keynames using old style syntax + debug: + msg: "{{ lookup('csvfile', term1, term2) }}" + vars: + term1: "test1 file=debug.csv delimiter=' '" + term2: "test2 file=debug.csv delimiter=' '" """ RETURN = """ @@ -162,6 +179,9 @@ class LookupModule(LookupBase): # populate options paramvals = self.get_options() + if not terms: + raise AnsibleError('Search key is required but was not found') + for term in terms: kv = parse_kv(term) |