I am trying to process the result from the find module. The result contains 
3 file paths which i would  like to process in a loop. 
The number of files depends on the number of files found in the directories 
and is set by result.matched

Using the with_sequence loop should do the trick, i think. But i ran into a 
problem.

with_sequence: start=0 end={{ variable }}, expects {{ variable }} to be an 
integer. Casting {{ variable | int}} results in a zero value, which should 
be 3.

Any suggestions how to solve or work around my issue?

After casting the variable correctly to an integer, off course i still have 
to subtract 1 to set the correct index value for the results array.

*Variables*:

file_path: "roles/ansible-role-iamGroups/files"
template_path: "roles/ansible-role-iamGroups/templates"

declared_int: 3 

*Tasks*:

- name: find files
  find:
    recurse: yes
    patterns: "*.json"
    paths: 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/"
  register: result

- name: register numbers variable
  shell: "echo {{result.matched}}"
  register: number

- name: list number variable (==> string value 3)
  debug: var=number

- name: list result hard coded (works)
  debug: "var=result.files[{{item}}].path"
  with_sequence: "start=0 end=2 stride=1"

- name: list result with variable casted to integer (number is casted to 0, 
should be 3 )
  debug: "var=result.files[{{item}}].path"
  with_sequence: "start=0 end={{ number | int }} stride=1"

- name: list result with  declared integer variable minus 1 (works)
  debug: "var=result.files[{{item}}].path"
  with_sequence: "start=0 end={{ declared_int - 1 }} stride=1"

- name: list result without casting variable number ( results in parsing 
error)
  debug: "var=result.files[{{item}}].path"
  with_sequence: "start=0 end={{ number }} stride=1"

*Output*:

ok: [aws] => {
    "changed": false, 
    "examined": 25, 
    "files": [
        {
            "atime": 1480345980.447014, 
            "ctime": 1480345980.451014, 
            "dev": 2049, 
            "gid": 1000, 
            "inode": 523227, 
            "isblk": false, 
            "ischr": false, 
            "isdir": false, 
            "isfifo": false, 
            "isgid": false, 
            "islnk": false, 
            "isreg": true, 
            "issock": false, 
            "isuid": false, 
            "mode": "0644", 
            "mtime": 1480345980.447014, 
            "nlink": 1, 
            "path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json",
 
            "rgrp": true, 
            "roth": true, 
            "rusr": true, 
            "size": 1655, 
            "uid": 1000, 
            "wgrp": false, 
            "woth": false, 
            "wusr": true, 
            "xgrp": false, 
            "xoth": false, 
            "xusr": false
        }, 
        {
            "atime": 1480345980.523014, 
            "ctime": 1480345980.527014, 
            "dev": 2049, 
            "gid": 1000, 
            "inode": 523175, 
            "isblk": false, 
            "ischr": false, 
            "isdir": false, 
            "isfifo": false, 
            "isgid": false, 
            "islnk": false, 
            "isreg": true, 
            "issock": false, 
            "isuid": false, 
            "mode": "0644", 
            "mtime": 1480345980.527014, 
            "nlink": 1, 
            "path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json",
 
            "rgrp": true, 
            "roth": true, 
            "rusr": true, 
            "size": 136, 
            "uid": 1000, 
            "wgrp": false, 
            "woth": false, 
            "wusr": true, 
            "xgrp": false, 
            "xoth": false, 
            "xusr": false
        }, 
        {
            "atime": 1480345980.531014, 
            "ctime": 1480345980.539014, 
            "dev": 2049, 
            "gid": 1000, 
            "inode": 523226, 
            "isblk": false, 
            "ischr": false, 
            "isdir": false, 
            "isfifo": false, 
            "isgid": false, 
            "islnk": false, 
            "isreg": true, 
            "issock": false, 
            "isuid": false, 
            "mode": "0644", 
            "mtime": 1480345980.531014, 
            "nlink": 1, 
            "path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json",
 
            "rgrp": true, 
            "roth": true, 
            "rusr": true, 
            "size": 138, 
            "uid": 1000, 
            "wgrp": false, 
            "woth": false, 
            "wusr": true, 
            "xgrp": false, 
            "xoth": false, 
            "xusr": false
        }
    ], 
    "invocation": {
        "module_args": {
            "age": null, 
            "age_stamp": "mtime", 
            "contains": null, 
            "file_type": "file", 
            "follow": false, 
            "get_checksum": false, 
            "hidden": false, 
            "paths": [
                
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/"
            ], 
            "patterns": [
                "*.json"
            ], 
            "recurse": true, 
            "size": null, 
            "use_regex": false
        }, 
        "module_name": "find"
    }, 
    "matched": 3, 
    "msg": ""
}

