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

- name: setup
  junos_config:
    lines:
      - set system host-name {{ inventory_hostname_short }}
      - delete interfaces lo0
    provider: "{{ netconf }}"

- name: configure device with text config
  junos_config:
    src: basic/config.j2
    provider: "{{ netconf }}"
  register: result

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

- name: check device with config
  junos_config:
    src: basic/config.j2
    provider: "{{ netconf }}"
  register: result

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

- name: teardown
  junos_config:
    lines:
      - delete interfaces lo0
    provider: "{{ netconf }}"
  register: result

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

- name: configure device with set config
  junos_config:
    src: basic/config.set
    provider: "{{ netconf }}"
  register: result

- assert:
    that:
      - "result.changed == true"
      - "'address 1.1.1.1/32' in result.diff.prepared"

- name: check device with config
  junos_config:
    src: basic/config.set
    provider: "{{ netconf }}"
  register: result

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

- name: teardown
  junos_config:
    lines:
      - delete interfaces lo0
    provider: "{{ netconf }}"
  register: result
- assert:
    that:
      - "result.changed == true"

- name: configure device with xml config
  junos_config:
    src: basic/config.xml
    provider: "{{ netconf }}"
  register: result

- assert:
    that:
      - "result.changed == true"
      - "'address 1.1.1.1/32' in result.diff.prepared"

- name: check device with config
  junos_config:
    src: basic/config.xml
    provider: "{{ netconf }}"
  register: result

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

- name: teardown
  junos_config:
    lines:
      - delete interfaces lo0
    provider: "{{ netconf }}"
  register: result
- assert:
    that:
      - "result.changed == true"

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