--- - debug: msg="START connection={{ ansible_connection }} cnos_l2_interface sanity test" - name: "Setup interface" cnos_config: &default lines: - "interface {{ test_interface }}" provider: "{{ cli }}" #- name: set trunk encapsulation type # cnos_config: # lines: # - switchport trunk encapsulation dot1q # parents: # - "interface {{ test_interface }}" # provider: "{{ cli }}" - name: "Setup vlans" cnos_vlan: aggregate: - vlan_id: 5 - vlan_id: 6 - vlan_id: 7 - vlan_id: 8 - vlan_id: 9 - vlan_id: 10 - vlan_id: 20 provider: "{{ cli }}" - block: - name: Ensure interface is in its default switchport state cnos_l2_interface: &def_swi name: "{{ test_interface }}" state: unconfigured provider: "{{ cli }}" - name: Ensure interface is configured for access vlan 20 cnos_l2_interface: &acc_vl name: "{{ test_interface }}" mode: access access_vlan: 20 provider: "{{ cli }}" register: result - assert: &true that: - "result.changed == true" - name: "access vlan Idempotence" cnos_l2_interface: *acc_vl register: result - assert: &false that: - "result.changed == false" - name: Ensure interface only has vlans 5-10 as trunk vlans cnos_l2_interface: &tr_vl name: "{{ test_interface }}" mode: trunk native_vlan: 10 trunk_allowed_vlans: 5-10 provider: "{{ cli }}" register: result - assert: *true - name: "trunk vlan Idempotence" cnos_l2_interface: *tr_vl register: result - assert: *false - name: Ensure interface is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged) cnos_l2_interface: &tag name: "{{ test_interface }}" mode: trunk native_vlan: 10 trunk_vlans: 2-50 provider: "{{ cli }}" register: result - assert: *true - name: "tag vlan Idempotence" cnos_l2_interface: *tag register: result - assert: *true - name: Remove full trunk vlan range 2-50 cnos_l2_interface: &no_tag name: "{{ test_interface }}" mode: trunk trunk_vlans: 2-50 state: absent provider: "{{ cli }}" register: result - assert: *true - name: Check Idempotence Remove full trunk vlan range 2-50 cnos_l2_interface: *no_tag register: result - assert: *false - name: Reconfigure interface trunk port and ensure 2-50 are being tagged cnos_l2_interface: *tag register: result - assert: *true - name: Check Idempotence Reconfigure interface trunk port and ensure 2-50 are being tagged cnos_l2_interface: *tag register: result - assert: *true - name: Remove partial trunk vlan range 30-4094 are removed cnos_l2_interface: &partial name: "{{ test_interface }}" mode: trunk trunk_vlans: 30-4094 state: absent provider: "{{ cli }}" register: result - assert: *false - name: Check Idempotence Remove partial trunk vlan range 30-4094 are removed cnos_l2_interface: *partial register: result - assert: *false - name: put interface default state cnos_l2_interface: *def_swi register: result - assert: *true - name: "default state idempotence" cnos_l2_interface: *def_swi register: result - assert: *true always: - name: "remove vlans" cnos_vlan: aggregate: - vlan_id: 5 - vlan_id: 6 - vlan_id: 7 - vlan_id: 8 - vlan_id: 9 - vlan_id: 10 - vlan_id: 20 state: absent provider: "{{ cli }}" ignore_errors: yes - name: "default interface" cnos_config: *default ignore_errors: yes - debug: msg="END connection={{ ansible_connection }} cnos_l2_interface sanity test"