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/nxos_l3_interfaces/tests/cli/replaced.yaml

118 lines
3.2 KiB
YAML

---
- debug:
msg: "Start nxos_l3_interfaces replaced integration tests connection={{ ansible_connection }}"
- set_fact:
test_int3: "{{ nxos_int3 }}"
subint3: "{{ nxos_int3 }}.42"
- name: setup1
cli_config: &cleanup
config: |
no system default switchport
default interface {{ test_int3 }}
interface {{ test_int3 }}
no switchport
ignore_errors: yes
- name: setup2 cleanup all L3 states on all interfaces
nxos_l3_interfaces:
state: deleted
- block:
- name: setup3
cli_config:
config: |
interface {{ subint3 }}
encapsulation dot1q 42
ip address 192.168.10.2/24
no ip redirects
ip unreachables
- name: Gather l3_interfaces facts
nxos_facts: &facts
gather_subset:
- '!all'
- '!min'
gather_network_resources: l3_interfaces
- name: Replaced
nxos_l3_interfaces: &replaced
config:
- name: "{{ subint3 }}"
dot1q: 442
# Note: device auto-disables redirects when secondaries are present
redirects: false
unreachables: false
ipv4:
- address: 192.168.20.2/24
tag: 5
- address: 192.168.200.2/24
secondary: True
state: replaced
register: result
- assert:
that:
- "result.before|length == (ansible_facts.network_resources.l3_interfaces|length|int - rsvd_intf_len|int)"
- "result.changed == true"
- "'interface {{ subint3 }}' in result.commands"
- "'encapsulation dot1q 442' in result.commands"
- "'no ip unreachables' in result.commands"
- "'ip address 192.168.20.2/24 tag 5' in result.commands"
- "'ip address 192.168.200.2/24 secondary' in result.commands"
- "result.commands|length == 5"
- name: Gather l3_interfaces post facts
nxos_facts: *facts
- assert:
that:
- "result.after|length == (ansible_facts.network_resources.l3_interfaces|length|int - rsvd_intf_len|int)"
- name: Idempotence - Replaced
nxos_l3_interfaces: *replaced
register: result
- assert:
that:
- "result.changed == false"
- "result.commands|length == 0"
- name: Replaced with no optional attrs specified
nxos_l3_interfaces: &replaced_no_attrs
config:
- name: "{{ subint3 }}"
state: replaced
register: result
- assert:
that:
- "result.changed == true"
- "'interface {{ subint3 }}' in result.commands"
- "'no encapsulation dot1q' in result.commands"
- "'no ip address' in result.commands"
- assert:
that:
# 'ip redirects' normally auto-enables due to rmv'ing the secondaries;
# this behavior is unreliable on legacy platforms thus command is explicit.
- "'ip redirects' in result.commands"
when: platform is match('N[3567]')
- name: Idempotence - Replaced with no attrs specified
nxos_l3_interfaces: *replaced_no_attrs
register: result
- assert:
that:
- "result.changed == false"
- "result.commands|length == 0"
always:
- name: teardown
cli_config:
config: |
no interface {{ subint3 }}
ignore_errors: yes