Skip to content

Commit

Permalink
merge_vars: fix shared-prefix conflicts
Browse files Browse the repository at this point in the history
Example: the suffix "files__to_merge" also matches
"wireless_profiles__to_merge" which caused funny issues.

Let's also match on the leading underscores to prevent that.
  • Loading branch information
pktpls committed Dec 31, 2024
1 parent d4dc12f commit c641d66
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions roles/cfg_openwrt/tasks/merge_vars.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
---
- name: Merge packages variable
merge_vars:
suffix_to_merge: packages__to_merge
suffix_to_merge: __packages__to_merge
merged_var_name: packages
expected_type: list

- name: Merge disabled_services variable
merge_vars:
suffix_to_merge: disabled_services__to_merge
suffix_to_merge: __disabled_services__to_merge
merged_var_name: disabled_services
expected_type: list

- name: Merge wireless_profiles variable
merge_vars:
suffix_to_merge: wireless_profiles__to_merge
suffix_to_merge: __wireless_profiles__to_merge
merged_var_name: wireless_profiles
expected_type: list

- name: Merge ssh_keys variable
merge_vars:
suffix_to_merge: ssh_keys__to_merge
suffix_to_merge: __ssh_keys__to_merge
merged_var_name: ssh_keys
expected_type: list
when: ssh_keys is undefined

- name: Merge sysctl variable
merge_vars:
suffix_to_merge: sysctl__to_merge
suffix_to_merge: __sysctl__to_merge
merged_var_name: sysctl
expected_type: dict

- name: Merge rclocal variable
merge_vars:
suffix_to_merge: rclocal__to_merge
suffix_to_merge: __rclocal__to_merge
merged_var_name: rclocal
expected_type: list

- name: Merge files variable
merge_vars:
suffix_to_merge: _files__to_merge
suffix_to_merge: __files__to_merge
merged_var_name: files
expected_type: list

- name: "Merge channel_assignments variables"
merge_vars:
suffix_to_merge: "{{ item.split('__')[1] + '__to_merge' }}"
suffix_to_merge: "__{{ item.split('__')[1] + '__to_merge' }}"
merged_var_name: "{{ item.split('__')[1] }}"
expected_type: dict
loop: "{{ hostvars[inventory_hostname] | select('match', '.*__channel_assignments_.*') }}"

0 comments on commit c641d66

Please sign in to comment.