Skip to content

Added support for description to aci_syslog_group module. (DCNE-373) #763

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions plugins/modules/aci_syslog_group.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Copyright: (c) 2021, Tim Cragg (@timcragg)
# Copyright: (c) 2025, Dev Sinha (@DevSinha13)
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

from __future__ import absolute_import, division, print_function
Expand Down Expand Up @@ -59,6 +61,11 @@
- Name of the syslog group
type: str
aliases: [ syslog_group, syslog_group_name ]
description:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the format attribute in latest version it is also possible to configure Enhanced Log option rfc5424-ts, same applies to format in aci_syslog_remote_dest. Please find out what this is and add to choices if applicable.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also the children syslogConsole and syslogFile seem to have format also, is this something that can be configured?

Copy link
Collaborator

@akinross akinross May 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In UI and model 6.0.9d the severity is restricted to only 3 option for console, please check if we should remove existing values if they do not work? Also verify the models of earlier versions of ACI.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.)Ok I have added the new option "rfc5424-ts"
2.)Yes it can be configured and exposed a format attribute for syslogConsole and syslogFile
3.)I have addressed the severity options

description:
- Description for the syslog group.
type: str
aliases: [ descr ]
state:
description:
- Use C(present) or C(absent) for adding or removing.
Expand All @@ -76,6 +83,7 @@
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Tim Cragg (@timcragg)
- Dev Sinha (@DevSinha13)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update example below with description attribute included

"""

EXAMPLES = r"""
Expand Down Expand Up @@ -257,6 +265,7 @@ def main():
include_ms=dict(type="bool"),
include_time_zone=dict(type="bool"),
state=dict(type="str", default="present", choices=["absent", "present", "query"]),
description=dict(type="str", aliases=["descr"]),
)

