1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Add default_without_diff callback (#7949)

* Add default_without_diff callback.

* Add examples and BOTMETA entry.
This commit is contained in:
Felix Fontein 2024-02-14 22:53:16 +01:00 committed by GitHub
parent bc383b8f7b
commit 980fa36fac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 119 additions and 0 deletions

2
.github/BOTMETA.yml vendored
View file

@ -50,6 +50,8 @@ files:
$callbacks/cgroup_memory_recap.py: {} $callbacks/cgroup_memory_recap.py: {}
$callbacks/context_demo.py: {} $callbacks/context_demo.py: {}
$callbacks/counter_enabled.py: {} $callbacks/counter_enabled.py: {}
$callbacks/default_without_diff.py:
maintainers: felixfontein
$callbacks/dense.py: $callbacks/dense.py:
maintainers: dagwieers maintainers: dagwieers
$callbacks/diy.py: $callbacks/diy.py:

View file

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2024, Felix Fontein <felix@fontein.de>
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
DOCUMENTATION = r'''
name: default_without_diff
type: stdout
short_description: The default ansible callback without diff output
version_added: 8.4.0
description:
- This is basically the default ansible callback plugin (P(ansible.builtin.default#callback)) without
showing diff output. This can be useful when using another callback which sends more detailed information
to another service, like the L(ARA, https://ara.recordsansible.org/) callback, and you want diff output
sent to that plugin but not shown on the console output.
author: Felix Fontein (@felixfontein)
extends_documentation_fragment:
- ansible.builtin.default_callback
- ansible.builtin.result_format_callback
'''
EXAMPLES = r'''
# Enable callback in ansible.cfg:
ansible_config: |
[defaults]
stdout_callback = community.general.default_without_diff
# Enable callback with environment variables:
environment_variable: |
ANSIBLE_STDOUT_CALLBACK=community.general.default_without_diff
'''
from ansible.plugins.callback.default import CallbackModule as Default
class CallbackModule(Default):
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'stdout'
CALLBACK_NAME = 'community.general.default_without_diff'
def v2_on_file_diff(self, result):
pass

View file

@ -0,0 +1,6 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
azp/posix/3
needs/target/callback

View file

@ -0,0 +1,65 @@
---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- block:
- name: Create temporary file
tempfile:
register: tempfile
- name: Run tests
include_role:
name: callback
vars:
tests:
- name: Basic file diff
environment:
ANSIBLE_NOCOLOR: 'true'
ANSIBLE_FORCE_COLOR: 'false'
ANSIBLE_DIFF_ALWAYS: 'true'
ANSIBLE_PYTHON_INTERPRETER: "{{ ansible_python_interpreter }}"
ANSIBLE_STDOUT_CALLBACK: community.general.default_without_diff
playbook: |
- hosts: testhost
gather_facts: true
tasks:
- name: Create file
copy:
dest: "{{ tempfile.path }}"
content: |
Foo bar
- name: Modify file
copy:
dest: "{{ tempfile.path }}"
content: |
Foo bar
Bar baz bam!
expected_output: [
"",
"PLAY [testhost] ****************************************************************",
"",
"TASK [Gathering Facts] *********************************************************",
"ok: [testhost]",
"",
"TASK [Create file] *************************************************************",
"changed: [testhost]",
"",
"TASK [Modify file] *************************************************************",
"changed: [testhost]",
"",
"PLAY RECAP *********************************************************************",
"testhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ",
]
always:
- name: Clean up temp file
file:
path: "{{ tempfile.path }}"
state: absent