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


- name: Setup
  junos_netconf:
    state: present
  register: result


###################################
- name: Change port
  junos_netconf:
    state: present
    netconf_port: 22
  register: result

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

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

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

- name: wait for persistent socket to timeout, this ensures new socket creation with connection type netconf
  pause:
    seconds: 120

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

# 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_command:
    rpcs: get-software-information
    provider: "{{ netconf }}"
  register: result
  ignore_errors: true

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

- name: wait for persistent socket to timeout, this ensures new socket creation with connection type netconf
  pause:
    seconds: 120

- name: Set back netconf to default port
  junos_netconf:
    state: present
  register: result

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

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