Skip to content

Commit 9ccc1ee

Browse files
committed
[cifmw_helpers] Verify if file exists before parsing
Because of how some CI jobs were made, some files might not be available for parse. Add task to ensure that the file exists before parsing, to avoid making condition directly in call playbook multiple times. Signed-off-by: Daniel Pawlik <[email protected]>
1 parent ae5f34c commit 9ccc1ee

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed
Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
---
2-
- name: Read inventory file
3-
ansible.builtin.slurp:
4-
src: "{{ include_inventory_file }}"
5-
register: _inventory_file
2+
- name: Check if inventory file exists
3+
ansible.builtin.stat:
4+
path: "{{ include_inventory_file | trim }}"
5+
register: _include_inventory_file
66

7-
- name: Parse inventory file content
8-
ansible.builtin.set_fact:
9-
inventory_data: "{{ _inventory_file.content | b64decode | from_yaml }}"
7+
- name: Parse inventory file
8+
when: _include_inventory_file.stat.exists
9+
block:
10+
- name: Read inventory file
11+
ansible.builtin.slurp:
12+
src: "{{ include_inventory_file }}"
13+
register: _inventory_file
1014

11-
- name: Process each group with hosts
12-
ansible.builtin.include_tasks:
13-
file: parse_inventory.yml
14-
loop: "{{ inventory_data | dict2items | selectattr('value.hosts', 'defined') | list }}"
15-
loop_control:
16-
loop_var: group_item
15+
- name: Parse inventory file content
16+
ansible.builtin.set_fact:
17+
inventory_data: "{{ _inventory_file.content | b64decode | from_yaml }}"
18+
19+
- name: Process each group with hosts
20+
ansible.builtin.include_tasks:
21+
file: parse_inventory.yml
22+
loop: "{{ inventory_data | dict2items | selectattr('value.hosts', 'defined') | list }}"
23+
loop_control:
24+
loop_var: group_item

roles/cifmw_helpers/tasks/var_file.yml

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@
1010
path: "{{ provided_file | trim }}"
1111
register: _param_file
1212

13-
- name: Read vars
13+
- name: Read vars and set as fact
1414
when: _param_file.stat.exists
15-
ansible.builtin.slurp:
16-
src: "{{ provided_file | trim }}"
17-
register: _parsed_vars
18-
no_log: "{{ cifmw_helpers_no_log }}"
15+
block:
16+
- name: Read the vars
17+
ansible.builtin.slurp:
18+
src: "{{ provided_file | trim }}"
19+
register: _parsed_vars
20+
no_log: "{{ cifmw_helpers_no_log }}"
1921

20-
- name: Set vars as fact
21-
when: "'content' in _parsed_vars"
22-
ansible.builtin.set_fact:
23-
"{{ file_item.key }}": "{{ file_item.value }}"
24-
cacheable: true
25-
loop: "{{ _parsed_vars['content'] | b64decode | from_yaml | dict2items }}"
26-
no_log: "{{ cifmw_helpers_no_log }}"
27-
loop_control:
28-
loop_var: file_item
22+
- name: Set vars as fact
23+
when: "'content' in _parsed_vars"
24+
ansible.builtin.set_fact:
25+
"{{ file_item.key }}": "{{ file_item.value }}"
26+
cacheable: true
27+
loop: "{{ _parsed_vars['content'] | b64decode | from_yaml | dict2items }}"
28+
no_log: "{{ cifmw_helpers_no_log }}"
29+
loop_control:
30+
loop_var: file_item

0 commit comments

Comments
 (0)