Compare commits

...

7 commits

Author SHA1 Message Date
growf
0f05be1ede
Merge 8cdf51b3b3 into 9a2ddcd713 2024-09-06 10:51:06 +09:00
softwarefactory-project-zuul[bot]
9a2ddcd713
Merge pull request #556 from Akasurde/i350
Remove skippy callback

SUMMARY
Fixes: #350
Signed-off-by: Abhijeet Kasurde akasurde@redhat.com
ISSUE TYPE

Bugfix Pull Request

Reviewed-by: Hideki Saito <saito@fgrep.org>
2024-09-05 07:53:20 +00:00
Abhijeet Kasurde
f2d0b38b0e
Remove skippy callback
Fixes: #350

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2024-09-05 16:08:40 +09:00
growf
8cdf51b3b3
Create 428-synchronize-user-defined-out-format.yml 2023-03-17 23:42:28 +00:00
growf
0b6eb4506b
Delete 428-synchronize-user-definied-out-format.yml 2023-03-17 23:41:53 +00:00
growf
dea22dcf4e
Create 428-synchronize-user-definied-out-format.yml 2023-03-17 23:40:24 +00:00
growf
dd3b97069b
Allow user-defined --out-format
If the user specifes --out-format in rsync_opts return msg and stdout_lines in that format otherwise use the default for --itemize-changes, '%i %n%L'; the output for diff will always be in the default --itemize-changes format.

The use of '//' as a delimiter to split the format fields isn't perfect but it's the least-likely to clash with an actual filepath that I could think of.
2023-03-17 22:34:37 +00:00
6 changed files with 44 additions and 60 deletions

1
.github/BOTMETA.yml vendored
View file

@ -40,7 +40,6 @@ files:
labels: debug
$plugins/patch.py:
labels: patch
$plugins/skippy.py:
$plugins/synchronize.py:
labels: synchronize
$plugins/timer.py:

View file

@ -0,0 +1,2 @@
minor_changes:
- synchronize - user-defined ``--out-format`` in ``rsync_opts`` is now honored in the returned output. (https://github.com/ansible-collections/ansible.posix/pull/428)

View file

@ -0,0 +1,2 @@
removed_features:
- skippy - Remove skippy pluglin as it is no longer supported(https://github.com/ansible-collections/ansible.posix/issues/350).

View file

@ -1,8 +1,2 @@
---
requires_ansible: ">=2.14.0"
plugin_routing:
callback:
skippy:
deprecation:
removal_date: "2022-06-01"
warning_text: See the plugin documentation for more details

View file

@ -1,43 +0,0 @@
# (c) 2012-2014, Michael DeHaan <michael.dehaan@gmail.com>
# (c) 2017 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# Make coding more python3-ish
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
DOCUMENTATION = '''
name: skippy
type: stdout
requirements:
- set as main display callback
short_description: Ansible screen output that ignores skipped status
deprecated:
why: The 'default' callback plugin now supports this functionality
removed_at_date: '2022-06-01'
alternative: "'default' callback plugin with 'display_skipped_hosts = no' option"
extends_documentation_fragment:
- default_callback
description:
- This callback does the same as the default except it does not output skipped host/task/item status
'''
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
class CallbackModule(CallbackModule_default):
'''
This is the default callback interface, which simply prints messages
to stdout when new callback events are received.
'''
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'stdout'
CALLBACK_NAME = 'ansible.posix.skippy'
def v2_runner_on_skipped(self, result):
pass
def v2_runner_item_on_skipped(self, result):
pass

View file

@ -366,6 +366,7 @@ EXAMPLES = r'''
import os
import errno
import re
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils._text import to_bytes, to_native
@ -597,8 +598,19 @@ def main():
module.fail_json(msg='Hardlinking into a subdirectory of the source would cause recursion. %s and %s' % (destination_path, dest))
cmd.append('--link-dest=%s' % link_path)
changed_marker = '<<CHANGED>>'
cmd.append('--out-format=%s' % shlex_quote(changed_marker + '%i %n%L'))
# find the last specified out-format
out_format = ''
for rsync_opt in rsync_opts:
if rsync_opt.startswith('--out-format='):
out_format = rsync_opt.replace('--out-format=', '', 1)
# force a known out-format so we can test for changes and return a known format of diff
diff_marker = 'DIFF'
if out_format == '' or module._diff:
diff_detail = '%n%L'
else:
diff_detail = ''
cmd.append('--out-format=%s' % shlex_quote('%s//%s//%%i//%s' % (out_format, diff_marker, diff_detail)))
cmd.append(shlex_quote(source))
cmd.append(shlex_quote(dest))
@ -624,18 +636,36 @@ def main():
if rc:
return module.fail_json(msg=err, rc=rc, cmd=cmdstr)
if link_dest:
# a leading period indicates no change
changed = (changed_marker + '.') not in out
else:
changed = changed_marker in out
changed = False
diff = []
out_lines = []
# remove forced out-format suffix, check for file changes
for line in out.split('\n'):
match = re.match('(.*)//%s//(...*?)//(.*)$' % diff_marker, line)
if match:
default_diff = '%s %s' % (match.group(2), match.group(3))
out_clean = out.replace(changed_marker, '')
out_lines = out_clean.split('\n')
if module._diff:
diff.append(default_diff)
if out_format == '':
out_lines.append(default_diff)
else:
out_lines.append(match.group(1))
# a period in the first position indicates no changes to the file's contents
# a period in every other position from the third onward indicates no attribute changes
if not re.match(r'\..\.*$', match.group(2)):
changed = True
else:
out_lines.append(line)
out_clean = '\n'.join(out_lines)
while '' in out_lines:
out_lines.remove('')
if module._diff:
diff = {'prepared': out_clean}
diff = {'prepared': '\n'.join(diff)}
return module.exit_json(changed=changed, msg=out_clean,
rc=rc, cmd=cmdstr, stdout_lines=out_lines,
diff=diff)