Skip to content

Commit 1fc4ed7

Browse files
committed
refactor: handle INJECT_FACTS_AS_VARS=false by using ansible_facts instead
Ansible 2.20 has deprecated the use of Ansible facts as variables. For example, `ansible_distribution` is now deprecated in favor of `ansible_facts["distribution"]`. This is due to making the default setting `INJECT_FACTS_AS_VARS=false`. For now, this will create WARNING messages, but in Ansible 2.24 it will be an error. Add the role facts to __firewall_required_facts and __firewall_no_subsets_facts as needed. See https://docs.ansible.com/projects/ansible/latest/porting_guides/porting_guide_core_2.20.html#inject-facts-as-vars Signed-off-by: Rich Megginson <rmeggins@redhat.com>
1 parent 4249160 commit 1fc4ed7

File tree

8 files changed

+51
-45
lines changed

8 files changed

+51
-45
lines changed

tasks/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
selectattr('previous', 'match', '^replaced$') |
4141
list | length > 0 }}"
4242
__firewall_python_cmd: "{{ ansible_python_interpreter |
43-
d(discovered_interpreter_python) }}"
43+
d(ansible_facts['discovered_interpreter_python']) }}"
4444
__firewall_report_changed: true
4545

4646
- name: Handle previous replaced

tests/tests_ansible.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -614,8 +614,8 @@
614614
register: result
615615
failed_when: result is failed or result is not changed
616616
when:
617-
- ansible_distribution in ["RedHat", "CentOS", "Fedora"]
618-
- ansible_distribution_major_version is version("8", ">=")
617+
- ansible_facts["distribution"] in ["RedHat", "CentOS", "Fedora"]
618+
- ansible_facts["distribution_major_version"] is version("8", ">=")
619619

620620
- name: Add includes again to check idempotence
621621
firewall_lib:
@@ -629,8 +629,8 @@
629629
register: result
630630
failed_when: result is failed or result is changed
631631
when:
632-
- ansible_distribution in ["RedHat", "CentOS", "Fedora"]
633-
- ansible_distribution_major_version is version("8", ">=")
632+
- ansible_facts["distribution"] in ["RedHat", "CentOS", "Fedora"]
633+
- ansible_facts["distribution_major_version"] is version("8", ">=")
634634

635635
- name: Delete custom service
636636
firewall_lib:
@@ -665,12 +665,12 @@
665665
- "aaaa:aaaa:aaaa:aaa:aaaa:aaaa:aaaa::"
666666
# these two don't exist yet in RHEL 7
667667
helper_module: "{{ 'nf_conntrack_ftp'
668-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
669-
and ansible_distribution_major_version is version('8', '>=')
668+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
669+
and ansible_facts['distribution_major_version'] is version('8', '>=')
670670
else omit }}"
671671
includes: "{{ ['https', 'ldaps']
672-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
673-
and ansible_distribution_major_version is version('8', '>=')
672+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
673+
and ansible_facts['distribution_major_version'] is version('8', '>=')
674674
else omit }}"
675675
online: "{{ __firewall_is_booted }}"
676676
register: result
@@ -693,8 +693,8 @@
693693
that:
694694
- '"includes: https ldaps" in info.stdout'
695695
- '"helpers: nf_conntrack_ftp" in info.stdout'
696-
when: ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
697-
and ansible_distribution_major_version is version('8', '>=')
696+
when: ansible_facts["distribution"] in ['RedHat', 'CentOS', 'Fedora']
697+
and ansible_facts["distribution_major_version"] is version('8', '>=')
698698

699699
- name: Add helper module that already is on customservice
700700
firewall_lib:
@@ -705,8 +705,8 @@
705705
online: "{{ __firewall_is_booted }}"
706706
register: result
707707
failed_when: result is failed or result is changed
708-
when: ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
709-
and ansible_distribution_major_version is version('8', '>=')
708+
when: ansible_facts["distribution"] in ['RedHat', 'CentOS', 'Fedora']
709+
and ansible_facts["distribution_major_version"] is version('8', '>=')
710710

711711
- name: Forward port 40 to 0.0.0.0:8080 (string)
712712
firewall_lib:

tests/tests_interface_pci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
set_fact:
1616
nftables_backend:
1717
"{{ true
18-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
19-
and ansible_distribution_major_version is version('8', '>=')
18+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
19+
and ansible_facts['distribution_major_version'] is version('8', '>=')
2020
else false }}"
2121

2222
- name: Find ethernet interface

tests/tests_reload_on_reset.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
- name: Test not supported on EL7
1010
meta: end_host
1111
when:
12-
- ansible_distribution in ['RedHat', 'CentOS']
13-
- ansible_distribution_major_version | int < 8
12+
- ansible_facts["distribution"] in ['RedHat', 'CentOS']
13+
- ansible_facts["distribution_major_version"] | int < 8
1414
tasks:
1515
- name: Determine if system is ostree and set flag
1616
when: not __firewall_is_ostree is defined