module = AnsibleModule(
Expand All @@ -280,6 +289,7 @@ def main():
include_ms = aci.boolean(module.params.get("include_ms"))
include_time_zone = aci.boolean(module.params.get("include_time_zone"))
state = module.params.get("state")
description = module.params.get("description")

aci.construct_url(
root_class=dict(
Expand All @@ -297,6 +307,7 @@ def main():
class_config = dict(
name=name,
format=format,
descr=description,
includeMilliSeconds=include_ms,
)
if include_time_zone is not None:
Expand Down
76 changes: 71 additions & 5 deletions tests/integration/targets/aci_syslog_group/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Test code for the ACI modules
# Copyright: (c) 2021, Tim Cragg (@timcragg)
# Copyright: (c) 2025, Dev Sinha (@DevSinha13)

# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

Expand Down Expand Up @@ -34,8 +35,8 @@
name: ansible_syslog_group
state: absent

# ADD syslog group
- name: Add syslog group (version >= 4)
# ADD syslog group(Check mode)
- name: Add syslog group (version >= 4) - (Check mode)
cisco.aci.aci_syslog_group: &aci_syslog_present
<<: *aci_info
name: ansible_syslog_group
Expand All @@ -47,11 +48,20 @@
console_log_severity: critical
include_ms: true
include_time_zone: true
description: Description for the syslog group
state: present
check_mode: true
register: add_syslog_group_cm
when: version.current.0.topSystem.attributes.version is version('4', '>=')

#ADD syslog group
- name: Add syslog group (version >= 4) - (No check mode)
cisco.aci.aci_syslog_group:
<<: *aci_syslog_present
register: add_syslog_group
when: version.current.0.topSystem.attributes.version is version('4', '>=')

- name: Add syslog group (version < 4)
- name: Add syslog group (version < 4) - (Check mode)
cisco.aci.aci_syslog_group: &aci_syslog_present_32
<<: *aci_info
name: ansible_syslog_group
Expand All @@ -62,29 +72,68 @@
console_logging: enabled
console_log_severity: critical
include_ms: true
description: Description for the syslog group
state: present
check_mode: true
register: add_syslog_group_32_cm
when: version.current.0.topSystem.attributes.version is version('4', '<')

- name: Add syslog group (version < 4) - No Check mode
cisco.aci.aci_syslog_group:
<<: *aci_syslog_present_32
register: add_syslog_group_32
when: version.current.0.topSystem.attributes.version is version('4', '<')


- name: Verify that ansible_syslog_group has been created with correct attributes in check mode(version >= 4)
ansible.builtin.assert:
that:
- add_syslog_group_cm is changed
- add_syslog_group_cm.proposed.syslogGroup.attributes.dn == "uni/fabric/slgroup-ansible_syslog_group"
- add_syslog_group_cm.proposed.syslogGroup.attributes.name == "ansible_syslog_group"
- add_syslog_group_cm.proposed.syslogGroup.attributes.format == "aci"
- add_syslog_group_cm.proposed.syslogGroup.attributes.includeMilliSeconds == "yes"
- add_syslog_group_cm.proposed.syslogGroup.attributes.includeTimeZone == "yes"
- add_syslog_group_cm.proposed.syslogGroup.attributes.annotation == 'orchestrator:ansible'
- add_syslog_group_cm.proposed.syslogGroup.attributes.descr == 'Description for the syslog group'
when: version.current.0.topSystem.attributes.version is version('4', '>=')


- name: Verify that ansible_syslog_group has been created with correct attributes (version > 4)
ansible.builtin.assert:
that:
- add_syslog_group is changed
- add_syslog_group.current.0.syslogGroup.attributes.dn == "uni/fabric/slgroup-ansible_syslog_group"
- add_syslog_group.current.0.syslogGroup.attributes.name == "ansible_syslog_group"
- add_syslog_group.current.0.syslogGroup.attributes.format == "aci"
- add_syslog_group.current.0.syslogGroup.attributes.includeMilliSeconds == "yes"
- add_syslog_group.current.0.syslogGroup.attributes.includeTimeZone == "yes"
- add_syslog_group.current.0.syslogGroup.attributes.annotation == 'orchestrator:ansible'
- add_syslog_group.current.0.syslogGroup.attributes.descr == 'Description for the syslog group'
when: version.current.0.topSystem.attributes.version is version('4', '>=')

- name: Verify that ansible_syslog_group has been created with correct attributes in check mode (version < 4)
ansible.builtin.assert:
that:
- add_syslog_group_32_cm is changed
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.dn == "uni/fabric/slgroup-ansible_syslog_group"
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.name == "ansible_syslog_group"
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.format == "aci"
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.includeMilliSeconds == "yes"
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.annotation == 'orchestrator:ansible'
- add_syslog_group_32_cm.proposed.syslogGroup.attributes.descr == 'Description for the syslog group'
when: version.current.0.topSystem.attributes.version is version('4', '<')

- name: Verify that ansible_syslog_group has been created with correct attributes (version < 4)
ansible.builtin.assert:
that:
- add_syslog_group_32 is changed
- add_syslog_group_32.current.0.syslogGroup.attributes.dn == "uni/fabric/slgroup-ansible_syslog_group"
- add_syslog_group_32.current.0.syslogGroup.attributes.name == "ansible_syslog_group"
- add_syslog_group_32.current.0.syslogGroup.attributes.format == "aci"
- add_syslog_group_32.current.0.syslogGroup.attributes.includeMilliSeconds == "yes"
- add_syslog_group_32.current.0.syslogGroup.attributes.annotation == 'orchestrator:ansible'
- add_syslog_group_32.current.0.syslogGroup.attributes.descr == 'Description for the syslog group'
when: version.current.0.topSystem.attributes.version is version('4', '<')

- name: Verify that ansible_syslog_group children have correct attributes (version >= 4)
Expand Down Expand Up @@ -145,6 +194,7 @@
console_log_severity: emergencies
include_ms: false
include_time_zone: false
description: Updated syslog group
state: present
register: update_syslog_group
when: version.current.0.topSystem.attributes.version is version('4', '>=')
Expand All @@ -160,6 +210,7 @@
console_logging: disabled
console_log_severity: emergencies
include_ms: false
description: Updated syslog_group_32
state: present
register: update_syslog_group_32
when: version.current.0.topSystem.attributes.version is version('4', '<')
Expand All @@ -172,6 +223,7 @@
- update_syslog_group.current.0.syslogGroup.attributes.format == "nxos"
- update_syslog_group.current.0.syslogGroup.attributes.includeMilliSeconds == "no"
- update_syslog_group.current.0.syslogGroup.attributes.includeTimeZone == "no"
- update_syslog_group.current.0.syslogGroup.attributes.descr == "Updated syslog group"
when: version.current.0.topSystem.attributes.version is version('4', '>=')

- name: Verify that ansible_syslog_group has been updated with correct attributes (version < 4)
Expand All @@ -181,6 +233,7 @@
- update_syslog_group_32.current.0.syslogGroup.attributes.name == "ansible_syslog_group"
- update_syslog_group_32.current.0.syslogGroup.attributes.format == "nxos"
- update_syslog_group_32.current.0.syslogGroup.attributes.includeMilliSeconds == "no"
- update_syslog_group_32.current.0.syslogGroup.attributes.descr == "Updated syslog_group_32"
when: version.current.0.topSystem.attributes.version is version('4', '<')

- name: Verify that ansible_syslog_group children have correct attributes (version >= 4)
Expand Down Expand Up @@ -229,8 +282,17 @@
that:
- query_syslog_group_all is not changed

# DELETE syslog group
- name: Remove the syslog group
# DELETE syslog group(check mode)
- name: Remove the syslog group (check mode)
cisco.aci.aci_syslog_group:
<<: *aci_info
name: ansible_syslog_group
state: absent
check_mode: true
register: remove_syslog_group_cm

# Delete syslog group
- name: Remove the syslog group
cisco.aci.aci_syslog_group:
<<: *aci_info
name: ansible_syslog_group
Expand All @@ -240,6 +302,10 @@
- name: Verify remove_syslog_group
ansible.builtin.assert:
that:
- remove_syslog_group_cm is changed
- remove_syslog_group_cm.proposed == {}
- remove_syslog_group_cm.previous == remove_syslog_group.previous
- remove_syslog_group.current == []
- remove_syslog_group is changed
- remove_syslog_group.previous.0.syslogGroup.attributes.dn == "uni/fabric/slgroup-ansible_syslog_group"
- remove_syslog_group.previous.0.syslogGroup.attributes.name == "ansible_syslog_group"
Loading