ansible/test/integration/targets/eos_vrf/tests/cli/basic.yaml
Ganesh Nalawade d60eac9bc4
Decouple config and state check in vlan and vrf network modules (#36386) (#36704)
* 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

(cherry picked from commit 5a6b893240)
2018-02-26 10:16:39 +05:30

313 lines
7.3 KiB
YAML

---
- name: setup - remove vrf
eos_vrf:
name: "{{ item }}"
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
with_items:
- test
- test1
- test2
- test3
- test4
- test5
- name: Create vrf
eos_vrf:
name: test
rd: 1:200
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vrf definition test' in result.commands"
- "'rd 1:200' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Create vrf again (idempotent)
eos_vrf:
name: test
rd: 1:200
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == false"
- "result.commands | length == 0"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "result.session_name is not defined"
- name: Modify rd
eos_vrf:
name: test
rd: 1:201
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vrf definition test' in result.commands"
- "'rd 1:201' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Modify rd again (idempotent)
eos_vrf:
name: test
rd: 1:201
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == false"
- "result.commands | length == 0"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "result.session_name is not defined"
- name: Add Ethernet2 to vrf and check interface assigned state
eos_vrf:
name: test
rd: 1:201
state: present
authorize: yes
interfaces:
- Ethernet2
associated_interfaces:
- Ethernet2
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface ethernet2' in result.commands"
- "'vrf forwarding test' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Add Ethernet2 to vrf again (idempotent)
eos_vrf:
name: test
rd: 1:201
state: present
authorize: yes
interfaces:
- ethernet 2 # interface name modified to test case insensitive and space scenario
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == false"
- "result.commands | length == 0"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'session_name' not in result.commands"
- name: vrf interface intent fail
eos_vrf:
name: test
state: present
authorize: yes
associated_interfaces:
- test
provider: "{{ cli }}"
become: yes
register: result
ignore_errors: yes
- assert:
that:
- "result.failed == True"
- name: Add multiple interfaces to vrf
eos_vrf:
name: test1
rd: 1:202
state: present
authorize: yes
interfaces:
- loopback10
- loopback11
- loopback12
- loopback13
- loopback14
- loopback15
- loopback1000
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface loopback10' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback11' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback12' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback13' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback14' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback15' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'interface loopback1000' in result.commands"
- "'vrf forwarding test1' in result.commands"
- "'ansible_1' in result.session_name"
- name: Add multiple interfaces to vrf (idempotent)
eos_vrf:
name: test1
rd: 1:202
state: present
authorize: yes
interfaces:
- loopback10
- loopback11
- loopback12
- loopback13
- loopback14
- loopback15
- loopback1000
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == false"
- "result.commands | length == 0"
- name: Create aggregate of VRFs
eos_vrf:
aggregate:
- { name: test2, rd: "1:202" }
- { name: test3, rd: "1:203" }
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vrf definition test2' in result.commands"
- "'rd 1:202' in result.commands"
- "'vrf definition test3' in result.commands"
- "'rd 1:203' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Create aggregate of VRFs again (idempotent)
eos_vrf:
aggregate:
- { name: test2, rd: "1:202" }
- { name: test3, rd: "1:203" }
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == false"
- "result.commands | length == 0"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "result.session_name is not defined"
- name: Create aggregate of VRFs with purge
eos_vrf:
aggregate:
- { name: test4, rd: "1:204" }
- { name: test5, rd: "1:205" }
state: present
purge: yes
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vrf definition test4' in result.commands"
- "'rd 1:204' in result.commands"
- "'vrf definition test5' in result.commands"
- "'rd 1:205' in result.commands"
- "'no vrf definition test' in result.commands"
- "'no vrf definition test2' in result.commands"
- "'no vrf definition test3' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Delete VRFs
eos_vrf:
name: test
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
- name: Delete VRFs again (idempotent)
eos_vrf:
name: test
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
- name: Delete aggregate of VRFs
eos_vrf:
aggregate:
- { name: test1 }
- { name: test2 }
- { name: test3 }
- { name: test4 }
- { name: test5 }
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
- name: Delete VRFs again (idempotent)
eos_vrf:
aggregate:
- { name: test1 }
- { name: test2 }
- { name: test3 }
- { name: test4 }
- { name: test5 }
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
# FIXME add in tests for everything defined in docs
# FIXME Test state:absent + test:
# FIXME Without powers ensure "privileged mode required"