ansible/test/integration/targets/eos_vlan/tests/cli/basic.yaml
Ganesh Nalawade c386ae9498
Fix eos_vrf and eos_vlan interfaces param idempotent issue (#34921)
Fixes # 34917

*  Remove spaces from in between interface name
*  Convert interface name to lower case as interface name
   is case insensitive wrt configuring on remote device.
2018-01-16 17:46:14 +05:30

280 lines
7 KiB
YAML

---
- name: setup - remove vlans used in test
eos_config:
lines:
- no vlan 4000
- no vlan 4001
- no vlan 4002
authorize: yes
provider: "{{ cli }}"
become: yes
- name: setup - remove switchport settings on interface Ethernet1 used in test
eos_config:
lines:
- switchport
- no switchport access vlan 4000
parents: interface Ethernet1
authorize: yes
provider: "{{ cli }}"
become: yes
- name: setup - remove switchport settings on interface Ethernet2 used in test
eos_config:
lines:
- switchport
- no switchport access vlan 4000
parents: interface Ethernet2
authorize: yes
provider: "{{ cli }}"
become: yes
- name: Create vlan
eos_vlan:
vlan_id: 4000
name: vlan-4000
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 4000' in result.commands"
- "'name vlan-4000' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Create vlan again (idempotent)
eos_vlan:
vlan_id: 4000
name: vlan-4000
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: Change vlan name and state
eos_vlan:
vlan_id: 4000
name: vlan-4000-new
state: suspend
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 4000' in result.commands"
- "'name vlan-4000-new' in result.commands"
- "'state suspend' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Change vlan name and state again (idempotent)
eos_vlan:
vlan_id: 4000
name: vlan-4000-new
state: suspend
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: Unsuspend vlan
eos_vlan:
vlan_id: 4000
state: active
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 4000' in result.commands"
- "'state active' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Add interfaces to vlan
eos_vlan:
vlan_id: 4000
state: present
interfaces:
- Ethernet1
- Ethernet2
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 4000' in result.commands"
- "'interface ethernet1' in result.commands"
- "'switchport access vlan 4000' in result.commands"
- "'interface ethernet2' in result.commands"
- "'switchport access vlan 4000' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Add interfaces to vlan again (idempotent)
eos_vlan:
vlan_id: 4000
state: present
interfaces:
- ethernet 1 # interface name modified to test case insensitive and space scenario
- ethernet 2 # interface name modified to test case insensitive and space scenario
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: Remove interface from vlan
eos_vlan:
vlan_id: 4000
state: present
interfaces:
- Ethernet1
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 4000' in result.commands"
- "'interface ethernet2' in result.commands"
- "'no switchport access vlan 4000' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Remove interface from vlan again (idempotent)
eos_vlan:
vlan_id: 4000
state: present
interfaces:
- ethernet 1 # interface name modified to handle case insensitive and space scenario
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 vlans
eos_vlan:
aggregate:
- {vlan_id: 4000, state: absent}
- {vlan_id: 4001, name: vlan-4001}
state: present
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'no vlan 4000' in result.commands"
- "'vlan 4001' in result.commands"
- "'name vlan-4001' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Create aggregate of vlans again (idempotent)
eos_vlan:
aggregate:
- {vlan_id: 4000, state: absent}
- {vlan_id: 4001, name: vlan-4001}
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 vlan with purge
eos_vlan:
aggregate:
- {vlan_id: 4002, name: vlan-4002}
name: vlan-4002
state: present
purge: yes
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- "result.changed == true"
- "'no vlan 4001' in result.commands"
- "'vlan 4002' in result.commands"
- "'name vlan-4002' in result.commands"
# Ensure sessions contains epoc. Will fail after 18th May 2033
- "'ansible_1' in result.session_name"
- name: Create vlan with purge
eos_vlan:
aggregate:
- {vlan_id: 4002, name: vlan-4002}
name: vlan-4002
state: present
purge: yes
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"
# FIXME add in tests for everything defined in docs
# FIXME Test state:absent + test:
# FIXME Without powers ensure "privileged mode required"