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

340 lines
7.8 KiB
YAML

---
- debug: msg="START connection={{ ansible_connection }} nxos_bgp_af sanity test"
- debug: msg="Using provider={{ connection.transport }}"
when: ansible_connection == "local"
- set_fact: advertise_l2vpn_evpn="true"
when: platform is search('N9K')
- name: "Enable feature BGP"
nxos_feature:
feature: bgp
state: enabled
provider: "{{ connection }}"
ignore_errors: yes
- name: "Enable feature nv overlay"
nxos_feature:
feature: nv overlay
state: enabled
provider: "{{ connection }}"
ignore_errors: yes
- name: "Setup"
nxos_bgp: &remove
asn: 65535
state: absent
provider: "{{ connection }}"
ignore_errors: yes
- block:
- name: "Enable nv overlay evpn"
nxos_config:
lines:
- nv overlay evpn
provider: "{{ connection }}"
when: platform is search('N9K')
- name: "Configure BGP_AF 1"
nxos_bgp_af: &configure1
asn: 65535
vrf: testing
afi: ipv4
safi: unicast
advertise_l2vpn_evpn: "{{advertise_l2vpn_evpn|default(omit)}}"
state: present
provider: "{{ connection }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: "Check Idempotence"
nxos_bgp_af: *configure1
register: result
- assert: &false
that:
- "result.changed == false"
- name: "Remove BGP"
nxos_bgp_af: &remove_af
asn: 65535
vrf: testing
afi: ipv4
safi: unicast
state: absent
provider: "{{ connection }}"
register: result
- assert: *true
- name: "Configure BGP_AF 2"
nxos_bgp_af: &configure2
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampening_state: True
additional_paths_install: true
additional_paths_receive: true
additional_paths_selection: RouteMap
additional_paths_send: true
client_to_client: False
default_information_originate: true
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configure2
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Configure BGP_AF def2"
nxos_bgp_af: &configuredef2
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampening_state: False
additional_paths_install: False
additional_paths_receive: False
additional_paths_selection: default
additional_paths_send: False
client_to_client: True
default_information_originate: False
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configuredef2
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp_af: &remove_af_vrf
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
state: absent
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Configure BGP_AF 3"
nxos_bgp_af: &configure3
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampening_routemap: 'abcd'
default_metric: 50
distance_ebgp: 30
distance_ibgp: 60
distance_local: 90
maximum_paths: 9
maximum_paths_ibgp: 9
next_hop_route_map: RouteMap
suppress_inactive: true
table_map: RouteMap
table_map_filter: true
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configure3
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Configure BGP_AF def3"
nxos_bgp_af: &configuredef3
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampening_routemap: default
default_metric: default
distance_ebgp: default
distance_ibgp: default
distance_local: default
maximum_paths: default
maximum_paths_ibgp: default
next_hop_route_map: default
suppress_inactive: False
table_map: default
table_map_filter: False
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configuredef3
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp_af: *remove_af_vrf
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Configure BGP_AF 4"
nxos_bgp_af: &configure4
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampen_igp_metric: 200
dampening_half_time: 1
dampening_max_suppress_time: 4
dampening_reuse_time: 2
dampening_suppress_time: 3
inject_map: [['lax_inject_map', 'lax_exist_map'], ['nyc_inject_map', 'nyc_exist_map', 'copy-attributes'], ['fsd_inject_map', 'fsd_exist_map']]
networks: [['10.0.0.0/16', 'routemap_LA'], ['192.168.1.1/32', 'Chicago'], ['192.168.2.0/24'], ['192.168.3.0/24', 'routemap_NYC']]
redistribute: [['direct', 'rm_direct'], ['lisp', 'rm_lisp']]
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configure4
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Configure BGP_AF 5"
nxos_bgp_af: &configure5
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampen_igp_metric: 300
dampening_half_time: 10
dampening_max_suppress_time: 40
dampening_reuse_time: 20
dampening_suppress_time: 30
inject_map: [['fsd_inject_map', 'fsd_exist_map']]
networks: [['192.168.2.0/24']]
redistribute: [['lisp', 'rm_lisp']]
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configure5
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Configure BGP_AF def5"
nxos_bgp_af: &configuredef5
asn: 65535
vrf: "{{ item }}"
afi: ipv4
safi: unicast
dampen_igp_metric: default
dampening_half_time: default
dampening_max_suppress_time: default
dampening_reuse_time: default
dampening_suppress_time: default
inject_map: default
networks: default
redistribute: default
state: present
provider: "{{ connection }}"
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *configuredef5
with_items: "{{ vrfs }}"
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp_af: *remove_af_vrf
with_items: "{{ vrfs }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_af: *remove_af_vrf
with_items: "{{ vrfs }}"
register: result
- assert: *false
rescue:
- name: "Cleanup BGP"
nxos_bgp: *remove
ignore_errors: yes
always:
- name: "Disable feature bgp"
nxos_feature: &disable_bgp
feature: bgp
state: disabled
provider: "{{ connection }}"
- name: "Disable feature nv overlay"
nxos_feature: &disable_nvoverlay
feature: nv overlay
state: disabled
provider: "{{ connection }}"
ignore_errors: yes
# Some platforms will timeout if the
# 'no nv overlay evpn' command is sent
# too quickly following bgp disablement.
- pause:
seconds: 5
- name: "Remove nv overlay evpn"
nxos_config:
lines:
- no nv overlay evpn
provider: "{{ connection }}"
when: platform is search('N9K')
- debug: msg="END connection={{ ansible_connection }} nxos_bgp_af sanity test"