214 lines
4.9 KiB
YAML
214 lines
4.9 KiB
YAML
|
---
|
||
|
- debug: msg="START cli/basic.yaml on connection={{ ansible_connection }}"
|
||
|
|
||
|
#- set_fact: switch_type="{{ switch_type }}"
|
||
|
|
||
|
- block:
|
||
|
|
||
|
- name: setup - remove vlan used in test
|
||
|
cnos_config:
|
||
|
lines:
|
||
|
- no vlan 100
|
||
|
- no vlan 200
|
||
|
- no vlan 300
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- name: setup - remove switchport settings on interfaces used in test
|
||
|
cnos_config:
|
||
|
lines:
|
||
|
- switchport mode access
|
||
|
- no switchport access vlan
|
||
|
provider: "{{ cli }}"
|
||
|
parents: "{{ item }}"
|
||
|
loop:
|
||
|
- interface ethernet1/33
|
||
|
- interface ethernet1/44
|
||
|
|
||
|
- name: create vlan
|
||
|
cnos_vlan: &create
|
||
|
vlan_id: 100
|
||
|
name: test-vlan
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'vlan 100' in result.commands"
|
||
|
- "'name test-vlan' in result.commands"
|
||
|
|
||
|
- name: create vlan(idempotence)
|
||
|
cnos_vlan: *create
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: Add interfaces to vlan
|
||
|
cnos_vlan: &interfaces
|
||
|
vlan_id: 100
|
||
|
interfaces:
|
||
|
- Ethernet1/33
|
||
|
- Ethernet1/44
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'interface Ethernet1/33' in result.commands"
|
||
|
- "'switchport mode access' in result.commands"
|
||
|
- "'switchport access vlan 100' in result.commands"
|
||
|
- "'interface Ethernet1/44' in result.commands"
|
||
|
- "'switchport mode access' in result.commands"
|
||
|
- "'switchport access vlan 100' in result.commands"
|
||
|
|
||
|
- name: Add interfaces to vlan(idempotence)
|
||
|
cnos_vlan: *interfaces
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: Remove interface from vlan
|
||
|
cnos_vlan: &single_int
|
||
|
vlan_id: 100
|
||
|
interfaces:
|
||
|
- Ethernet1/33
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'vlan 100' in result.commands"
|
||
|
# - "'interface Ethernet1/33' in result.commands"
|
||
|
- "'switchport mode access' in result.commands"
|
||
|
- "'no switchport access vlan' in result.commands"
|
||
|
|
||
|
- name: Remove interface from vlan(idempotence)
|
||
|
cnos_vlan: *single_int
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: Suspend vlan
|
||
|
cnos_vlan:
|
||
|
vlan_id: 100
|
||
|
state: suspend
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'vlan 100' in result.commands"
|
||
|
- "'state suspend' in result.commands"
|
||
|
|
||
|
- name: Unsuspend vlan
|
||
|
cnos_vlan:
|
||
|
vlan_id: 100
|
||
|
state: active
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'vlan 100' in result.commands"
|
||
|
- "'state active' in result.commands"
|
||
|
|
||
|
- name: delete vlan
|
||
|
cnos_vlan: &delete
|
||
|
vlan_id: 100
|
||
|
provider: "{{ cli }}"
|
||
|
state: absent
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'no vlan 100' in result.commands"
|
||
|
|
||
|
- name: delete vlan(idempotence)
|
||
|
cnos_vlan: *delete
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: create vlans using aggregate
|
||
|
cnos_vlan: &create_aggregate
|
||
|
aggregate:
|
||
|
- { vlan_id: 200, name: vlan-200 }
|
||
|
- { vlan_id: 300, name: vlan-300 }
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'vlan 200' in result.commands"
|
||
|
- "'name vlan-200' in result.commands"
|
||
|
- "'vlan 300' in result.commands"
|
||
|
- "'name vlan-300' in result.commands"
|
||
|
|
||
|
- name: create vlans using aggregate(idempotence)
|
||
|
cnos_vlan: *create_aggregate
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: delete vlans using aggregate
|
||
|
cnos_vlan: &delete_aggregate
|
||
|
aggregate:
|
||
|
- { vlan_id: 200, name: vlan-200 }
|
||
|
- { vlan_id: 300, name: vlan-300 }
|
||
|
state: absent
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
- "'no vlan 200' in result.commands"
|
||
|
- "'no vlan 300' in result.commands"
|
||
|
|
||
|
- name: delete vlans using aggregate(idempotence)
|
||
|
cnos_vlan: *delete_aggregate
|
||
|
register: result
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: teardown(part1)
|
||
|
cnos_config:
|
||
|
lines:
|
||
|
- no vlan 100
|
||
|
- no vlan 200
|
||
|
- no vlan 300
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- name: teardown(part2)
|
||
|
cnos_config:
|
||
|
lines:
|
||
|
- switchport mode access
|
||
|
- no switchport access vlan
|
||
|
provider: "{{ cli }}"
|
||
|
parents: "{{ item }}"
|
||
|
loop:
|
||
|
- interface Ethernet1/33
|
||
|
- interface Ethernet1/44
|
||
|
|
||
|
# when: switch_type == 'L2'
|
||
|
|
||
|
- debug: msg="END cli/basic.yaml on connection={{ ansible_connection }}"
|