I'm playing with Ansible+Arista and I'm able to receive JSON back about the 
arista device. As an example, I am looking at interface status. While I am 
able to receive and display information about a single value/pair from the 
array, how can I loop to receive information on every item in the array?

Example JSON received:

 TASK: [debug var=eos_command_output] 
****************************************** 
ok: [example.host] => {
    "eos_command_output": {
        "changed": false, 
        "invocation": {
            "module_args": "", 
            "module_name": "eos_command"
        }, 
        "output": [
            {
                "command": "show interfaces status", 
                "response": {
                    "interfaceStatuses": {
                        "Ethernet1": {
                            "autoNegotiateActive": false, 
                            "autoNegotigateActive": false, 
                            "bandwidth": 10000000000, 
                            "description": "example.description|span", 
                            "duplex": "duplexFull", 
                            "interfaceType": "10GBASE-SR", 
                            "linkStatus": "connected", 
                            "vlanInformation": {
                                "interfaceForwardingModel": "bridged", 
                                "interfaceMode": "tap"
                            }
                        }, 
                        "Ethernet10": {
                            "autoNegotiateActive": false, 
                            "autoNegotigateActive": false, 
                            "bandwidth": 10000000000, 
                            "description": "", 
                            "duplex": "duplexFull", 
                            "interfaceType": "Not Present", 
                            "linkStatus": "errdisabled", 
                            "vlanInformation": {
                                "interfaceForwardingModel": "bridged", 
                                "interfaceMode": "bridged", 
                                "vlanId": 1
                            }


Working example:

- name: show the optic in Ethernet1
      debug: msg="Optic in Ethernet1- 
{{eos_command_output['output'][0]['respons
e']['interfaceStatuses']['Ethernet1']['interfaceType'] }}"

yields:

ok: [example.host1] => {
    "msg": "Optic in Ethernet1- Not Present"
}
ok: [example.host2] => {
    "msg": "Optic in Ethernet1- 10GBASE-SR"


What I'm trying to do:

- name: show the optic in each port
      debug: msg="Optic in {{ eos_command_output['output'][0]['respons
e']['interfaceStatuses'] }} -  {{ interfaceType }}


This doesn't work, and so here I am. 

Desired output:

ok: [example.host1] => {
    "msg": "Optic in Ethernet1- Not Present"
    "msg": "Optic in Ethernet10- Not Present"
}
ok: [example.host2] => {
    "msg": "Optic in Ethernet1- 10GBASE-SR"
    "msg": "Optic in Ethernet10- Not Present"


Thanks!

Leo 


-- 
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/f5f7cb01-7f57-4c64-9a9e-0861a65a4723%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to