Commit f7983c5
Melnyk Roman
fix: avoid crash when host has no default_ipv6 fact
Jinja's default() filter evaluates its fallback argument eagerly, even
when the primary value already resolved. On hosts with no IPv6 default
route, ansible_facts has no default_ipv6 key at all, so chaining
['address']/.address/.interface onto the missing key raises:
'dict object' has no attribute 'default_ipv6'
...even though default_ipv4 would have been used. This hit role
argument validation (rke2_api_ip default in argument_specs.yml) on any
IPv4-only host, before the role even started.
Replace the dict['key']/.key chains with .get(key, {}).get(subkey),
which returns None instead of raising when the key is absent, and use
`or` instead of default() so None/empty still falls through to the
IPv6 branch.1 parent 0ef24b4 commit f7983c5
4 files changed
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
0 commit comments