Compare commits

...

10 commits

Author SHA1 Message Date
growf
cb3c99b58e
Merge 8cdf51b3b3 into 12a1c25f5e 2023-07-07 23:20:03 +01:00
softwarefactory-project-zuul[bot]
12a1c25f5e
Merge pull request #478 from maxamillion/test/rhel_updates
Update azure-pipelines for new RHEL versions

SUMMARY

Change to the CI system annnounced in the following required this change:
ansible-collections/news-for-maintainers#47
2023-07-06 22:34:53 +00:00
Adam Miller
7062be892e only for devel
Signed-off-by: Adam Miller <admiller@redhat.com>
2023-07-06 10:19:58 -05:00
softwarefactory-project-zuul[bot]
20c2c30d23
Merge pull request #477 from saito-hideki/issue/476/1
Update CI tests to address changes on ansible-core

SUMMARY
Replace Python3.9 with 3.12 for ansible-test

Addresses issue #476

ISSUE TYPE

CI Test Pull Request

COMPONENT NAME

ansible.posix

ADDITIONAL INFORMATION
None
2023-07-04 01:39:12 +00:00
Hideki Saito
4f1e6b4a6d Drop Python3.9 and update versions of RHEL,Fedora and FreeBSD for ansible-core:devel
* Addresses issue #476
* Drop Python3.9
* Replace Fedora 37 with 38
* Replace FreeBSD13.1 with 13.2
* Replace RHEL 8.7 with 8.8
* Replace RHEL 9.1 with 9.2

Signed-off-by: Hideki Saito <saito@fgrep.org>
2023-07-04 09:15:24 +09:00
Adam Miller
806ab9ef9d Update azure-pipelines for new RHEL versions
Change to the CI system annnounced in the following required this
change:

  https://github.com/ansible-collections/news-for-maintainers/issues/47

Signed-off-by: Adam Miller <admiller@redhat.com>
2023-06-29 10:57:49 -05: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
5 changed files with 54 additions and 21 deletions

View file

@ -53,8 +53,8 @@ stages:
targets:
- name: CentOS 7
test: centos7
- name: Fedora 37
test: fedora37
- name: Fedora 38
test: fedora38
- name: openSUSE 15 py3
test: opensuse15
- name: Ubuntu 20.04
@ -213,14 +213,14 @@ stages:
test: macos/13.2
- name: RHEL 7.9
test: rhel/7.9
- name: RHEL 8.7
test: rhel/8.7
- name: RHEL 9.1
test: rhel/9.1
- name: RHEL 8.8
test: rhel/8.8
- name: RHEL 9.2
test: rhel/9.2
- name: FreeBSD 12.4
test: freebsd/12.4
- name: FreeBSD 13.1
test: freebsd/13.1
- name: FreeBSD 13.2
test: freebsd/13.2
- stage: Remote_2_15
displayName: Remote 2.15
dependsOn: []

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,3 @@
---
trivial:
- "Drop Python3.9 and update versions of RHEL,Fedora and FreeBSD for ansible-core:devel test(https://github.com/ansible-collections/ansible.posix/issues/476)."

View file

@ -348,6 +348,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
@ -578,8 +579,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)))
# expand the paths
if '@' not in source:
@ -611,18 +623,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)

View file

@ -145,9 +145,7 @@ function cleanup
fi
if [ "${process_coverage}" ]; then
# use python 3.9 for coverage to avoid running out of memory during coverage xml processing
# only use it for coverage to avoid the additional overhead of setting up a virtual environment for a potential no-op job
virtualenv --python /usr/bin/python3.9 ~/ansible-venv
python3 -m venv ~/ansible-venv
set +ux
. ~/ansible-venv/bin/activate
set -ux