Skip to content

Commit c27e218

Browse files
Fix broken conditionals (Ansible Core 2.19 / Ansible 12 compatibility)
- Added a new fact `__run_acmesh_is_installed` to indicate whether acme.sh is installed as boolean. - Fixed broken conditionalnditionals. Ansible Core 2.19 / Ansible 12 introduced stricter behavior, e.g. non-boolean expressions in `when:` now raise errors by default. More information: https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_core_2.19.html#broken-conditionals Closes #9.
1 parent 0e45e38 commit c27e218

File tree

5 files changed

+35
-25
lines changed

5 files changed

+35
-25
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
3+
minor_changes:
4+
- Added a new fact ``__run_acmesh_is_installed`` to indicate whether acme.sh is installed as boolean.
5+
6+
bugfixes:
7+
- Fixed `broken conditionals <https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_core_2.19.html#broken-conditionals>`_. Ansible Core 2.19 / Ansible 12 introduced stricter behavior, e.g. non-boolean expressions in ``when:`` now raise errors by default.

roles/run/tasks/cert/default.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
decrypt: true
4343
force: false # do not overwrite anything if already existing on target
4444
when:
45-
- __run_acmesh_version_installed
45+
- __run_acmesh_is_installed
4646
- run_acmesh_certs is defined
4747
- item['stat'] is defined
4848
- item['stat']['exists']
@@ -87,7 +87,7 @@
8787
decrypt: true
8888
force: false # do not overwrite anything if already existing on target
8989
when:
90-
- __run_acmesh_version_installed
90+
- __run_acmesh_is_installed
9191
- run_acmesh_certs is defined
9292
- item['stat'] is defined
9393
- item['stat']['exists']
@@ -201,7 +201,7 @@
201201
chdir: "{{ run_acmesh_cfg_home }}"
202202
environment: "{{ run_acmesh_environment | default(omit) }}"
203203
when:
204-
- __run_acmesh_version_installed
204+
- __run_acmesh_is_installed
205205
- run_acmesh_certs is defined
206206
changed_when:
207207
- __run_acmesh_issue_result['rc'] == 0
@@ -222,7 +222,7 @@
222222
group: "{{ run_acmesh_group }}"
223223
mode: "u=rwx,g=rx,o=" # 0750
224224
when:
225-
- __run_acmesh_version_installed
225+
- __run_acmesh_is_installed
226226
- run_acmesh_certs is defined
227227
loop: "{{ run_acmesh_certs | selectattr('install', 'defined') | map(attribute='install') | selectattr('ca_file', 'defined') | list }}"
228228

@@ -235,7 +235,7 @@
235235
group: "{{ run_acmesh_group }}"
236236
mode: "u=rwx,g=rx,o=" # 0750
237237
when:
238-
- __run_acmesh_version_installed
238+
- __run_acmesh_is_installed
239239
- run_acmesh_certs is defined
240240
loop: "{{ run_acmesh_certs | selectattr('install', 'defined') | map(attribute='install') | selectattr('cert_file', 'defined') | list }}"
241241

@@ -248,7 +248,7 @@
248248
group: "{{ run_acmesh_group }}"
249249
mode: "u=rwx,g=rx,o=" # 0750
250250
when:
251-
- __run_acmesh_version_installed
251+
- __run_acmesh_is_installed
252252
- run_acmesh_certs is defined
253253
loop: "{{ run_acmesh_certs | selectattr('install', 'defined') | map(attribute='install') | selectattr('fullcain_file', 'defined') | list }}"
254254

@@ -261,7 +261,7 @@
261261
group: "{{ run_acmesh_group }}"
262262
mode: "u=rwx,g=rx,o=" # 0750
263263
when:
264-
- __run_acmesh_version_installed
264+
- __run_acmesh_is_installed
265265
- run_acmesh_certs is defined
266266
loop: "{{ run_acmesh_certs | selectattr('install', 'defined') | map(attribute='install') | selectattr('key_file', 'defined') | list }}"
267267

@@ -309,7 +309,7 @@
309309
chdir: "{{ run_acmesh_cfg_home }}"
310310
environment: "{{ run_acmesh_environment | default(omit) }}"
311311
when:
312-
- __run_acmesh_version_installed
312+
- __run_acmesh_is_installed
313313
- run_acmesh_certs is defined
314314
changed_when:
315315
- __run_acmesh_install_result['rc'] == 0
@@ -495,7 +495,7 @@
495495
exit 0
496496
executable: "/bin/bash" # Support for other shells untested (so far)
497497
when:
498-
- __run_acmesh_version_installed
498+
- __run_acmesh_is_installed
499499
- run_acmesh_certs is defined
500500
- item is defined
501501
- item['domains'] is defined
@@ -516,7 +516,7 @@
516516
msg: "{{ item }}"
517517
verbosity: 3
518518
when:
519-
- __run_acmesh_version_installed
519+
- __run_acmesh_is_installed
520520
- run_acmesh_certs is defined
521521
- item | length > 0
522522
loop: >-
@@ -536,7 +536,7 @@
536536
args:
537537
chdir: "{{ run_acmesh_cfg_home }}"
538538
when:
539-
- __run_acmesh_version_installed
539+
- __run_acmesh_is_installed
540540
- ansible_verbosity > 3
541541
changed_when: false
542542
register: __run_acmesh_list_domains_result
@@ -547,6 +547,6 @@
547547
msg: "{{ __run_acmesh_list_domains_result['stdout_lines'] }}"
548548
verbosity: 3
549549
when:
550-
- __run_acmesh_version_installed
551-
- __run_acmesh_list_domains_result
550+
- __run_acmesh_is_installed
551+
- __run_acmesh_list_domains_result is defined
552552
- ansible_verbosity > 3

