1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/nxos_vxlan_vtep/tests/common/sanity.yaml
Chris Van Heuveln cfe4477c10 nxos_vxlan_vtep: Add dependency checks (#53288)
* nxos_vxlan_vtep: Add dependency checks

Some of the N9k-specific attrs are failing due to hardware/feature/resources.

 * `global_suppress_arp`
   - dependency on TCAM resources

 * `global_mcast_group_L3`
   - hardware dependency on specific chassis/linecards
   - feature dependency on `ngmvpn`

 * `global_ingress_replication_bgp`
   - hardware dependency on specific chassis/linecards

Tested on N9k with/without TCAM resources, various N9k chassis, N7k, N6k. All 100% Pass.

* pylint
2019-03-08 10:33:54 +05:30

232 lines
6.3 KiB
YAML

---
- debug: msg="START connection={{ ansible_connection }} nxos_vxlan_vtep sanity test"
- debug: msg="Using provider={{ connection.transport }}"
when: ansible_connection == "local"
- block:
# N9K(v9.2+) specific attrs
- set_fact: global_mcast_group_L2="225.1.1.2"
- set_fact: def_global_mcast_group_L2="default"
# Layer 3 Tenant Routed Multicast (TRM) dependency.
# global_mcast_group_l3 / global_ingress_replication_bgp have a dependency on TRM.
# TRM requires specific 92/93/95 chassis and -EX/-FX line cards.
- block:
- set_fact: global_mcast_group_L3="225.1.1.1"
- set_fact: def_global_mcast_group_L3="default"
- set_fact: global_ingress_replication_bgp="true"
- set_fact: def_global_ingress_replication_bgp="false"
when: false # Manually change this to true when correct h/w is present
- name: "TCAM resource check for global_suppress_arp"
# GSA requires tcam resources. Skip these attrs when arp-ether size is 0.
# Note: TCAM changes require a switch reload.
# Sample Input: "Ingress ARP-Ether ACL [arp-ether] size = 256"
nxos_command:
commands:
- command: show hardware access-list tcam region | incl arp-ether | sed 's/.*size = *//'
output: text
connection: network_cli
register: tcam_state
- block:
- set_fact: global_suppress_arp="true"
- set_fact: def_global_suppress_arp="false"
when: tcam_state.stdout[0] != 0
when: platform is search('N9K') and (major_version is version('9.2', 'ge'))
- block:
- name: "Apply N7K specific setup config"
include: targets/nxos_vxlan_vtep/tasks/platform/n7k/setup.yaml
when: platform is match('N7K')
- name: "Enable feature nv overlay"
nxos_config:
commands:
- feature nv overlay
- nv overlay evpn
match: none
provider: "{{ connection }}"
- block:
- name: "Enable feature ngmvpn"
nxos_config:
commands:
- feature ngmvpn
match: none
provider: "{{ connection }}"
when: global_mcast_group_L3 is defined
- block:
- name: configure vxlan_vtep
nxos_vxlan_vtep: &configure9
interface: nve1
description: "abcd"
host_reachability: true
source_interface: Loopback0
source_interface_hold_down_time: 30
global_ingress_replication_bgp: "{{ global_ingress_replication_bgp|default(omit) }}"
global_suppress_arp: "{{ global_suppress_arp|default(omit) }}"
global_mcast_group_L3: "{{ global_mcast_group_L3|default(omit) }}"
shutdown: false
provider: "{{ connection }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: "Conf Idempotence"
nxos_vxlan_vtep: *configure9
register: result
- assert: &false
that:
- "result.changed == false"
- name: reset vxlan_vtep
nxos_vxlan_vtep: &def9
interface: nve1
description: default
host_reachability: false
source_interface_hold_down_time: default
source_interface: default
global_ingress_replication_bgp: "{{ def_global_ingress_replication_bgp|default(omit) }}"
global_suppress_arp: "{{ def_global_suppress_arp|default(omit) }}"
global_mcast_group_L3: "{{ def_global_mcast_group_L3|default(omit) }}"
shutdown: true
provider: "{{ connection }}"
register: result
- assert: *true
- name: "reset Idempotence"
nxos_vxlan_vtep: *def9
register: result
- assert: *false
- name: configure global mcast L2
nxos_vxlan_vtep: &gml2
interface: nve1
host_reachability: true
global_mcast_group_L2: "{{ global_mcast_group_L2|default(omit) }}"
provider: "{{ connection }}"
register: result
- assert: *true
- name: "Conf Idempotence"
nxos_vxlan_vtep: *gml2
register: result
- assert: *false
- name: reset global mcast L2
nxos_vxlan_vtep: &rgml2
interface: nve1
host_reachability: false
global_mcast_group_L2: "{{ def_global_mcast_group_L2|default(omit) }}"
provider: "{{ connection }}"
register: result
- assert: *true
- name: "reset Idempotence"
nxos_vxlan_vtep: *rgml2
register: result
- assert: *false
when: (platform is search('N9K'))
- block:
- name: configure vxlan_vtep
nxos_vxlan_vtep: &configure7
interface: nve1
description: default
host_reachability: true
source_interface: Loopback0
shutdown: false
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == true"
- name: "Conf Idempotence"
nxos_vxlan_vtep: *configure7
register: result
- assert:
that:
- "result.changed == false"
- name: reset vxlan_vtep
nxos_vxlan_vtep: &def7
interface: nve1
description: default
host_reachability: false
source_interface: default
shutdown: true
provider: "{{ connection }}"
register: result
- assert: *true
- name: "reset Idempotence"
nxos_vxlan_vtep: *def7
register: result
- assert: *false
when: (platform is search('N7K'))
- name: remove vxlan_vtep
nxos_vxlan_vtep: &remove
interface: nve1
description: default
host_reachability: true
source_interface: Loopback0
source_interface_hold_down_time: 30
shutdown: true
provider: "{{ connection }}"
state: absent
register: result
- assert:
that:
- "result.changed == true"
- name: "Remove Idempotence"
nxos_vxlan_vtep: *remove
register: result
- assert:
that:
- "result.changed == false"
when: (platform is search("N7K|N9K"))
always:
- name: "Apply N7K specific cleanup config"
include: targets/nxos_vxlan_vtep/tasks/platform/n7k/cleanup.yaml
when: platform is match('N7K')
- name: "Disable nv overlay evpn"
nxos_config:
commands:
- no nv overlay evpn
match: none
provider: "{{ connection }}"
ignore_errors: yes
- name: "Disable feature nv overlay"
nxos_feature:
feature: nve
provider: "{{ connection }}"
state: disabled
ignore_errors: yes
- debug: msg="END connection={{ ansible_connection }} nxos_vxlan_vtep sanity test"