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.

Reply via email to