---
- debug: msg="START cli/common_config.yaml on connection={{ ansible_connection }}"

# Sublevel / Block
- name: setup
  iosxr_config:
    commands:
      - 10 permit ipv4 host 192.0.2.1 any log
      - 20 permit ipv4 host 192.0.2.2 any log
      - 30 permit ipv4 host 192.0.2.3 any log
    parents: ['ipv4 access-list test']
    before: ['no ipv4 access-list test']
    match: none

- name: configure sub level command using block resplace
  iosxr_config:
    commands:
      - 10 permit ipv4 host 192.0.2.1 any log
      - 20 permit ipv4 host 192.0.2.2 any log
      - 30 permit ipv4 host 192.0.2.3 any log
      - 40 permit ipv4 host 192.0.2.4 any log
    parents: ['ipv4 access-list test']
    replace: block
  register: result

- assert:
    that:
      - "result.changed == true"
      - "'ipv4 access-list test' in result.commands"
      - "'10 permit ipv4 host 192.0.2.1 any log' in result.commands"
      - "'20 permit ipv4 host 192.0.2.2 any log' in result.commands"
      - "'30 permit ipv4 host 192.0.2.3 any log' in result.commands"
      - "'40 permit ipv4 host 192.0.2.4 any log' in result.commands"

- name: check sub level command using block replace
  iosxr_config:
    commands:
      - 10 permit ipv4 host 192.0.2.1 any log
      - 20 permit ipv4 host 192.0.2.2 any log
      - 30 permit ipv4 host 192.0.2.3 any log
      - 40 permit ipv4 host 192.0.2.4 any log
    parents: ['ipv4 access-list test']
    replace: block
  register: result

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

- name: teardown
  iosxr_config:
    commands: ['no ipv4 access-list test']
    match: none

# diff exact, strict, line
- name: setup
  iosxr_config:
    commands:
      - 'hostname {{ inventory_hostname_short }}'
  register: result

- name: set hostname
  iosxr_config:
    commands:
      - hostname testhost
    match: strict
  register: result

- iosxr_command:
    commands:
      - show configuration running-config hostname
  register: configured_hostname

- assert:
    that:
      - "'testhost' in configured_hostname.stdout[0]"

- name: set hostname
  iosxr_config:
    commands:
      - hostname testhost2
    match: exact
  register: result

- iosxr_command:
    commands:
      - show configuration running-config hostname
  register: configured_hostname

- assert:
    that:
      - "'testhost2' in configured_hostname.stdout[0]"

- name: teardown
  iosxr_config:
    commands:
      - 'hostname {{ inventory_hostname_short }}'
  register: result

- debug: msg="END cli/common_config.yaml on connection={{ ansible_connection }}"
