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_static_route/tests/common/sanity.yaml

209 lines
5.1 KiB
YAML

---
- debug: msg="START connection={{ ansible_connection }} nxos_static_route sanity test"
- debug: msg="Using provider={{ connection.transport }}"
when: ansible_connection == "local"
# Flag used to test the track feature. Some platforms
# don't support it so this flag will be toggled accordingly.
- set_fact: test_track_feature="true"
- name: configure track
nxos_config:
lines:
- track 1 ip sla 1
provider: "{{ connection }}"
register: cmd_result
ignore_errors: yes
- debug: msg="cmd result {{ cmd_result }}"
- set_fact: test_track_feature="false"
when: cmd_result.failed
- debug: msg="Test Track Feature {{ test_track_feature }}"
- name: Setup and teardown, remove test routes if present
nxos_static_route: &setup_teardown
aggregate:
- { prefix: "192.168.1.164/32", next_hop: "192.0.2.3" }
- { prefix: "192.168.20.64/24", next_hop: "192.0.2.3" }
- { prefix: "192.168.22.64/24", next_hop: "192.0.2.3" }
- { prefix: "192.168.24.64/24", next_hop: "192.0.2.3" }
vrf: "{{ item }}"
provider: "{{ connection }}"
state: absent
with_items: "{{ vrfs }}"
ignore_errors: yes
- name: Setup noise routes to ensure testing while non-test routes present
nxos_static_route:
prefix: "192.168.1.164/32"
next_hop: "192.0.2.3"
vrf: "{{ item }}"
provider: "{{ connection }}"
state: present
with_items: "{{ vrfs }}"
- block:
- name: create static route
nxos_static_route: &configure_static
prefix: "192.168.20.64/24"
next_hop: "192.0.2.3"
route_name: testing
pref: 100
tag: 5500
vrf: "{{ item }}"
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: "Conf static Idempotence"
nxos_static_route: *configure_static
with_items: "{{ vrfs }}"
register: result
- assert: &false
that:
- "result.changed == false"
- name: change static route
nxos_static_route: &change_static
prefix: "192.168.20.64/24"
next_hop: "192.0.2.3"
route_name: default
pref: 10
tag: default
vrf: "{{ item }}"
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Change Idempotence"
nxos_static_route: *change_static
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: configure static route with track
nxos_static_route: &config_static_track
prefix: "192.168.20.64/24"
next_hop: "192.0.2.3"
route_name: default
pref: 10
tag: default
track: 1
vrf: "{{ item }}"
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
when: test_track_feature
- assert: *true
when: test_track_feature
- name: "Config track Idempotence"
nxos_static_route: *config_static_track
with_items: "{{ vrfs }}"
register: result
when: test_track_feature
- assert: *false
when: test_track_feature
- name: configure static route with not configured track
nxos_static_route:
prefix: "192.168.20.64/24"
next_hop: "192.0.2.3"
route_name: default
pref: 10
tag: default
track: 2
vrf: "{{ item }}"
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
ignore_errors: yes
when: test_track_feature
- assert:
that:
- "result.failed == True"
when: test_track_feature
- name: remove static route
nxos_static_route: &remove_static
prefix: "192.168.20.64/24"
next_hop: "192.0.2.3"
route_name: testing
pref: 100
vrf: "{{ item }}"
provider: "{{ connection }}"
state: absent
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Remove Idempotence"
nxos_static_route: *remove_static
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: configure static route(aggregate)
nxos_static_route: &conf_agg
aggregate:
- { prefix: "192.168.22.64/24", next_hop: "192.0.2.3" }
- { prefix: "192.168.24.64/24", next_hop: "192.0.2.3" }
provider: "{{ connection }}"
register: result
- assert: *true
- name: configure static route aggregate(Idempotence)
nxos_static_route: *conf_agg
register: result
- assert: *false
- name: remove static route aggregate
nxos_static_route: &remove_agg
aggregate:
- { prefix: "192.168.22.64/24", next_hop: "192.0.2.3" }
- { prefix: "192.168.24.64/24", next_hop: "192.0.2.3" }
provider: "{{ connection }}"
state: absent
register: result
- assert: *true
- name: remove static route aggregate(Idempotence)
nxos_static_route: *remove_agg
register: result
- assert: *false
always:
- name: remove track
nxos_config:
lines:
- no track 1
provider: "{{ connection }}"
ignore_errors: yes
when: test_track_feature
- name: teardown test routes
nxos_static_route: *setup_teardown
with_items: "{{ vrfs }}"
ignore_errors: yes
- debug: msg="END connection={{ ansible_connection }} nxos_static_route sanity test"