first thing, this is not needed:
- set_fact: mylist={{["l10","j82","b83","8jk","j83"]|list}}
this should be enough:
- set_fact:
mylist: ["l10","j82","b83","8jk","j83"]
another issue is that moustaches do not stack! and you need moustaches
for variables
- set_fact: elements={{mylist[-max_n:]}}
the first way you did it you had a string mylist, .not a variable, the
second you were putting {{ }} inside of {{}} which does not work
(moustaches do not stack!).
On Mon, Jan 18, 2016 at 10:33 AM, Dan C <[email protected]> wrote:
> 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.
--
Brian Coca
--
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/CAJ5XC8n6BSpY9rFdph9FoOCkjy-Y3TgqRS2jpr7MR%2BtitxBwXg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.