5a6b893240
* Decouple config and state check in {network_os }_vlan and { network_os }_vrf modules Fixes #35567 Fixes #34754 `interfaces` option is used for configuration as well as operational state check. If interface is configured to given vlan or vrf but if operational state of interface is disabled it results in module failure. Fix is to decouple same option usage for config and state. With this fix `interfaces` is used as config option and a new option named `associated_interfaces` will be used for intent check for assigned interfaces. * Fix CI failures * Fix review comment * Fixed integration test failure
199 lines
4.8 KiB
YAML
199 lines
4.8 KiB
YAML
---
|
|
- debug: msg="START connection={{ ansible_connection }} nxos_vrf intent & aggregate test"
|
|
- debug: msg="Using provider={{ connection.transport }}"
|
|
when: ansible_connection == "local"
|
|
|
|
- set_fact: testint1="{{ nxos_int1 }}"
|
|
- set_fact: testint2="{{ nxos_int2 }}"
|
|
|
|
- name: setup - remove vrf from interfaces used in test(part1)
|
|
nxos_config:
|
|
lines:
|
|
- no vrf member test1
|
|
parents: no switchport
|
|
before: "interface {{ testint1 }}"
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - remove vrf from interfaces used in test(part2)
|
|
nxos_config:
|
|
lines:
|
|
- no vrf member test1
|
|
parents: no switchport
|
|
before: "interface {{ testint2 }}"
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - delete VRF test1 used in test
|
|
nxos_config:
|
|
lines:
|
|
- no vrf context test1
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - remove VRF test2 used in test
|
|
nxos_config:
|
|
lines:
|
|
- no vrf context test2
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: aggregate definitions of VRFs
|
|
nxos_vrf: &create
|
|
aggregate:
|
|
- { name: test1, description: Configured by Ansible }
|
|
- { name: test2, description: Testing, admin_state: down }
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"vrf context test1" in result.commands'
|
|
- '"description Configured by Ansible" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
- '"vrf context test2" in result.commands'
|
|
- '"description Testing" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
|
|
- name: aggregate definitions of VRFs(Idempotence)
|
|
nxos_vrf: *create
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
|
|
- name: Assign interfaces to VRF (Config + intent)
|
|
nxos_vrf: &interfaces
|
|
name: test1
|
|
interfaces:
|
|
- "{{ testint1 }}"
|
|
- "{{ testint2 }}"
|
|
associated_interfaces:
|
|
- "{{ testint1 }}"
|
|
- "{{ testint2 }}"
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- "result.failed == false"
|
|
- '"interface {{ testint1 }}" in result.commands'
|
|
- '"vrf member test1" in result.commands'
|
|
- '"interface {{ testint2 }}" in result.commands'
|
|
- '"vrf member test1" in result.commands'
|
|
|
|
- name: Assign interfaces to vrf(Idempotence)
|
|
nxos_vrf: *interfaces
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Check interfaces assigned to VRF (intent)
|
|
nxos_vrf:
|
|
name: test1
|
|
associated_interfaces:
|
|
- "{{ testint1 }}"
|
|
- "{{ testint2 }}"
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result.failed == false"
|
|
|
|
- name: Assign interfaces to VRF (intent fail)
|
|
nxos_vrf:
|
|
name: test1
|
|
associated_interfaces:
|
|
- test
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
ignore_errors: yes
|
|
|
|
- assert:
|
|
that:
|
|
- "result.failed == True"
|
|
|
|
- name: Remove interface from vrf
|
|
nxos_vrf: &single_int
|
|
name: test1
|
|
interfaces:
|
|
- "{{ testint2 }}"
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ testint1 }}" in result.commands'
|
|
- '"no vrf member test1" in result.commands'
|
|
|
|
- name: Remove interface from vrf(idempotence)
|
|
nxos_vrf: *single_int
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Delete VRFs
|
|
nxos_vrf: &delete
|
|
aggregate:
|
|
- { name: test1, description: Configured by Ansible }
|
|
- { name: test2, description: Testing, admin_state: down }
|
|
state: absent
|
|
provider: "{{ connection }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"no vrf context test1" in result.commands'
|
|
- '"no vrf context test2" in result.commands'
|
|
|
|
- name: Delete VRFs(Idempotence)
|
|
nxos_vrf: *delete
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
|
|
- name: setup - remove vrf from interfaces used in test(part1)
|
|
nxos_config:
|
|
lines:
|
|
- no vrf member test1
|
|
parents: no switchport
|
|
before: "interface {{ testint1 }}"
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - remove vrf from interfaces used in test(part2)
|
|
nxos_config:
|
|
lines:
|
|
- no vrf member test1
|
|
parents: no switchport
|
|
before: "interface {{ testint2 }}"
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - delete VRF test1 used in test
|
|
nxos_config:
|
|
lines:
|
|
- no vrf context test1
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- name: setup - remove VRF test2 used in test
|
|
nxos_config:
|
|
lines:
|
|
- no vrf context test2
|
|
provider: "{{ connection }}"
|
|
ignore_errors: yes
|
|
|
|
- debug: msg="END connection={{ ansible_connection }} nxos_vrf intent & aggregate test"
|