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


- name: Setup
  junos_netconf:
    state: present
    provider: "{{ cli }}"
  register: result


###################################
- name: Change port
  junos_netconf:
    state: present
    netconf_port: 8080
    provider: "{{ cli }}"
  register: result

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

- name: idempotent tests
  junos_netconf:
    state: present
    netconf_port: 8080
    provider: "{{ cli }}"
  register: result

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

- name: Ensure we can communicate over 8080
  junos_config:
    lines:
      - set system host-name {{ inventory_hostname }}
    provider: "{{ netconf }}"
    port: 8080

# This protects against the port override above not being honoured and a bug setting the port
- name: Ensure we can NOT communicate over default port
  junos_config:
    lines:
      - set system host-name {{ inventory_hostname }}
    provider: "{{ netconf }}"
  register: result
  ignore_errors: true

- assert:
    that:
      - "result.failed == true"
      - "'unable to connect to' in result.msg"

- name: Set back netconf to default port
  junos_netconf:
    state: present
    provider: "{{ cli }}"
  register: result

- name: Ensure we can communicate over netconf
  junos_config:
    lines:
      - set system host-name {{ inventory_hostname }}
    provider: "{{ netconf }}"

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