--- - debug: msg="START connection={{ ansible_connection }} nxos_vlan sanity test" - debug: msg="Using provider={{ connection.transport }}" when: ansible_connection == "local" - set_fact: testint1="{{ nxos_int1 }}" - set_fact: testint2="{{ nxos_int2 }}" - block: - name: "Enable feature vn segment" nxos_config: commands: - feature vn-segment-vlan-based provider: "{{ connection }}" match: none when: platform is search('N9K') - name: Ensure a range of VLANs are present on the switch nxos_vlan: &conf_vlan vlan_range: "2-10,20,50,55-60,100-150" provider: "{{ connection }}" register: result - assert: &true that: - "result.changed == true" - name: "Vlan Idempotence" nxos_vlan: *conf_vlan register: result - assert: &false that: - "result.changed == false" - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state nxos_vlan: &web1 vlan_id: 50 vlan_state: suspend admin_state: down name: WEB mapped_vni: 5555 provider: "{{ connection }}" register: result when: platform is search('N9K') - assert: *true when: platform is search('N9K') - name: "web1 Idempotence" nxos_vlan: *web1 register: result when: platform is search('N9K') - assert: *false when: platform is search('N9K') - name: change name and vni to default nxos_vlan: &web2 vlan_id: 50 vlan_state: active admin_state: up name: default mapped_vni: default provider: "{{ connection }}" register: result when: platform is search('N9K') - assert: *true when: platform is search('N9K') - name: "web2 Idempotence" nxos_vlan: *web2 register: result when: platform is search('N9K') - assert: *false when: platform is search('N9K') - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state nxos_vlan: &web3 vlan_id: 50 vlan_state: suspend admin_state: down name: WEB provider: "{{ connection }}" register: result when: platform is search('N3K|N7K') - assert: *true when: platform is search('N3K|N7K') - name: "web3 Idempotence" nxos_vlan: *web3 register: result when: platform is search('N3K|N7K') - assert: *false when: platform is search('N3K|N7K') - name: Change name to default nxos_vlan: &web4 vlan_id: 50 vlan_state: active admin_state: up name: default provider: "{{ connection }}" register: result when: platform is search('N3K|N7K') - assert: *true when: platform is search('N3K|N7K') - name: "web4 Idempotence" nxos_vlan: *web4 register: result when: platform is search('N3K|N7K') - assert: *false when: platform is search('N3K|N7K') # Uncomment this once the get_capabilities() work on nxapi as well # - name: Change mode # nxos_vlan: &mode1 # vlan_id: 50 # mode: fabricpath # provider: "{{ connection }}" # register: result # when: platform is search('N5k|N7K') # # - assert: *true # when: platform is search('N5k|N7K') # # - name: "mode1 Idempotence" # nxos_vlan: *mode1 # register: result # when: platform is search('N5k|N7K') # # - assert: *false # when: platform is search('N5k|N7K') # # - name: Change mode again # nxos_vlan: &mode2 # vlan_id: 50 # mode: ce # provider: "{{ connection }}" # register: result # when: platform is search('N5k|N7K') # # - assert: *true # when: platform is search('N5k|N7K') # # - name: "mode2 Idempotence" # nxos_vlan: *mode2 # register: result # when: platform is search('N5k|N7K') # # - assert: *false # when: platform is search('N5k|N7K') - name: Ensure VLAN is NOT on the device nxos_vlan: &no_vlan vlan_id: 50 state: absent provider: "{{ connection }}" register: result - assert: *true - name: "no vlan Idempotence" nxos_vlan: *no_vlan register: result - assert: *false - name: Add interfaces to vlan nxos_vlan: &addint vlan_id: 101 vlan_state: suspend interfaces: - "{{ testint1 }}" - "{{ testint2 }}" provider: "{{ connection }}" register: result - assert: *true - name: "Addint idempotence" nxos_vlan: *addint register: result - assert: *false - name: Remove interfaces from vlan nxos_vlan: &remint vlan_id: 101 interfaces: default provider: "{{ connection }}" register: result - assert: *true - name: "Remint idempotence" nxos_vlan: *remint register: result - assert: *false always: - name: Remove int from vlan nxos_vlan: *remint ignore_errors: yes - name: remove vlans nxos_vlan: vlan_range: "2-10,20,50,55-60,100-150" state: absent provider: "{{ connection }}" ignore_errors: yes - name: "Disable feature vn segement" nxos_feature: feature: vn-segment-vlan-based state: disabled provider: "{{ connection }}" ignore_errors: yes when: platform is search('N9K') - debug: msg="END connection={{ ansible_connection }} nxos_vlan sanity test"