You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/ios_vlan/tests/cli/basic.yaml

240 lines
5.5 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
ios_config:
lines:
- no vlan 100
- no vlan 200
- no vlan 300
provider: "{{ cli }}"
- name: setup - remove switchport settings on interfaces used in test
ios_config:
lines:
- switchport mode access
- no switchport access vlan 100
provider: "{{ cli }}"
parents: "{{ item }}"
loop:
- interface GigabitEthernet0/1
- interface GigabitEthernet0/2
- name: create vlan
ios_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)
ios_vlan: *create
register: result
- assert:
that:
- "result.changed == false"
- name: Add interfaces to vlan
ios_vlan: &interfaces
vlan_id: 100
interfaces:
- GigabitEthernet0/1
- GigabitEthernet0/2
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- "'interface GigabitEthernet0/1' in result.commands"
- "'switchport mode access' in result.commands"
- "'switchport access vlan 100' in result.commands"
- "'interface GigabitEthernet0/2' in result.commands"
- "'switchport mode access' in result.commands"
- "'switchport access vlan 100' in result.commands"
- name: Add interfaces to vlan(idempotence)
ios_vlan: *interfaces
register: result
- assert:
that:
- "result.changed == false"
- name: Check interface assigned to vrf (intent)
ios_vlan:
vlan_id: 100
associated_interfaces:
- GigabitEthernet0/1
- GigabitEthernet0/2
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.failed == false"
- name: Check interface assigned to vrf (fail)
ios_vlan:
vlan_id: 100
associated_interfaces:
- test
provider: "{{ cli }}"
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == True"
- name: Remove interface from vlan
ios_vlan: &single_int
vlan_id: 100
interfaces:
- GigabitEthernet0/1
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- "'vlan 100' in result.commands"
- "'interface GigabitEthernet0/2' in result.commands"
- "'switchport mode access' in result.commands"
- "'no switchport access vlan 100' in result.commands"
- name: Remove interface from vlan(idempotence)
ios_vlan: *single_int
register: result
- assert:
that:
- "result.changed == false"
- name: Suspend vlan
ios_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
ios_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
ios_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)
ios_vlan: *delete
register: result
- assert:
that:
- "result.changed == false"
- name: create vlans using aggregate
ios_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)
ios_vlan: *create_aggregate
register: result
- assert:
that:
- "result.changed == false"
- name: delete vlans using aggregate
ios_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)
ios_vlan: *delete_aggregate
register: result
- assert:
that:
- "result.changed == false"
- name: teardown(part1)
ios_config:
lines:
- no vlan 100
- no vlan 200
- no vlan 300
provider: "{{ cli }}"
- name: teardown(part2)
ios_config:
lines:
- switchport mode access
- no switchport access vlan 100
provider: "{{ cli }}"
parents: "{{ item }}"
loop:
- interface GigabitEthernet0/1
- interface GigabitEthernet0/2
when: switch_type == 'L2'
- debug: msg="END cli/basic.yaml on connection={{ ansible_connection }}"