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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
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