Hello everyone.   I am having some issues with using the information from 
cli_parser output. '''
    - name: Create po_ch variable
      ansible.netcommon.cli_parse:
        command: "show etherchannel summary"
        parser:
          name: ansible.netcommon.pyats
        set_fact: po_ch
      tags: debug

    - name: Create a list of interfaces that are PortChannel Memebers
      set_fact: 
        exclude_ints: "{{ item.value.port_channel.port_channel_member_intfs 
}}"
      loop: "{{ ansible_facts.po_ch.interfaces|dict2items }}"
      tags: debug
    
    - name: Debug new set fact
      debug:
        msg: "{{ exclude_ints }}"
      tags: debug
```
*And here is the output*

TASK [Create a list of interfaces that are PortChannel Memebers] 
***************
task path: /tmp/awx_1417_a6buronn/project/device_tracking.yml:58
ok: [s996sw1] => (item={'key': 'Port-channel1', 'value': {'name': 
'Port-channel1', 'bundle_id': 1, 'flags': 'SU', 'oper_status': 'up', 
'members': {'GigabitEthernet1/0/37': {'interface': 'GigabitEthernet1/0/37', 
'flags': 'P', 'bundled': True, 'port_channel': {'port_channel_member': 
True, 'port_channel_int': 'Port-channel1'}}, 'GigabitEthernet1/0/38': 
{'interface': 'GigabitEthernet1/0/38', 'flags': 'D', 'bundled': False, 
'port_channel': {'port_channel_member': True, 'port_channel_int': 
'Port-channel1'}}}, 'port_channel': {'port_channel_member': True, 
'port_channel_member_intfs': ['GigabitEthernet1/0/37', 
'GigabitEthernet1/0/38']}}}) => {
    "ansible_facts": {
        "exclude_ints": [
            "GigabitEthernet1/0/37",
            "GigabitEthernet1/0/38"
        ]
    },
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "key": "Port-channel1",
 …
ok: [s996sw1] => (item={'key': 'Port-channel3', 'value': {'name': 
'Port-channel3', 'bundle_id': 3, 'flags': 'SU', 'oper_status': 'up', 
'members': {'GigabitEthernet1/1/2': {'interface': 'GigabitEthernet1/1/2', 
'flags': 'P', 'bundled': True, 'port_channel': {'port_channel_member': 
True, 'port_channel_int': 'Port-channel3'}}, 'GigabitEthernet1/1/4': 
{'interface': 'GigabitEthernet1/1/4', 'flags': 'P', 'bundled': True, 
'port_channel': {'port_channel_member': True, 'port_channel_int': 
'Port-channel3'}}}, 'port_channel': {'port_channel_member': True, 
'port_channel_member_intfs': ['GigabitEthernet1/1/2', 
'GigabitEthernet1/1/4']}}}) => {
    "ansible_facts": {
        "exclude_ints": [
            "GigabitEthernet1/1/2",
            "GigabitEthernet1/1/4"
        ]
    },
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "key": "Port-channel3",
        "v…
TASK [Debug new set fact] 
******************************************************
task path: /tmp/awx_1417_a6buronn/project/device_tracking.yml:64
ok: [s996sw1] => {
    "msg": [
        "GigabitEthernet1/1/2",
        "GigabitEthernet1/1/4"
    ]
}
META: ran handlers
META: ran handlers


So it loops and the exclude_ints variable only has the last 2 interfaces 
when there are more than one portchannel on the device. How can I merge 
these to a list and use that in a when statement further down in the play.  

Any help would be apprciated.

Thank you!


-- 
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/ebcc3dfa-b45b-4ca5-aba1-8f3c7534055an%40googlegroups.com.

Reply via email to