Additional feature enhancements to nxos_logging (#45844)

* Various changes to nxos_logging.  Plus added purge capibility.

* Made a few new nxapi_logging test cases conditional based on version
and/or platform.

* Addressed PR comments and ansibot shippable.  Fixed up nxos_logging documentation format.

* Addressed ansibot shippable issues with whitespaces and documentation.

* Resolved ansibot codestyle trailing whitespace
This commit is contained in:
tstoner 2018-09-25 01:32:09 -04:00 committed by Trishna Guha
parent e26861435f
commit e74e8b8e75
6 changed files with 758 additions and 41 deletions

View file

@ -78,25 +78,29 @@
- 'result.changed == true'
- '"logging console 3" in result.commands'
- name: Logfile logging with level
nxos_logging: &llog
dest: logfile
name: test
dest_level: 1
provider: "{{ connection }}"
state: present
register: result
- block:
- name: Logfile logging with level
nxos_logging: &llog
dest: logfile
name: test
dest_level: 1
provider: "{{ connection }}"
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"logging logfile test 1" in result.commands'
- assert:
that:
- 'result.changed == true'
- '"logging logfile test 1" in result.commands'
- name: Logfile logging with level (idempotent)
nxos_logging: *llog
register: result
- name: Logfile logging with level (idempotent)
nxos_logging: *llog
register: result
- assert: *false
- assert: *false
when: platform is not search('N5K|N7K') and imagetag is not search("A8")
- name: Configure module with level
nxos_logging: &molog
@ -228,11 +232,22 @@
that:
- 'result.changed == true'
- '"no logging logfile" in result.commands'
- '"no logging level daemon" in result.commands'
- '"no logging level daemon 4" in result.commands'
- '"no logging monitor" in result.commands'
- '"no logging module" in result.commands'
- '"no logging server test-syslogserver.com" in result.commands'
- '"no logging source-interface" in result.commands'
when: platform is not search('N5K|N7K') and imagetag is not search("A8")
- assert:
that:
- 'result.changed == true'
- '"no logging level daemon 4" in result.commands'
- '"no logging monitor" in result.commands'
- '"no logging module" in result.commands'
- '"no logging server test-syslogserver.com" in result.commands'
- '"no logging source-interface" in result.commands'
when: platform is search('N5K|N7K') or imagetag is search("A8")
- name: remove aggregate logging (idempotent)
nxos_logging: *agg
@ -240,4 +255,260 @@
- assert: *false
- block:
- name: Configure Logging message
nxos_logging: &logm
message: add-interface-description
state: present
provider: "{{ connection }}"
register: result
- assert: &true
that:
- 'result.changed == true'
- name: Configure Logging message (idempotent)
nxos_logging: *logm
register: result
- assert: *false
- name: Remove Logging message
nxos_logging:
message: add-interface-description
state: absent
provider: "{{ connection }}"
register: result
- assert: *true
when: platform is not search('N5K') and imagetag is not search("A8")
- name: Logfile logging with level and size
nxos_logging: &llogs
dest: logfile
name: test
dest_level: 1
file_size: 16384
provider: "{{ connection }}"
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"logging logfile test 1 size 16384" in result.commands'
- name: Logfile logging with level and size (idempotent)
nxos_logging: *llogs
register: result
- assert: *false
- name: Remove logfile logging with level and size
nxos_logging:
dest: logfile
name: test
dest_level: 1
file_size: 16384
provider: "{{ connection }}"
state: absent
register: result
- assert: *true
- name: Set up logging event link enable
nxos_logging: &logle
event: link-enable
register: result
- assert:
that:
- 'result.changed == true'
- '"logging event link-status enable" in result.commands'
- name: Set up logging event link enable again (idempotent)
nxos_logging: *logle
register: result
- assert: *false
- name: Remove logging event link enable
nxos_logging: &rlogle
event: link-enable
state: absent
register: result
- assert: *true
- name: Remove logging event link enable again (idempotent)
nxos_logging: *rlogle
register: result
- assert: *false
- name: Set up logging event link default
nxos_logging: &logld
event: link-default
register: result
- assert:
that:
- 'result.changed == true'
- '"logging event link-status default" in result.commands'
- name: Set up logging event link default again (idempotent)
nxos_logging: *logld
register: result
- assert: *false
- name: Remove logging event link default
nxos_logging: &rlogld
event: link-default
state: absent
register: result
- assert: *true
- name: Remove logging event link default again (idempotent)
nxos_logging: *rlogld
register: result
- assert: *false
- name: Set up logging event trunk enable
nxos_logging: &logte
event: trunk-enable
register: result
- assert:
that:
- 'result.changed == true'
- '"logging event trunk-status enable" in result.commands'
- name: Set up logging event trunk enable again (idempotent)
nxos_logging: *logte
register: result
- assert: *false
- name: Remove logging event trunk enable
nxos_logging: &rlogte
event: trunk-enable
state: absent
register: result
- assert: *true
- name: Remove logging event trunk enable again (idempotent)
nxos_logging: *rlogte
register: result
- assert: *false
- name: Set up logging event trunk default
nxos_logging: &logtd
event: trunk-default
register: result
- assert:
that:
- 'result.changed == true'
- '"logging event trunk-status default" in result.commands'
- name: Set up logging event trunk default again (idempotent)
nxos_logging: *logtd
register: result
- assert: *false
- name: Remove logging event trunk default
nxos_logging: &rlogtd
event: trunk-default
state: absent
register: result
- assert: *true
- name: Remove logging event trunk default again (idempotent)
nxos_logging: *rlogtd
register: result
- assert: *false
- name: Set up Logging Timestamp
nxos_logging: &ltms
timestamp: microseconds
provider: "{{ connection }}"
state: present
register: result
- assert: *true
- name: Set up Logging Timestamp (idempotent)
nxos_logging: *ltms
register: result
- assert: *false
- name: Remove Logging Timestamp
nxos_logging:
timestamp: microseconds
state: absent
register: result
- assert: *true
- name: Set up Facility ethpm Link UP Error
nxos_logging: &felue
facility: ethpm
facility_link_status: link-up-error
provider: "{{ connection }}"
state: present
register: result
- assert: *true
- name: Set up Facility ethpm Link UP Error (idempotent)
nxos_logging: *felue
register: result
- assert: *false
- name: Remove Facility ethpm Link UP Error
nxos_logging:
facility: ethpm
facility_link_status: link-up-error
state: absent
register: result
- assert: *true
- name: Set up Facility ethpm Link DOWN Error
nxos_logging: &felde
facility: ethpm
facility_link_status: link-down-error
provider: "{{ connection }}"
state: present
register: result
- assert: *true
- name: Set up Facility ethpm Link DOWN Error (idempotent)
nxos_logging: *felde
register: result
- assert: *false
- name: Remove Facility ethpm Link DOWN Error
nxos_logging:
facility: ethpm
facility_link_status: link-down-error
state: absent
register: result
- assert: *true
- debug: msg="END connection={{ ansible_connection }} nxos_logging basic test"

View file

@ -0,0 +1,109 @@
---
- debug: msg="START connection={{ ansible_connection }} nxos_logging purge test"
- block:
- name: Set up console logging
nxos_logging: &clog
dest: console
dest_level: 0
provider: "{{ connection }}"
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"logging console 0" in result.commands'
- name: Set up Logging Timestamp
nxos_logging: &ltms
timestamp: microseconds
provider: "{{ connection }}"
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"logging timestamp microseconds" in result.commands'
- name: Configure monitor with level
nxos_logging: &mlog
dest: monitor
dest_level: 3
provider: "{{ connection }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging monitor 3" in result.commands'
- name: Configure facility with level
nxos_logging: &flog
facility: daemon
facility_level: 4
provider: "{{ connection }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging level daemon 4" in result.commands'
- name: Configure logging level virtual-service 7 using nxos_config
nxos_config:
lines: logging level virtual-service 7
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == true"
- name: Purge the outliers
nxos_logging:
purge: yes
provider: "{{ connection }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging level virtual-service 7" in result.commands'
- block:
- name: Purge the outliers (idempotent)
nxos_logging:
purge: yes
provider: "{{ connection }}"
register: result
- assert:
that:
- 'result.changed == false'
when: imagetag is not search("A8")
- name: remove logging as collection tearDown
nxos_logging: &agg
aggregate:
- { dest: console, dest_level: 0 }
- { dest: monitor, dest_level: 3 }
- { timestamp: microseconds }
- { facility: daemon, facility_level: 4 }
provider: "{{ connection }}"
state: absent
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging console" in result.commands'
- '"no logging timestamp microseconds" in result.commands'
- '"no logging level daemon 4" in result.commands'
- '"no logging monitor" in result.commands'
when: ansible_connection != "local"
- debug: msg="END connection={{ ansible_connection }} nxos_logging purge test"