ansible/test/integration/targets/nxos_vrf/tests/common/intent.yaml
Ganesh Nalawade 5a6b893240
Decouple config and state check in vlan and vrf network modules (#36386)
* 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
2018-02-26 09:23:54 +05:30

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"