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

- name: Set up host logging
  eos_logging:
    dest: host
    name: 172.16.0.1
    state: present
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"logging host 172.16.0.1" in result.commands'

- name: Set up host logging again (idempotent)
  eos_logging:
    dest: host
    name: 172.16.0.1
    state: present
  become: yes
  register: result

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

- name: Delete/disable host logging
  eos_logging:
    dest: host
    name: 172.16.0.1
    state: absent
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"no logging host 172.16.0.1" in result.commands'

- name: Delete/disable host logging (idempotent)
  eos_logging:
    dest: host
    name: 172.16.0.1
    state: absent
  become: yes
  register: result

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

- name: Console logging with level warnings
  eos_logging:
    dest: console
    level: warnings
    state: present
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"logging console warnings" in result.commands'


- name: Configure buffer size
  eos_logging:
    dest: buffered
    size: 480000
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"logging buffered 480000" in result.commands'

- name: Set up logging destination and facility at the same time
  eos_logging:
    dest: buffered
    size: 4096
    facility: local7
    level: informational
    state: present
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"logging buffered 4096 informational" in result.commands'
      - '"logging facility local7" in result.commands'

- name: Set up logging destination and facility at the same time again (idempotent)
  eos_logging:
    dest: buffered
    size: 4096
    facility: local7
    level: informational
    state: present
  become: yes
  register: result

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

- name: remove logging as collection tearDown
  eos_logging:
    aggregate:
      - { dest: console, level: warnings, state: absent }
      - { dest: buffered, level: informational, size: 4096, state: absent }
      - { facility: local7, state: absent }
  become: yes
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"no logging console" in result.commands'
      - '"no logging buffered" in result.commands'
      - '"no logging facility local7" in result.commands'
