---
- debug: msg="START TRANSPORT:{{ connection.transport }} nxos_evpn_global sanity test"

- name: "Setup"
  nxos_config: &remove_evpn_config
    lines: no nv overlay evpn
    match: none
    provider: "{{ connection }}"
  ignore_errors: yes

- name: "Disable feature nv overlay"
  nxos_feature: &disable_feature_nv_overlay
    feature: nv overlay
    state: disabled
    provider: "{{ connection }}"
  ignore_errors: yes

- block:
  - name: "Enable feature nv overlay"
    nxos_feature: &enable_feature_nv_overlay
      feature: nv overlay
      state: enabled
      provider: "{{ connection }}"
    ignore_errors: yes

  - name: "Enable nv overlay evpn"
    nxos_evpn_global: &enable_evpn
      nv_overlay_evpn: true
      provider: "{{ connection }}"
    register: result

  - assert: &true
      that:
        - "result.changed == true"

  - name: "CHECK IDEMPOTENCE - enable nv overlay evpn"
    nxos_evpn_global: *enable_evpn
    register: result

  - assert: &false
      that:
        - "result.changed == false"

  - name: "Disable nv overlay evpn"
    nxos_evpn_global: &disable_evpn
      nv_overlay_evpn: false
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "CHECK DEMPOTENCE - Disable nv overlay evpn"
    nxos_evpn_global: *disable_evpn
    register: result

  - assert: *false

  when: not (platform | search('N3K'))

  rescue:
  - debug: msg="TRANSPORT:{{ connection.transport }} nxos_evpn_global sanity test - FALURE ENCOUNTERED"

  always:

  - name: "Cleanup - Disable nv overlay evpn"
    nxos_config: *remove_evpn_config
    ignore_errors: yes

  - name: "Cleanup - Disable feature nv overlay"
    nxos_feature: *disable_feature_nv_overlay
    ignore_errors: yes

  - debug: msg="END TRANSPORT:{{ connection.transport }} nxos_evpn_global sanity test"
