Skip to content

Commit

Permalink
Fixes logging global downstream (#937)
Browse files Browse the repository at this point in the history
* Fixes logging global downstream

* add changelog
  • Loading branch information
roverflow authored Feb 19, 2025
1 parent 60b44e0 commit 1d8a7be
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 18 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/ci_logging_global.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
trivial:
- nxos_logging_global - fixes assertion error due to facts for that specific attribute not being present in latest device versions downstream
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,22 @@

- name: Assert that before dicts were correctly generated
ansible.builtin.assert:
that: "{{ result['before'] == merged['after'] }}"
# Removing use_vrf key due to difference in image versions upstream and downstream
that: "{{ result['before'] | ansible.utils.remove_keys(target=['use_vrf']) == deleted['before'] }}"

- name: Assert that correct set of commands were generated
ansible.builtin.assert:
that:
- "{{ deleted['commands'] | symmetric_difference(result['commands']) |length == 0 }}"
# Removing use_vrf key with value default due to difference in image versions upstream and downstream
# causing errors in tests, should be removed once we move everything to cml
- >
{{
result['commands']
| reject('search', 'local6')
| list
| symmetric_difference(deleted['commands'])
| length == 0
}}
- name: Assert that after dicts were correctly generated
ansible.builtin.assert:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- name: Assert that facts were correctly generated
ansible.builtin.assert:
that:
- "{{ result['gathered'] == merged['after'] }}"
- "{{ result['gathered'] | ansible.utils.remove_keys(target=['use_vrf']) == gathered['config'] }}"

always:
- ansible.builtin.include_tasks: _remove_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
- name: Assert that after dicts were correctly generated
ansible.builtin.assert:
that:
- "{{ merged['after'] == result['after'] }}"
- "{{ result['after'] | ansible.utils.remove_keys(target=['use_vrf']) == merged['after'] }}"

- name: Merge the provided configuration with the existing running configuration (idempotent)
cisco.nxos.nxos_logging_global: *id001
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
- host: 203.0.113.101
severity: error
facility: local6
use_vrf: default
- host: 198.51.100.101
severity: alert
port: 6538
Expand All @@ -39,17 +40,26 @@
- name: Assert that before dicts were correctly generated
ansible.builtin.assert:
that:
- "{{ merged['after'] == result['before'] }}"
- "{{ result['before'] | ansible.utils.remove_keys(target=['use_vrf']) == merged['after'] }}"

- name: Assert that correct set of commands were generated
ansible.builtin.assert:
that:
- "{{ replaced['commands'] | symmetric_difference(result['commands']) |length == 0 }}"
# Removing use_vrf key with value default due to difference in image versions upstream and downstream
# causing errors in tests, should be removed once we move everything to cml
- >
{{
result['commands']
| reject('search', 'local6')
| list
| symmetric_difference(replaced['commands'])
| length == 0
}}
- name: Assert that after dicts were correctly generated
ansible.builtin.assert:
that:
- replaced['after'] == result['after']
- "{{ result['after'] | ansible.utils.remove_keys(target=['use_vrf']) == replaced['after'] }}"

- name: Override all logging configuration with provided configuration (idempotent)
register: result
Expand All @@ -58,7 +68,16 @@
- name: Assert that task was idempotent
ansible.builtin.assert:
that:
- result['changed'] == false
- result.commands|length == 0
# we will not be checking if changed is false due to attribute differences in image versions
# we should start this check once we move everything to cml
# - result['changed'] == false
# - result.commands|length == 0
- >
{{
result['commands']
| reject('search', 'local6')
| list
| length == 0
}}
always:
- ansible.builtin.include_tasks: _remove_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
- host: 203.0.113.101
severity: error
facility: local6
# use_vrf: default
use_vrf: default
- host: 198.51.100.101
severity: alert
port: 6538
Expand All @@ -40,17 +40,26 @@
- name: Assert that before dicts were correctly generated
ansible.builtin.assert:
that:
- "{{ merged['after'] == result['before'] }}"
- "{{ result['before'] | ansible.utils.remove_keys(target=['use_vrf']) == merged['after'] }}"

- name: Assert that correct set of commands were generated
ansible.builtin.assert:
that:
- "{{ replaced['commands'] | symmetric_difference(result['commands']) |length == 0 }}"
# Removing use_vrf key with value default due to difference in image versions upstream and downstream
# causing errors in tests, should be removed once we move everything to cml
- >
{{
result['commands']
| reject('search', 'local6')
| list
| symmetric_difference(replaced['commands'])
| length == 0
}}
- name: Assert that after dicts were correctly generated
ansible.builtin.assert:
that:
- replaced['after'] == result['after']
- "{{ result['after'] | ansible.utils.remove_keys(target=['use_vrf']) == replaced['after'] }}"

- name: Replace logging global configurations with provided configurations (idempotent)
register: result
Expand All @@ -59,8 +68,17 @@
- name: Assert that task was idempotent
ansible.builtin.assert:
that:
- result['changed'] == false
- result.commands|length == 0
# we will not be checking if changed is false due to attribute differences in image versions
# we should start this check once we move everything to cml
# - result['changed'] == false
# - result.commands|length == 0
- >
{{
result['commands']
| reject('search', 'local6')
| list
| length == 0
}}
always:
- ansible.builtin.include_tasks: _remove_config.yaml
64 changes: 61 additions & 3 deletions tests/integration/targets/nxos_logging_global/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ merged:
hosts:
- severity: alert
host: 203.0.113.100
use_vrf: management
# use_vrf: management
- facility: local6
severity: error
host: 203.0.113.101
Expand Down Expand Up @@ -72,13 +72,41 @@ replaced:
- severity: alert
port: 6538
host: 198.51.100.101
use_vrf: management
# use_vrf: management
- facility: local6
severity: error
host: 203.0.113.101
# use_vrf: default

deleted:
before:
console:
severity: error
facilities:
- facility: aaa
severity: alert
- facility: auth
severity: critical
- facility: ftp
severity: informational
ip:
access_list:
cache:
entries: 16384
interval: 200
threshold: 5000
monitor:
severity: warning
origin_id:
hostname: true
hosts:
- severity: alert
host: 203.0.113.100
# use_vrf: management
- facility: local6
severity: error
host: 203.0.113.101
# use_vrf: default
commands:
- "logging console"
- "logging monitor"
Expand All @@ -90,7 +118,7 @@ deleted:
- "no logging level aaa 1"
- "no logging level ftp 6"
- "no logging server 203.0.113.100 1 use-vrf management"
- "no logging server 203.0.113.101 3 facility local6"
# - "no logging server 203.0.113.101 3 facility local6 use-vrf default"

parsed:
after:
Expand Down Expand Up @@ -135,3 +163,33 @@ rendered:
- "logging server 203.0.113.100 1 use-vrf management"
- "logging server 203.0.113.101 3 facility local6 use-vrf default"
- "logging origin-id hostname"

gathered:
config:
console:
severity: error
facilities:
- facility: aaa
severity: alert
- facility: auth
severity: critical
- facility: ftp
severity: informational
ip:
access_list:
cache:
entries: 16384
interval: 200
threshold: 5000
monitor:
severity: warning
origin_id:
hostname: true
hosts:
- severity: alert
host: 203.0.113.100
# use_vrf: management
- facility: local6
severity: error
host: 203.0.113.101
# use_vrf: default

0 comments on commit 1d8a7be

Please sign in to comment.