c07b30951f
Turns out on devices where only Gigabit is available (like our csr nodes in CI), duplex is not configurable, thus the test fail. Removing, since we are testing modification of other properties like description and mtu and have good coverage.
251 lines
6.3 KiB
YAML
251 lines
6.3 KiB
YAML
---
|
|
- debug: msg="START ios_interface cli/basic.yaml"
|
|
|
|
- name: Run show version
|
|
ios_command:
|
|
commands: show version
|
|
authorize: yes
|
|
register: show_version_result
|
|
|
|
- name: Set test interface to GigabitEthernet0/1 if we are on Cisco IOS
|
|
set_fact: test_interface=GigabitEthernet0/1
|
|
when: "'Cisco IOS' in show_version_result.stdout[0]"
|
|
|
|
- name: Set test interface 2 to GigabitEthernet0/2 if we are on Cisco IOS
|
|
set_fact: test_interface2=GigabitEthernet0/2
|
|
when: "'Cisco IOS' in show_version_result.stdout[0]"
|
|
|
|
- name: Set test interface to GigabitEthernet2 if we are on Cisco IOS-XE
|
|
set_fact: test_interface=GigabitEthernet2
|
|
when: "'Cisco IOS-XE' in show_version_result.stdout[0]"
|
|
|
|
- name: Set test interface 2 to GigabitEthernet3 if we are on Cisco IOS-XE
|
|
set_fact: test_interface2=GigabitEthernet3
|
|
when: "'Cisco IOS-XE' in show_version_result.stdout[0]"
|
|
|
|
- name: Configure interface (setup)
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-1
|
|
speed: 1000
|
|
mtu: 256
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- name: Configure interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-initial
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface-initial" in result.commands'
|
|
|
|
- name: Confgure interface (idempotent)
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-initial
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Confgure interface parameters
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface
|
|
mtu: 512
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface" in result.commands'
|
|
- '"mtu 512" in result.commands'
|
|
|
|
- name: Change interface parameters
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-1
|
|
mtu: 256
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface-1" in result.commands'
|
|
- '"mtu 256" in result.commands'
|
|
|
|
- name: Disable interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
enabled: False
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
|
|
- name: Enable interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
enabled: True
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
|
|
- name: Confgure second interface (setup)
|
|
ios_interface:
|
|
name: "{{ test_interface2 }}"
|
|
description: test-interface-initial
|
|
speed: 1000
|
|
mtu: 516
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- name: Add interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- "{ name: {{ test_interface }}, mtu: 256, description: test-interface-1 }"
|
|
- "{ name: {{ test_interface2 }}, mtu: 516, description: test-interface-2 }"
|
|
speed: 1000
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface-1" in result.commands'
|
|
- '"mtu 256" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"description test-interface-2" in result.commands'
|
|
- '"mtu 516" in result.commands'
|
|
|
|
- name: Add interface aggregate (idempotent)
|
|
ios_interface:
|
|
aggregate:
|
|
- "{ name: {{ test_interface }}, mtu: 256, description: test-interface-1 }"
|
|
- "{ name: {{ test_interface2 }}, mtu: 516, description: test-interface-2 }"
|
|
speed: 1000
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Disable interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- "name: {{ test_interface }}"
|
|
- "name: {{ test_interface2 }}"
|
|
enabled: False
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
|
|
- name: Enable interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- "name: {{ test_interface }}"
|
|
- "name: {{ test_interface2 }}"
|
|
enabled: True
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
|
|
- name: loopback interface setup
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
|
|
- name: Create loopback interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface Loopback9" in result.commands'
|
|
- '"interface Loopback10" in result.commands'
|
|
|
|
- name: Delete loopback interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"no interface Loopback9" in result.commands'
|
|
- '"no interface Loopback10" in result.commands'
|
|
|
|
- name: Delete loopback interface aggregate (idempotent)
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- debug: msg="END ios_interface cli/basic.yaml"
|