Hello,

Just thought I would uypdate.  I was not able to find the correct syntax
for an or in a when statement.   What I end up doing, and I am sure there
is a better way to do it, was create separate lists then adding them
together.

    - name: Create a list without Gigabit interfaces
      set_fact:
        exclude1: "{{ ex | reject('search', 'Giga') | list }}"
    - name: Create a list of GigabitEthernet0/0
      set_fact:
        exclude2: "{{ ex | select('search', 'GigabitEthernet0/0') | list }}"

    - name: Gather the Port Channel Summary
      ansible.netcommon.cli_parse:
        command: "show etherchannel summary"
        parser:
          name: ansible.netcommon.pyats
        set_fact: eth_sum

    - name: Get the PO Channel Interfaces
      set_fact:
        po_ints: "{{ eth_sum.interfaces|json_query(query)|
                    flatten }}"
        cacheable: yes
      vars:
        query: '*.port_channel.port_channel_member_intfs'

    - name: Create one list to be used in a future play
      set_fact:
        exclude_interfaces: "{{ exclude1 + exclude2 + po_ints }}"
        cacheable: yes


On Wed, Nov 25, 2020 at 11:42 AM J C <[email protected]> wrote:

> I apologize I did miss a line in my task when I copied.  So I used the
> (Port|Vlan).  Which again works as a single statement.  Also tried putting
> the statements in ()
>
>     - name: Apply policy to the interfaces
>       cisco.ios.ios_config:
>         parents: interface {{ item.key }}
>         lines:
>           - device-tracking attach-policy IPDT_POLICY
>       loop: "{{ netbrain_interface_attributes|dict2items }}"
>       when: >
>         item.key is not regex("(Port|Vlan)")
>         or item.key not in po_ints
>
>     - name: Apply policy to the interfaces
>       cisco.ios.ios_config:
>         parents: interface {{ item.key }}
>         lines:
>           - device-tracking attach-policy IPDT_POLICY
>       loop: "{{ netbrain_interface_attributes|dict2items }}"
>       when: >
>         (item.key is not regex("(Port|Vlan)"))
>         or (item.key not in po_ints)
>
> On Wed, Nov 25, 2020 at 10:08 AM Stefan Hornburg (Racke) <[email protected]>
> wrote:
>
>> On 11/25/20 4:44 PM, [email protected] wrote:
>> > In an ansible play, is "or" not supported with conditional statements?
>> I have a task that is searching a variable for 2
>> > values. The when statements work alone, but with "or" it runs but
>> doesn't do what I am expecting. Here is the task, is
>> > my syntax wrong or is it just not supported? -
>> >
>> >
>> >     - name: Apply policy to the interfaces
>> >       cisco.ios.ios_config:
>> >         parents: interface {{ item.key }}
>> >         lines:
>> >           - device-tracking attach-policy IPDT_POLICY
>> >       loop: "{{ netbrain_interface_attributes|dict2items }}"
>> >       when: >
>> >         item.key is not search("Port")
>> >         or item.key is not search("Vlan")
>> >
>>
>> Maybe you need ( ) around both conditions, but you can also use (untested)
>>
>>    item.key is not regex("(Port|Vlan)")
>>
>> Regards
>>        Racke
>>
>> >
>> > --
>> > 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] <mailto:
>> [email protected]>.
>> > To view this discussion on the web visit
>> >
>> https://groups.google.com/d/msgid/ansible-project/a0649fd5-6757-4e91-9424-904629aad1fdn%40googlegroups.com
>> > <
>> https://groups.google.com/d/msgid/ansible-project/a0649fd5-6757-4e91-9424-904629aad1fdn%40googlegroups.com?utm_medium=email&utm_source=footer
>> >.
>>
>>
>> --
>> Ecommerce and Linux consulting + Perl and web application programming.
>> Debian and Sympa administration. Provisioning with Ansible.
>>
>> --
>> 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/81625ee8-3b31-a6b7-dc30-50b4db9b5d72%40linuxia.de
>> .
>>
>

-- 
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/CAANJ-QRqFxrrxgGiRX_6Y9e68U4w4BKKDtXeeQ2%3DQs%2BqHhyAgA%40mail.gmail.com.

Reply via email to