TASK [ansible-role-iamGroups : register numbers variable] 
**************************************************************************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:9
Using module file 
/home/user/ansible/lib/ansible/modules/core/commands/command.py
<aws> ESTABLISH LOCAL CONNECTION FOR USER: user
<aws> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282 `" && echo 
ansible-tmp-1480495766.92-247180421426282="` echo 
$HOME/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282 `" ) && sleep 
0'
<aws> PUT /tmp/tmpO5IsA5 TO 
/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py
<aws> EXEC /bin/sh -c 'chmod u+x 
/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/ 
/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py 
&& sleep 0'
<aws> EXEC /bin/sh -c '/usr/bin/python 
/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py; 
rm -rf "/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/" 
> /dev/null 2>&1 && sleep 0'
changed: [aws] => {
    "changed": true, 
    "cmd": "echo 3", 
    "delta": "0:00:00.003979", 
    "end": "2016-11-30 09:49:27.332742", 
    "invocation": {
        "module_args": {
            "_raw_params": "echo 3", 
            "_uses_shell": true, 
            "chdir": null, 
            "creates": null, 
            "executable": null, 
            "removes": null, 
            "warn": true
        }, 
        "module_name": "command"
    }, 
    "rc": 0, 
    "start": "2016-11-30 09:49:27.328763", 
    "stderr": "", 
    "stdout": "3", 
    "stdout_lines": [
        "3"
    ], 
    "warnings": []
}

TASK [ansible-role-iamGroups : list number variable (==> string value 3)] 
**********************************************************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:13
ok: [aws] => {
    "number": {
        "changed": true, 
        "cmd": "echo 3", 
        "delta": "0:00:00.003979", 
        "end": "2016-11-30 09:49:27.332742", 
        "rc": 0, 
        "start": "2016-11-30 09:49:27.328763", 
        "stderr": "", 
        "stdout": "3", 
        "stdout_lines": [
            "3"
        ], 
        "warnings": []
    }
}

TASK [ansible-role-iamGroups : list result hard coded (works)] 
*********************************************************************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:16
ok: [aws] => (item=0) => {
    "invocation": {
        "module_args": {
            "var": "result.files[0].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "0", 
    "result.files[0].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json"
}
ok: [aws] => (item=1) => {
    "invocation": {
        "module_args": {
            "var": "result.files[1].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "1", 
    "result.files[1].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json"
}
ok: [aws] => (item=2) => {
    "invocation": {
        "module_args": {
            "var": "result.files[2].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "2", 
    "result.files[2].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json"
}

TASK [ansible-role-iamGroups : list result with variable casted to integer 
(number is casted to 0, should be 3 )] 
******************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:20
ok: [aws] => (item=0) => {
    "invocation": {
        "module_args": {
            "var": "result.files[0].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "0", 
    "result.files[0].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json"
}

TASK [ansible-role-iamGroups : list result with  declared integer variable 
minus 1 (works)] 
****************************************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:24
ok: [aws] => (item=0) => {
    "invocation": {
        "module_args": {
            "var": "result.files[0].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "0", 
    "result.files[0].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json"
}
ok: [aws] => (item=1) => {
    "invocation": {
        "module_args": {
            "var": "result.files[1].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "1", 
    "result.files[1].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json"
}
ok: [aws] => (item=2) => {
    "invocation": {
        "module_args": {
            "var": "result.files[2].path"
        }, 
        "module_name": "debug"
    }, 
    "item": "2", 
    "result.files[2].path": 
"/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json"
}

TASK [ansible-role-iamGroups : list result without casting variable number 
( results in parsing error)] 
****************************************************************************************************************************************************************************************************
task path: 
/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:28
fatal: [aws]: FAILED! => {
    "failed": true, 
    "msg": "unknown error parsing with_sequence arguments: u\"start=0 
end={u'changed': True, u'end': u'2016-11-30 09:49:27.332742', u'stdout': 
u'3', u'cmd': u'echo 3', u'rc': 0, u'start': u'2016-11-30 09:49:27.328763', 
u'stderr': u'', u'delta': u'0:00:00.003979', 'stdout_lines': [u'3'], 
u'warnings': []} stride=1\". Error was: can't parse arg 
end=u\"{u'changed':\" as integer"
}
        to retry, use: --limit 
@/home/user/PycharmProjects/playbook-aws-billing/billing-iam-pb.retry

PLAY RECAP 
*************************************************************************************************************************************************************************************************************************************************************************************************
aws                        : ok=7    changed=1    unreachable=0    failed=1 
  

-- 
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/e336d0bc-a955-4026-a396-5b636cb3d90e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to