roles/run/tasks/init.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,10 @@
127127
changed_when: false
128128

129129

130-
- name: "Init | Set installed version as fact"
130+
- name: "Init | Set installed version as facts"
131131
ansible.builtin.set_fact:
132-
__run_acmesh_version_installed: "{{ (__run_acmesh_version_installed_result) | ternary(__run_acmesh_version_installed_result['stdout'], false) }}"
132+
__run_acmesh_is_installed: "{{ (__run_acmesh_version_installed_result is success) | ternary((__run_acmesh_version_installed_result['stdout'] | length > 0), false) }}"
133+
__run_acmesh_version_installed: "{{ (__run_acmesh_version_installed_result is success) | ternary(__run_acmesh_version_installed_result['stdout'], false) }}"
133134

134135

135136
- name: "Init | Display installed version (if any, false means \"not installed\")"

roles/run/tasks/setup/install/default.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
suffix: "-acmesh"
109109
changed_when: false
110110
when:
111-
- not __run_acmesh_version_installed
111+
- not __run_acmesh_is_installed
112112
register: __run_acmesh_tempdir
113113

114114

@@ -117,7 +117,7 @@
117117
var: __run_acmesh_tempdir
118118
verbosity: 2
119119
when:
120-
- not __run_acmesh_version_installed
120+
- not __run_acmesh_is_installed
121121

122122

123123
- name: "Setup | Install | Default | git clone {{ __run_acmesh_git_url }}"
@@ -128,7 +128,7 @@
128128
dest: "{{ __run_acmesh_tempdir['path'] }}"
129129
update: true
130130
when:
131-
- not __run_acmesh_version_installed
131+
- not __run_acmesh_is_installed
132132

133133

134134
- name: "Setup | Install | Default | Ensure existence and permissions of main directories"
@@ -192,7 +192,7 @@
192192
chdir: "{{ __run_acmesh_tempdir['path'] }}"
193193
creates: "{{ run_acmesh_cfg_home }}/acme.sh"
194194
when:
195-
- not __run_acmesh_version_installed
195+
- not __run_acmesh_is_installed
196196
notify: "run_acmesh: set ownership and permissions"
197197

198198

@@ -233,8 +233,9 @@
233233
args:
234234
chdir: "{{ run_acmesh_cfg_home }}"
235235
when:
236-
- __run_acmesh_version_installed
237-
- __run_acmesh_version_upstream
236+
- __run_acmesh_is_installed
237+
- __run_acmesh_version_installed is defined
238+
- __run_acmesh_version_upstream is defined
238239
- run_acmesh_autoupgrade is defined
239240
- run_acmesh_autoupgrade
240241
- __run_acmesh_version_installed is version(__run_acmesh_version_upstream, 'lt', version_type='semver')
@@ -279,9 +280,10 @@
279280
register: __run_acmesh_version_installed_result
280281

281282

282-
- name: "Setup | Install | Default | Update / overwrite installed version fact"
283+
- name: "Setup | Install | Default | Update / overwrite installed version facts"
283284
ansible.builtin.set_fact:
284-
__run_acmesh_version_installed: "{{ __run_acmesh_version_installed_result | ternary(__run_acmesh_version_installed_result['stdout'], false) }}"
285+
__run_acmesh_is_installed: "{{ (__run_acmesh_version_installed_result is success) | ternary((__run_acmesh_version_installed_result['stdout'] | length > 0), false) }}"
286+
__run_acmesh_version_installed: "{{ (__run_acmesh_version_installed_result is success) | ternary(__run_acmesh_version_installed_result['stdout'], false) }}"
285287

286288

287289
- name: "Setup | Install | Default | Display installed version (if any, false means \"not installed\")"
@@ -333,7 +335,7 @@
333335
line: '\1grep -i "^\2'
334336
backrefs: true
335337
when:
336-
- __run_acmesh_version_installed
338+
- __run_acmesh_is_installed
337339
- __run_acmesh_version_installed is version('3.0.6', 'le', version_type='semver')
338340

339341

roles/run/tasks/setup/uninstall/default.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
args:
2323
removes: "{{ run_acmesh_cfg_home }}/acme.sh"
2424
when:
25-
- __run_acmesh_version_installed
25+
- __run_acmesh_is_installed
2626

2727

2828
- name: "Setup | Uninstall | Default | Remove packages"

0 commit comments

Comments
 (0)