mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 13:20:23 -07:00
WIP Implement declarative intent arguments on eos_vlan (#28270)
Implement declarative intent arguments on eos_vlan
This commit is contained in:
parent
2e211078ce
commit
5a6f3ebed1
2 changed files with 353 additions and 68 deletions
|
@ -1,37 +1,53 @@
|
|||
---
|
||||
|
||||
- name: setup - remove vlan
|
||||
eos_vlan:
|
||||
vlan_id: 4000
|
||||
name: test-vlan
|
||||
state: absent
|
||||
- name: setup - remove vlans used in test
|
||||
eos_config:
|
||||
lines:
|
||||
- no vlan 4000
|
||||
- no vlan 4001
|
||||
- no vlan 4002
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- 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 }}"
|
||||
|
||||
- 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 }}"
|
||||
|
||||
- name: Create vlan
|
||||
eos_vlan:
|
||||
vlan_id: 4000
|
||||
name: test-vlan
|
||||
name: vlan-4000
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- debug:
|
||||
msg: "{{ result }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'vlan 4000' in result.commands"
|
||||
- "'name test-vlan' 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: test-vlan
|
||||
name: vlan-4000
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
@ -47,7 +63,7 @@
|
|||
- name: Change vlan name and state
|
||||
eos_vlan:
|
||||
vlan_id: 4000
|
||||
name: test-vlan2
|
||||
name: vlan-4000-new
|
||||
state: suspend
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
@ -57,12 +73,192 @@
|
|||
that:
|
||||
- "result.changed == true"
|
||||
- "'vlan 4000' in result.commands"
|
||||
- "'name test-vlan2' 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 }}"
|
||||
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 }}"
|
||||
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 }}"
|
||||
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:
|
||||
- Ethernet1
|
||||
- Ethernet2
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
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 }}"
|
||||
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:
|
||||
- Ethernet1
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
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 }}"
|
||||
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 }}"
|
||||
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 }}"
|
||||
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 }}"
|
||||
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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue