Hi, I know I am provably misunderstanding somthing, but I am not able to
find a solution to my (rather simple) problem.
What I want is quite easy. I have a list and I want to get the last (or
first) X elements of it:
Example:
- set_fact: mylist={{["l10","j82","b83","8jk","j83"]|list}}
- debug: var=mylist
- set_fact: max_n={{1|int}}
- debug: var=max_n
- debug: var=mylist[-{{max_n}}:]
Since here everything seems to work ok with the output:
PLAY [deploy]
******************************************************************
TASK [setup]
*******************************************************************
ok: [localhost]
TASK [cleanup_s3_folder : set_fact]
********************************************
ok: [localhost]
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"mylist": [
"l10",
"j82",
"b83",
"8jk",
"j83"
]
}
TASK [cleanup_s3_folder : set_fact]
********************************************
ok: [localhost]
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"max_n": "1"
}
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"mylist[-1:]": [
"j83"
]
}
PLAY RECAP
*********************************************************************
localhost : ok=6 changed=0 unreachable=0 failed=0
Now, this last list, containing in this case only the value "j83", I want
it on a variable to use further on, so I try with:
- set_fact: elements=mylist[-{{max_n}}:]
- debug: var=elements
- set_fact: elements2={{ mylist[-{{max_n}}:] }}
- debug: var=elements2
And I am not getting what I want:
PLAY [deploy]
******************************************************************
TASK [setup]
*******************************************************************
ok: [localhost]
TASK [cleanup_s3_folder : set_fact]
********************************************
ok: [localhost]
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"mylist": [
"l10",
"j82",
"b83",
"8jk",
"j83"
]
}
TASK [cleanup_s3_folder : set_fact]
********************************************
ok: [localhost]
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"max_n": "1"
}
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"mylist[-1:]": [
"j83"
]
}
TASK [cleanup_s3_folder : set_fact]
********************************************
ok: [localhost]
TASK [cleanup_s3_folder : debug]
***********************************************
ok: [localhost] => {
"elements": "mylist[-1:]"
}
TASK [cleanup_s3_folder : set_fact]
********************************************
fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! template
error while templating string: expected token ':', got '}'"}
PLAY RECAP
*********************************************************************
localhost : ok=8 changed=0 unreachable=0 failed=1
Is there an easy way to get a VARIABLE piece of a list into a new variable?
--
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/69a9793b-9a30-422d-aed8-504672876d78%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.