lookup and default value

Hello,

Is there a way to set a default value when using the lookup module for a csv file.

Case 1:

Here is the csv file:

OPENHRPORT;;;;;;

I would like to set the ‘1’ value if the value in the csv file is not specified:

vars:

  • port: “{{ lookup(‘csvfile’, ‘OPENHRPORT file=vars/test.csv delimiter=; col=1’) | default(‘1’) }}”
    tasks:
  • debug: msg=“port openhr {{ port }}”

But it returns the port varibale set to blank or unset, I would like it set to 1

“msg”: "port openhr "

Case 2:
the csv file has only one key set:

OPENHRPORT;;;;;;

And I want to lookup at another key and set a default value if the key is not present in the csv file:

vars:

  • port: “{{ lookup(‘csvfile’, ‘OPDFT file=vars/test.csv delimiter=; col=1’) | default(‘1’) }}”
    tasks:
  • debug: msg=“port openhr {{ port }}”

But it returns in the list bracket , I would expect it set to 1

“msg”: “port openhr

Could you give me any help on this lookup module and default value ?

Regards,

I found out how to bypass the issue for case 1 by using:

  • set_fact: port=‘1’
    when: port is not defined or port ==‘’

But it does not bypass the issue in case 2.
if port is , empty list, what value of port should I test ?

I did find out the way to bypass for the 2 cases:

  • set_fact: port=‘1’
    when: port.0 is not defined or port ==‘’

I cannot proceed that way when using a with_items loop.
I want to read parameters from a .csv file, and if the parameter does not exist , I want to set it to space.
i guess the issue is that instead of comparing the parameter value to an empty list, it does test if the parameter name is empty.
Where am I doing wrong ?

  • set_fact:
    “{{ item.name }}”: “{{ lookup(‘csvfile’, ‘{{ item.csvvar }} file=vars/{{ ansible_user }}.csv delimiter=; col={{ numinst }}’) }}”
    with_items:

  • { name: ‘KARAFHTTPTIMEOUT’, csvvar: ‘KARAFHTTPTIMEOUT’ }

  • { name: ‘dbType’, csvvar: ‘DBTYPE’ }

  • name: if empty set it to space
    set_fact:
    “{{ item }}”: " "
    with_items:

  • KARAFHTTPTIMEOUT

  • dbType

when: item.0 is not defined

Regards