--- - debug: msg="START connection={{ ansible_connection }} nxos_logging basic test" - debug: msg="Using provider={{ connection.transport }}" when: ansible_connection == "local" # This task is needed to clear out any previous logfile # size settings. - name: Workaround to clear logging logfile size nxos_config: lines: - logging logfile test 1 size 4194304 provider: "{{ connection }}" ignore_errors: yes - name: Purge logging configuration first nxos_logging: purge: true provider: "{{ connection }}" - 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 console logging again (idempotent) nxos_logging: *clog register: result - assert: &false that: - 'result.changed == false' - name: Set up console logging with level 2 (edge case) nxos_logging: &clog2 dest: console dest_level: 2 provider: "{{ connection }}" state: present register: result - assert: that: - 'result.changed == true' - '"logging console 2" in result.commands' - name: Set up console logging with level 2 (edge case) (idempotent) nxos_logging: *clog2 register: result - assert: *false - name: Set Baud Rate to less than 38400 nxos_config: lines: - speed 19200 parents: line console provider: "{{ connection }}" - name: Enable console logging with level 3 (will fail) nxos_logging: &con3 dest: console dest_level: 3 provider: "{{ connection }}" register: result ignore_errors: yes - assert: that: - 'result.failed == true' - name: Set Baud Rate to 38400 nxos_config: lines: - speed 38400 parents: line console provider: "{{ connection }}" - name: Enable console logging with level 3 (will pass) nxos_logging: *con3 register: result - assert: that: - 'result.changed == true' - '"logging console 3" in result.commands' - 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' - name: Logfile logging with level (idempotent) nxos_logging: *llog register: result - assert: *false when: platform is not search('N5K|N7K') and imagetag is not search("A8") - name: Configure module with level nxos_logging: &molog dest: module dest_level: 2 provider: "{{ connection }}" register: result - assert: that: - 'result.changed == true' - '"logging module 2" in result.commands' - name: Configure module with level (idempotent) nxos_logging: *molog register: result - assert: *false - 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 monitor with level (idempotent) nxos_logging: *mlog register: result - assert: *false - name: Configure monitor with level 5 (edge case) nxos_logging: &mlog5 dest: monitor dest_level: 5 provider: "{{ connection }}" register: result - assert: that: - 'result.changed == true' - '"logging monitor 5" in result.commands' - name: Configure monitor with level 5 (edge case) (idempotent) nxos_logging: *mlog5 register: result - assert: *false - 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 facility with level (idempotent) nxos_logging: *flog register: result - assert: *false - name: Configure Remote Logging nxos_logging: &rlog dest: server remote_server: test-syslogserver.com facility: auth facility_level: 1 use_vrf: management state: present provider: "{{ connection }}" register: result - assert: that: - 'result.changed == true' - '"logging server test-syslogserver.com 1 facility auth use-vrf management" in result.commands' - name: Configure Remote Logging (idempotent) nxos_logging: *rlog register: result - assert: *false - name: Configure Source Interface for Logging nxos_logging: &srcint interface: mgmt0 register: result - assert: that: - 'result.changed == true' - '"logging source-interface mgmt 0" in result.commands' - name: Configure Source Interface for Logging (idempotent) nxos_logging: *srcint register: result - assert: that: - 'result.changed == false' - name: remove logging as collection tearDown nxos_logging: &agg aggregate: - { dest: console, dest_level: 3 } - { dest: module, dest_level: 2 } - { dest: monitor, dest_level: 5 } - { dest: logfile, dest_level: 1, name: test } - { facility: daemon, facility_level: 4 } - { dest: server, remote_server: test-syslogserver.com, facility: auth, facility_level: 1, use_vrf: management } - { interface: mgmt0 } provider: "{{ connection }}" state: absent register: result - assert: that: - 'result.changed == true' - '"no logging logfile" 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 register: result - assert: *false - block: - name: Configure Logging message nxos_logging: &logm interface_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: interface_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: <ms 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"