Advertisement
Guest User

Untitled

a guest
May 20th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. ---
  2. - hosts: localhost
  3. connection: local
  4. gather_facts: false
  5. vars:
  6. mylist:
  7. - one
  8. - two
  9. - three
  10. myvar1: foo
  11. myvar2: bar
  12. myvar3: ''
  13. # myvar4:
  14. listofvars:
  15. - myvar1
  16. - myvar2
  17. - myvar3
  18. - myvar4
  19. tasks:
  20.  
  21. # these are all equivalent
  22.  
  23. # select('ne', '') is equivalent to reject('eq', '')
  24. - name: using default per var and filtering out '' with select or reject filter
  25. set_fact:
  26. newlist1: "{{ (mylist + [myvar1|default('', true)] + [myvar2|default('', true)] + [myvar3|default('', true)] + [myvar4|default('', true)])|select('ne', '')|list }}"
  27.  
  28. # |default('', true) is equivalent to (var is defined)|ternary([var],[''])
  29. - name: using ternary per var (instead of default) and filtering out ''
  30. set_fact:
  31. newlist2: "{{ (mylist + (myvar1 is defined)|ternary([myvar1],[]) + (myvar2 is defined)|ternary([myvar2],[]) + (myvar3 is defined)|ternary([myvar3],[]) + (myvar4 is defined)|ternary([myvar4],[]))|select('ne', '')|list }}"
  32.  
  33. - name: using loop against static list of vars
  34. set_fact:
  35. newlist3: "{{ newlist3|default(mylist) + [item] }}"
  36. when: item != ''
  37. loop: "{{ [myvar1, myvar2, myvar3, myvar4]|select('defined')|list }}"
  38.  
  39. # select('defined')|select('ne', '') is equivalent to reject('undefined')|reject('eq', '')
  40. - name: using select or reject filters only
  41. set_fact:
  42. newlist4: "{{ newlist4|default(mylist) + [myvar1, myvar2, myvar3, myvar4]|select('defined')|select('ne', '')|list }}"
  43.  
  44. - name: using loop against dynamic list of vars
  45. set_fact:
  46. newlist5: "{{ newlist5|default(mylist) + [lookup('vars', item, default='')]|select('ne', '')|list }}"
  47. loop: "{{ listofvars }}"
  48.  
  49. - debug:
  50. var: newlist5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement