--- - 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: 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' - 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 - 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" 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' - name: remove aggregate logging (idempotent) nxos_logging: *agg register: result - assert: *false - debug: msg="END connection={{ ansible_connection }} nxos_logging basic test"