I have a playbook that executes a command on a set of routers (inventory 
hosts) looking for a specific IP address.  The playbook uses the "meta: 
end_host" on hosts that do not return a desired result.  This works fine.  
A result is returned to the user via a URI call.
Now I'd like to return "not found" with the URI call, when none of the 
routers have the IP address.  Unfortunately the meta:end_host ends the 
playbook.
I've tried setting a "flag" on localhost as ansible_fact but the when does 
not work.

  - name: Set default value for ip not_found flag
    set_fact:
      not_found: true
    delegate_to: localhost
    delegate_facts: true
    run_once: yes
...
  - name: Set default value for ip not_found flag
    set_fact:
      not_found: true
    delegate_to: localhost
    delegate_facts: true
    run_once: yes
...
  - name: NOT FOUND
    uri:
      url: https://{{ cmdb }}/{{ test_results }}
      method: PUT
       body_format: json
      body: {
        "jobId": "{{ tower_job_id | default('000')}}",
        "result": "Search for IP Address {{ realtime_ip }}",
        "details": "NOT FOUND"
      }
    delegate_to: localhost
    when: not_found

The last play does not delegate to localhost so I get an error that 
not_found does not exist.  What I'm I doing wrong.  Any other way I can 
accomplish this.  I dont want "failed" hosts from the playbook.
TASK [NOT FOUND] 
*******************************************************************************************************************************************************************************
task path: 
/home/smitsi1/tower-network-playbooks/find_ip_mac_realtime.yml:155
fatal: [router-lab-srp.gw.mcgill.ca]: FAILED! => {
    "msg": "The conditional check 'not_found' failed. The error was: error 
while evaluating conditional (not_found): 'dict object' has no attribute 
'not_found'\n\nThe error appears to be in 
'/home/smitsi1/tower-network-playbooks/find_ip_mac_realtime.yml': line 155, 
column 5, but may\nbe elsewhere in the file depending on the exact syntax 
problem.\n\nThe offending line appears to be:\n\n  # Check if None of the 
routers have an ARP then IP not found.  Want to return \"not found\" to 
NetMan\n  - name: NOT FOUND DEBUG\n    ^ here\n"
}

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/9a09459c-7cf6-4721-af43-80c970f5c68en%40googlegroups.com.

Reply via email to