Hi all I've some variables scattered in my roles dirs: fstype: [ 'xfs', 'ext4', 'ext3', 'btrfs', 'ufs' ] #enable check on all partition of the listed types default_limit: { limit: 90, unit: '%' } mountpoints: - { mount: "/", limit: 80, unit: "%" } - { mount: "/usr/local" } #use default limit #mntpoints: "{{ mountpoint|default(ansible_mounts|selectattr('fstype', 'in', fstype))|map('combine', default_limit)|list }}" mntpoints: "{{ mountpoints|selectattr('limit','defined')|list + mountpoints|selectattr('limit','undefined')|map('combine',default_limit)|list if mountpoints|default([])|length > 0 else ansible_mounts|selectattr('fstype', 'in', fstype)|map('combine',default_limit)|list }}"
my aim is to get a list of mount points with a space limit defined or otherwise set to a default value, if specific mounts aren't chosen the filesystems of the specified types are yielded out.. And I got it the snippet works.. but it's really nasty, ahah I make python gigs nasty... the revenge of the dirty perl guy.. anyway- I've a lot of questions... in the commented assignment the issue was that combine overwrote existent limits... so I had to opt for the long and repetitive filter chain.. Is possible to split the long jinja2 assignment on more lines to improve readability? how? Is there a more brilliant way to write my filter without creating a new combine filter? In order to improve the readability I'd like to shorten the ansible_mounts hash Is there a way to make projection (a sort of map over more fields)? Yes, I know it's not useful, anyway I like to know if it's possible.. Would it be better placing the logic in the template file? thanks Luca -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/83171a5a-b578-4d9f-8a87-fcd1db33ea10%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.