---
- debug: msg="START netconf/netconf.yaml"


- name: Ensure netconf is enabled
  junos_netconf:
    state: present
  register: result

- name: idempotent tests
  junos_netconf:
    state: present
  register: result

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

###################################

- name: wait for netconf server to come up
  pause:
    seconds: 10

- name: Ensure we can communicate over netconf
  junos_command:
    rpcs: get-software-information
    provider: "{{ netconf }}"

# Disable netconf

- name: Disable netconf
  junos_netconf:
    state: absent
  register: result

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

- name: idempotent tests
  junos_netconf:
    state: absent
  register: result

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

- name: wait for persistent socket to timeout
  pause:
    seconds: 120

- name: Ensure we can NOT talk via netconf
  junos_command:
    rpcs: get-software-information
    provider: "{{ netconf }}"
  register: result
  ignore_errors: true

- assert:
    that:
      - "result.failed == true"

- name: re-enable netconf
  junos_netconf:
    state: present
  register: result


- debug: msg="END netconf/netconfg.yaml"