--- - set_fact: testint1="{{ nxos_int1 }}" - set_fact: testint2="{{ nxos_int2 }}" - name: setup - remove vlan used in test nxos_config: lines: - no vlan 100 provider: "{{ connection }}" ignore_errors: yes - name: setup - remove vlan from interfaces used in test(part1) nxos_config: lines: - no switchport access vlan 100 parents: switchport before: "interface {{ testint1 }}" provider: "{{ connection }}" - name: setup - remove vlan from interfaces used in test(part2) nxos_config: lines: - no switchport access vlan 100 parents: switchport before: "interface {{ testint2 }}" provider: "{{ connection }}" - name: create vlan nxos_vlan: vlan_id: 100 provider: "{{ connection }}" - name: Add interfaces to vlan and check intent (config + intent) nxos_vlan: &interfaces vlan_id: 100 interfaces: - "{{ testint1 }}" - "{{ testint2 }}" associated_interfaces: - "{{ testint1 }}" - "{{ testint2 }}" provider: "{{ connection }}" register: result - assert: that: - 'result.changed == true' - '"interface {{ testint1 }}" in result.commands' - '"switchport" in result.commands' - '"switchport mode access" in result.commands' - '"switchport access vlan 100" in result.commands' - '"interface {{ testint2 }}" in result.commands' - '"switchport" in result.commands' - '"switchport mode access" in result.commands' - '"switchport access vlan 100" in result.commands' - name: Add interfaces to vlan(idempotence) nxos_vlan: *interfaces register: result - assert: that: - 'result.changed == false' - name: Check interfaces intent nxos_vlan: vlan_id: 100 associated_interfaces: - "{{ testint1 }}" - "{{ testint2 }}" provider: "{{ connection }}" register: result - assert: that: - "result.failed == false" - name: Check interfaces intent fail nxos_vlan: vlan_id: 100 associated_interfaces: - test provider: "{{ connection }}" register: result ignore_errors: yes - assert: that: - "result.failed == True" - name: Remove interface from vlan nxos_vlan: &single_int vlan_id: 100 interfaces: - "{{ testint2 }}" provider: "{{ connection }}" register: result - assert: that: - 'result.changed == true' - '"interface {{ testint1 }}" in result.commands' - '"switchport" in result.commands' - '"switchport mode access" in result.commands' - '"no switchport access vlan 100" in result.commands' - name: Remove interface from vlan(idempotence) nxos_vlan: *single_int register: result - assert: that: - 'result.changed == false' - name: teardown(part1) nxos_config: lines: - no vlan 100 provider: "{{ connection }}" - name: teardown - remove vlan from interfaces used in test(part1) nxos_config: lines: - no switchport access vlan 100 parents: switchport before: "interface {{ testint1 }}" provider: "{{ connection }}" - name: teardown - remove vlan from interfaces used in test(part2) nxos_config: lines: - no switchport access vlan 100 parents: switchport before: "interface {{ testint2 }}" provider: "{{ connection }}"