tests/tests_service.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
- 1.1.1.1
7171
- 1::1
7272
includes: "{{ ['ssh', 'ldaps']
73-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
74-
and ansible_distribution_major_version is version('8', '>=')
73+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
74+
and ansible_facts['distribution_major_version'] is version('8', '>=')
7575
else [] }}"
7676
permanent: true
7777
state: present
@@ -93,8 +93,8 @@
9393
- 1.1.1.1
9494
- 1::1
9595
includes: "{{ ['ssh', 'ldaps']
96-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
97-
and ansible_distribution_major_version is version('8', '>=')
96+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
97+
and ansible_facts['distribution_major_version'] is version('8', '>=')
9898
else [] }}"
9999
permanent: true
100100
state: present
@@ -127,12 +127,12 @@
127127
protocol: icmp
128128
# these two don't exist yet in RHEL 7
129129
helper_module: "{{ 'ftp'
130-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
131-
and ansible_distribution_major_version is version('8', '>=')
130+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
131+
and ansible_facts['distribution_major_version'] is version('8', '>=')
132132
else omit }}"
133133
includes: "{{ ['ssh', 'ldaps']
134-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
135-
and ansible_distribution_major_version is version('8', '>=')
134+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
135+
and ansible_facts['distribution_major_version'] is version('8', '>=')
136136
else [] }}"
137137
permanent: true
138138
state: present
@@ -175,12 +175,12 @@
175175
protocol: icmp
176176
# these two don't exist yet in RHEL 7
177177
helper_module: "{{ 'ftp'
178-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
179-
and ansible_distribution_major_version is version('8', '>=')
178+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
179+
and ansible_facts['distribution_major_version'] is version('8', '>=')
180180
else omit }}"
181181
includes: "{{ ['ssh', 'ldaps']
182-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
183-
and ansible_distribution_major_version is version('8', '>=')
182+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
183+
and ansible_facts['distribution_major_version'] is version('8', '>=')
184184
else [] }}"
185185
permanent: true
186186
state: present
@@ -257,12 +257,12 @@
257257
- 1::1
258258
protocol: icmp
259259
helper_module: "{{ 'ftp'
260-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
261-
and ansible_distribution_major_version is version('8', '>=')
260+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
261+
and ansible_facts['distribution_major_version'] is version('8', '>=')
262262
else omit }}"
263263
includes: "{{ ['ssh', 'ldaps']
264-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
265-
and ansible_distribution_major_version is version('8', '>=')
264+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
265+
and ansible_facts['distribution_major_version'] is version('8', '>=')
266266
else [] }}"
267267
permanent: true
268268
state: absent
@@ -287,12 +287,12 @@
287287
- 1::1
288288
protocol: icmp
289289
helper_module: "{{ 'ftp'
290-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
291-
and ansible_distribution_major_version is version('8', '>=')
290+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
291+
and ansible_facts['distribution_major_version'] is version('8', '>=')
292292
else omit }}"
293293
includes: "{{ ['ssh', 'ldaps']
294-
if ansible_distribution in ['RedHat', 'CentOS', 'Fedora']
295-
and ansible_distribution_major_version is version('8', '>=')
294+
if ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora']
295+
and ansible_facts['distribution_major_version'] is version('8', '>=')
296296
else [] }}"
297297
permanent: true
298298
state: absent

tests/tests_zone.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
gather_facts: true
66
tasks:
77
- name: Test firewalld zones
8-
when: ansible_distribution == "Fedora" or
9-
((ansible_distribution == "CentOS" or ansible_distribution == "RedHat")
10-
and ansible_distribution_major_version | int >= 7)
8+
when: ansible_facts["distribution"] == "Fedora" or
9+
((ansible_facts["distribution"] == "CentOS" or ansible_facts["distribution"] == "RedHat")
10+
and ansible_facts["distribution_major_version"] | int >= 7)
1111
block:
1212

1313
# INIT TEST

tests/vars/rh_distros_vars.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ __firewall_rh_distros:
1414
__firewall_rh_distros_fedora: "{{ __firewall_rh_distros + ['Fedora'] }}"
1515

1616
# Use this in conditionals to check if distro is Red Hat or clone
17-
__firewall_is_rh_distro: "{{ ansible_distribution in __firewall_rh_distros }}"
17+
__firewall_is_rh_distro: "{{ ansible_facts['distribution'] in __firewall_rh_distros }}"
1818

1919
# Use this in conditionals to check if distro is Red Hat or clone, or Fedora
20-
__firewall_is_rh_distro_fedora: "{{ ansible_distribution in __firewall_rh_distros_fedora }}"
20+
__firewall_is_rh_distro_fedora: "{{ ansible_facts['distribution'] in __firewall_rh_distros_fedora }}"

vars/main.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@ __firewall_usr_lib_dir: /usr/lib/firewalld
55

66
# ansible_facts required by the role
77
__firewall_required_facts:
8+
- discovered_interpreter_python
9+
- distribution_major_version
10+
- distribution
811
- python_version
912
- service_mgr
1013

14+
__firewall_no_subsets_facts:
15+
- discovered_interpreter_python
16+
1117
# the subsets of ansible_facts that need to be gathered in case any of the
1218
# facts in required_facts is missing; see the documentation of
1319
# the 'gather_subset' parameter of the 'setup' module
1420
__firewall_required_facts_subsets: "{{ ['!all', '!min'] +
15-
__firewall_required_facts }}"
21+
__firewall_required_facts | difference(__firewall_no_subsets_facts) }}"
1622

1723
__firewall_packages_base: [firewalld]
1824

@@ -42,8 +48,8 @@ __firewall_rh_distros:
4248
__firewall_rh_distros_fedora: "{{ __firewall_rh_distros + ['Fedora'] }}"
4349

4450
# Use this in conditionals to check if distro is Red Hat or clone
45-
__firewall_is_rh_distro: "{{ ansible_distribution in __firewall_rh_distros }}"
51+
__firewall_is_rh_distro: "{{ ansible_facts['distribution'] in __firewall_rh_distros }}"
4652

4753
# Use this in conditionals to check if distro is Red Hat or clone, or Fedora
48-
__firewall_is_rh_distro_fedora: "{{ ansible_distribution in __firewall_rh_distros_fedora }}"
54+
__firewall_is_rh_distro_fedora: "{{ ansible_facts['distribution'] in __firewall_rh_distros_fedora }}"
4955
# END - DO NOT EDIT THIS BLOCK - rh distros variables

0 commit comments

Comments
 (0)