---
- debug: msg="START connection={{ ansible_connection }} nxos_ospf sanity test"
- debug: msg="Using provider={{ connection.transport }}"
  when: ansible_connection == "local"

- name: "Enable feature OSPF"
  nxos_feature:
    feature: ospf
    provider: "{{ connection }}"
    state: enabled
  ignore_errors: yes

- block:
  - name: Configure ospf
    nxos_ospf: &config
      ospf: 1
      provider: "{{ connection }}"
      state: present
    register: result

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

  - name: "Check Idempotence"
    nxos_ospf: *config
    register: result

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

  rescue:
  - name: "Disable feature OSPF"
    nxos_feature:
      feature: ospf
      provider: "{{ connection }}"
      state: disabled
    ignore_errors: yes

  always:
  - name: Unconfigure ospf
    nxos_ospf: &unconfig
      ospf: 1
      provider: "{{ connection }}"
      state: absent
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_ospf: *unconfig
    register: result

  - assert: *false

  - debug: msg="END connection={{ ansible_connection }} nxos_ospf sanity test"
