Hey all-

I'm having more problems w/ the dig lookup.  If I statically define a list 
of hosts to lookup as a variable, it works.  But if I return the list of 
hosts from another script, it fails.  Here's a simple example:

$ cat test.py 
#!/usr/bin/env python

import json

hostList = []
hostList.append(('www.google.com'))
j = {}
j['hosts'] = hostList
print json.dumps(j)

$ cat test.yml 
---
- hosts: all
  vars:
    ldap_names:
      - { cn: 'bogus', default: yes }

  tasks:
  - name: lookup ldap_names in directory
    shell: ". /etc/env_ansible ; 
/home/rowagn/data-platform/oracle/ansible/client12c/test.py -j {{ item.cn 
}}"
    with_items: "{{ ldap_names }}"
    register: oidLookup_output
    delegate_to: localhost
    become: no

  - name: debug
    debug: msg="result is {{ (item.stdout | from_json).hosts }}"
    with_items: "{{ oidLookup_output.results }}"

  - name: lookup
    debug: msg="IP is {{ lookup('dig', (item.stdout | from_json).hosts, 
wantlist=True) }}"
    with_items: "{{ oidLookup_output.results }}"

$ ansible-playbook  -clocal test.yml 

PLAY [all] 
*********************************************************************

TASK [setup] 
*******************************************************************
ok: [10.239.211.85]

TASK [lookup ldap_names in directory] 
******************************************
changed: [10.239.211.85 -> localhost] => (item={u'default': True, u'cn': u
'bogus'})

TASK [debug] 
*******************************************************************
ok: [10.239.211.85] => (item={'_ansible_parsed': True, 
'_ansible_item_result': True, u'end': u'2018-12-10 12:34:26.177251', 
'_ansible_no_log': False, u'stdout': u'{"hosts": ["www.google.com"]}', u
'cmd': u'. /etc/env_ansible ; 
/home/rowagn/data-platform/oracle/ansible/client12c/test.py -j bogus', u
'changed': True, 'invocation': {'module_name': u'command', u'module_args': {
u'creates': None, u'executable': None, u'_uses_shell': True, u'_raw_params': 
u'. /etc/env_ansible ; 
/home/rowagn/data-platform/oracle/ansible/client12c/test.py -j bogus', u
'removes': None, u'warn': True, u'chdir': None}}, 'item': {u'default': True, 
u'cn': u'bogus'}, u'delta': u'0:00:00.013173', u'stderr': u'', u'rc': 0, 
'_ansible_delegated_vars': {'ansible_host': u'localhost'}, 'stdout_lines': [
u'{"hosts": ["www.google.com"]}'], u'start': u'2018-12-10 12:34:26.164078', 
u'warnings': []}) => {
    "item": {
        "changed": true, 
        "cmd": ". /etc/env_ansible ; 
/home/rowagn/data-platform/oracle/ansible/client12c/test.py -j bogus", 
        "delta": "0:00:00.013173", 
        "end": "2018-12-10 12:34:26.177251", 
        "invocation": {
            "module_args": {
                "_raw_params": ". /etc/env_ansible ; 
/home/rowagn/data-platform/oracle/ansible/client12c/test.py -j bogus", 
                "_uses_shell": true, 
                "chdir": null, 
                "creates": null, 
                "executable": null, 
                "removes": null, 
                "warn": true
            }, 
            "module_name": "command"
        }, 
        "item": {
            "cn": "bogus", 
            "default": true
        }, 
        "rc": 0, 
        "start": "2018-12-10 12:34:26.164078", 
        "stderr": "", 
        "stdout": "{\"hosts\": [\"www.google.com\"]}", 
        "stdout_lines": [
            "{\"hosts\": [\"www.google.com\"]}"
        ], 
        "warnings": []
    }, 
    "msg": "result is [u'www.google.com']"
}

TASK [lookup] 
******************************************************************
fatal: [10.239.211.85]: FAILED! => {"failed": true, "msg": "An unhandled 
exception occurred while running the lookup plugin 'dig'. Error was a <type 
'exceptions.AttributeError'>, original message: 'list' object has no 
attribute 'startswith'"}

PLAY RECAP 
*********************************************************************
10.239.211.85              : ok=3    changed=1    unreachable=0    failed=1 
  


I'm sure I'm overlooking something simple, but I've been staring at this 
for two hours.  Can anyone spot my error?

Rob

-- 
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/46f538e0-aaf4-442d-bcbb-6db397635292%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to