mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-03-07 10:05:18 +01:00
Compare commits
9 commits
23ec1fab5d
...
30b301ad16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30b301ad16 | ||
|
|
692b906b82 | ||
|
|
aece4a9632 | ||
|
|
2cd1a6e4ab | ||
|
|
8af0b227cc | ||
|
|
8cdf51b3b3 | ||
|
|
0b6eb4506b | ||
|
|
dea22dcf4e | ||
|
|
dd3b97069b |
6 changed files with 114 additions and 125 deletions
|
|
@ -7,5 +7,9 @@ skip_list:
|
||||||
- meta-runtime[unsupported-version] # This rule doesn't make any sense
|
- meta-runtime[unsupported-version] # This rule doesn't make any sense
|
||||||
- fqcn[deep] # This rule produces false positives for files in tests/unit/plugins/action/fixtures/
|
- fqcn[deep] # This rule produces false positives for files in tests/unit/plugins/action/fixtures/
|
||||||
- sanity[cannot-ignore] # This rule is skipped to keep backward compatibility with Python 2
|
- sanity[cannot-ignore] # This rule is skipped to keep backward compatibility with Python 2
|
||||||
|
|
||||||
exclude_paths:
|
exclude_paths:
|
||||||
- changelogs/
|
- changelogs/
|
||||||
|
- .github/
|
||||||
|
- tests/
|
||||||
|
- meta/
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ stages:
|
||||||
test: units
|
test: units
|
||||||
- name: Lint
|
- name: Lint
|
||||||
test: lint
|
test: lint
|
||||||
|
|
||||||
- stage: Sanity_2_20
|
- stage: Sanity_2_20
|
||||||
displayName: Ansible 2.20 Sanity & Units & Lint
|
displayName: Ansible 2.20 Sanity & Units & Lint
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -72,6 +73,7 @@ stages:
|
||||||
test: units
|
test: units
|
||||||
- name: Lint
|
- name: Lint
|
||||||
test: lint
|
test: lint
|
||||||
|
|
||||||
- stage: Sanity_2_19
|
- stage: Sanity_2_19
|
||||||
displayName: Ansible 2.19 Sanity & Units & Lint
|
displayName: Ansible 2.19 Sanity & Units & Lint
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -87,6 +89,7 @@ stages:
|
||||||
test: units
|
test: units
|
||||||
- name: Lint
|
- name: Lint
|
||||||
test: lint
|
test: lint
|
||||||
|
|
||||||
- stage: Sanity_2_18
|
- stage: Sanity_2_18
|
||||||
displayName: Ansible 2.18 Sanity & Units & Lint
|
displayName: Ansible 2.18 Sanity & Units & Lint
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -102,6 +105,7 @@ stages:
|
||||||
test: units
|
test: units
|
||||||
- name: Lint
|
- name: Lint
|
||||||
test: lint
|
test: lint
|
||||||
|
|
||||||
- stage: Sanity_2_17
|
- stage: Sanity_2_17
|
||||||
displayName: Ansible 2.17 Sanity & Units & Lint
|
displayName: Ansible 2.17 Sanity & Units & Lint
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -117,21 +121,7 @@ stages:
|
||||||
test: units
|
test: units
|
||||||
- name: Lint
|
- name: Lint
|
||||||
test: lint
|
test: lint
|
||||||
- stage: Sanity_2_16
|
|
||||||
displayName: Ansible 2.16 Sanity & Units & Lint
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
nameFormat: "{0}"
|
|
||||||
testFormat: 2.16/{0}
|
|
||||||
targets:
|
|
||||||
- name: Sanity
|
|
||||||
test: sanity
|
|
||||||
- name: Units
|
|
||||||
test: units
|
|
||||||
- name: Lint
|
|
||||||
test: lint
|
|
||||||
## Docker
|
## Docker
|
||||||
- stage: Docker_devel
|
- stage: Docker_devel
|
||||||
displayName: Docker devel
|
displayName: Docker devel
|
||||||
|
|
@ -141,12 +131,13 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: devel/linux/{0}/1
|
testFormat: devel/linux/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: Fedora 42
|
- name: Fedora 43
|
||||||
test: fedora42
|
test: fedora43
|
||||||
- name: Ubuntu 22.04
|
- name: Ubuntu 22.04
|
||||||
test: ubuntu2204
|
test: ubuntu2204
|
||||||
- name: Ubuntu 24.04
|
- name: Ubuntu 24.04
|
||||||
test: ubuntu2404
|
test: ubuntu2404
|
||||||
|
|
||||||
- stage: Docker_2_20
|
- stage: Docker_2_20
|
||||||
displayName: Docker 2.20
|
displayName: Docker 2.20
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -161,6 +152,7 @@ stages:
|
||||||
test: ubuntu2204
|
test: ubuntu2204
|
||||||
- name: Ubuntu 24.04
|
- name: Ubuntu 24.04
|
||||||
test: ubuntu2404
|
test: ubuntu2404
|
||||||
|
|
||||||
- stage: Docker_2_19
|
- stage: Docker_2_19
|
||||||
displayName: Docker 2.19
|
displayName: Docker 2.19
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -175,6 +167,7 @@ stages:
|
||||||
test: ubuntu2204
|
test: ubuntu2204
|
||||||
- name: Ubuntu 24.04
|
- name: Ubuntu 24.04
|
||||||
test: ubuntu2404
|
test: ubuntu2404
|
||||||
|
|
||||||
- stage: Docker_2_18
|
- stage: Docker_2_18
|
||||||
displayName: Docker 2.18
|
displayName: Docker 2.18
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -189,6 +182,7 @@ stages:
|
||||||
test: ubuntu2204
|
test: ubuntu2204
|
||||||
- name: Ubuntu 24.04
|
- name: Ubuntu 24.04
|
||||||
test: ubuntu2404
|
test: ubuntu2404
|
||||||
|
|
||||||
- stage: Docker_2_17
|
- stage: Docker_2_17
|
||||||
displayName: Docker 2.17
|
displayName: Docker 2.17
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -201,20 +195,6 @@ stages:
|
||||||
test: fedora39
|
test: fedora39
|
||||||
- name: Ubuntu 22.04
|
- name: Ubuntu 22.04
|
||||||
test: ubuntu2204
|
test: ubuntu2204
|
||||||
- stage: Docker_2_16
|
|
||||||
displayName: Docker 2.16
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
testFormat: 2.16/linux/{0}/1
|
|
||||||
targets:
|
|
||||||
- name: CentOS 7
|
|
||||||
test: centos7
|
|
||||||
- name: Fedora 38
|
|
||||||
test: fedora38
|
|
||||||
- name: Ubuntu 22.04
|
|
||||||
test: ubuntu2204
|
|
||||||
|
|
||||||
## Remote
|
## Remote
|
||||||
- stage: Remote_devel
|
- stage: Remote_devel
|
||||||
|
|
@ -225,14 +205,15 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: devel/{0}/1
|
testFormat: devel/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 10.0
|
- name: RHEL 10.1
|
||||||
test: rhel/10.0
|
test: rhel/10.1
|
||||||
- name: RHEL 9.6
|
- name: RHEL 9.7
|
||||||
test: rhel/9.6
|
test: rhel/9.7
|
||||||
- name: FreeBSD 14.3
|
- name: FreeBSD 14.3
|
||||||
test: freebsd/14.3
|
test: freebsd/14.3
|
||||||
- name: FreeBSD 13.5
|
- name: FreeBSD 15.0
|
||||||
test: freebsd/13.5
|
test: freebsd/15.0
|
||||||
|
|
||||||
- stage: Remote_2_20
|
- stage: Remote_2_20
|
||||||
displayName: Remote 2.20
|
displayName: Remote 2.20
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -241,14 +222,15 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: 2.20/{0}/1
|
testFormat: 2.20/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 10.0
|
- name: RHEL 10.1
|
||||||
test: rhel/10.0
|
test: rhel/10.1
|
||||||
- name: RHEL 9.6
|
- name: RHEL 9.7
|
||||||
test: rhel/9.6
|
test: rhel/9.7
|
||||||
- name: FreeBSD 14.3
|
- name: FreeBSD 14.3
|
||||||
test: freebsd/14.3
|
test: freebsd/14.3
|
||||||
- name: FreeBSD 13.5
|
- name: FreeBSD 13.5
|
||||||
test: freebsd/13.5
|
test: freebsd/13.5
|
||||||
|
|
||||||
- stage: Remote_2_19
|
- stage: Remote_2_19
|
||||||
displayName: Remote 2.19
|
displayName: Remote 2.19
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -257,14 +239,15 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: 2.19/{0}/1
|
testFormat: 2.19/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 10.0
|
- name: RHEL 10.1
|
||||||
test: rhel/10.0
|
test: rhel/10.1
|
||||||
- name: RHEL 9.5
|
- name: RHEL 9.7
|
||||||
test: rhel/9.5
|
test: rhel/9.7
|
||||||
- name: FreeBSD 14.2
|
- name: FreeBSD 14.2
|
||||||
test: freebsd/14.2
|
test: freebsd/14.2
|
||||||
- name: FreeBSD 13.5
|
- name: FreeBSD 13.5
|
||||||
test: freebsd/13.5
|
test: freebsd/13.5
|
||||||
|
|
||||||
- stage: Remote_2_18
|
- stage: Remote_2_18
|
||||||
displayName: Remote 2.18
|
displayName: Remote 2.18
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -273,12 +256,13 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: 2.18/{0}/1
|
testFormat: 2.18/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 10.0
|
- name: RHEL 10.1
|
||||||
test: rhel/10.0
|
test: rhel/10.1
|
||||||
- name: RHEL 9.4
|
- name: RHEL 9.7
|
||||||
test: rhel/9.4
|
test: rhel/9.7
|
||||||
- name: FreeBSD 13.5
|
- name: FreeBSD 13.5
|
||||||
test: freebsd/13.5
|
test: freebsd/13.5
|
||||||
|
|
||||||
- stage: Remote_2_17
|
- stage: Remote_2_17
|
||||||
displayName: Remote 2.17
|
displayName: Remote 2.17
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
@ -292,26 +276,12 @@ stages:
|
||||||
test: rhel/10.0
|
test: rhel/10.0
|
||||||
- name: FreeBSD 13.5
|
- name: FreeBSD 13.5
|
||||||
test: freebsd/13.5
|
test: freebsd/13.5
|
||||||
- stage: Remote_2_16
|
|
||||||
displayName: Remote 2.16
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
testFormat: 2.16/{0}/1
|
|
||||||
targets:
|
|
||||||
# 2.16 remote target only has RHEL 9.6 image
|
|
||||||
- name: RHEL 9.6
|
|
||||||
test: rhel/9.6
|
|
||||||
|
|
||||||
## Finally
|
## Finally
|
||||||
|
|
||||||
- stage: Summary
|
- stage: Summary
|
||||||
condition: succeededOrFailed()
|
condition: succeededOrFailed()
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- Sanity_2_16
|
|
||||||
- Remote_2_16
|
|
||||||
- Docker_2_16
|
|
||||||
- Sanity_2_17
|
- Sanity_2_17
|
||||||
- Remote_2_17
|
- Remote_2_17
|
||||||
- Docker_2_17
|
- Docker_2_17
|
||||||
|
|
|
||||||
52
.github/BOTMETA.yml
vendored
52
.github/BOTMETA.yml
vendored
|
|
@ -1,52 +0,0 @@
|
||||||
---
|
|
||||||
automerge: false
|
|
||||||
files:
|
|
||||||
$module_utils/mount.py:
|
|
||||||
labels: mount
|
|
||||||
$modules/acl.py:
|
|
||||||
authors: astorije bcoca
|
|
||||||
labels: acl
|
|
||||||
ignore: astorije
|
|
||||||
$modules/at.py:
|
|
||||||
authors: risaacson
|
|
||||||
labels: at
|
|
||||||
$modules/authorized_key.py:
|
|
||||||
authors: ansible
|
|
||||||
labels: authorized_key
|
|
||||||
$modules/mount.py:
|
|
||||||
authors: ansible skvidal
|
|
||||||
maintainers: jtyr
|
|
||||||
labels: mount
|
|
||||||
ignore: skvidal
|
|
||||||
$modules/patch.py:
|
|
||||||
authors: jirutka luisperlaz
|
|
||||||
$modules/seboolean.py:
|
|
||||||
authors: sfromm
|
|
||||||
labels: seboolean
|
|
||||||
$modules/selinux.py:
|
|
||||||
authors: goozbach
|
|
||||||
maintainers: samdoran
|
|
||||||
labels: selinux
|
|
||||||
$modules/synchronize.py:
|
|
||||||
authors: tima
|
|
||||||
labels: synchronize
|
|
||||||
$modules/sysctl.py:
|
|
||||||
authors: davixx
|
|
||||||
maintainers: Akasurde
|
|
||||||
labels: sysctl
|
|
||||||
$plugins/:
|
|
||||||
labels: profile
|
|
||||||
$plugins/debug.py:
|
|
||||||
labels: debug
|
|
||||||
$plugins/patch.py:
|
|
||||||
labels: patch
|
|
||||||
$plugins/synchronize.py:
|
|
||||||
labels: synchronize
|
|
||||||
$plugins/timer.py:
|
|
||||||
macros:
|
|
||||||
actions: plugins/action
|
|
||||||
callbacks: plugins/callback
|
|
||||||
module_utils: plugins/module_utils
|
|
||||||
modules: plugins/modules
|
|
||||||
plugins: plugins/plugins
|
|
||||||
shells: plugins/shell
|
|
||||||
35
.github/workflows/certification.yml
vendored
Normal file
35
.github/workflows/certification.yml
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
# This workflow calls the latest version of the
|
||||||
|
# reusable workflow.
|
||||||
|
# You can copy this file into your respository if
|
||||||
|
# you want to check against pinned versions of
|
||||||
|
# Automation Hub tests.
|
||||||
|
name: Run collection certification checks
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 6 * * *'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: cert-ver-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
|
||||||
|
# Files that are not related to the core functionality
|
||||||
|
# of your collection can cause Ansible Lint to fail.
|
||||||
|
# If this happens, add an .ansible-lint file that includes
|
||||||
|
# those files and directories to the root of your
|
||||||
|
# repository; for example:
|
||||||
|
# https://github.com/ansible-collections/partner-certification-checker/blob/main/.ansible-lint
|
||||||
|
# https://github.com/ansible-collections/partner-certification-checker/blob/main/.ansible-lint
|
||||||
|
|
||||||
|
# If there are sanity test failures that cannot be fixed and are allowed to ignore
|
||||||
|
# https://docs.ansible.com/projects/lint/rules/sanity/, create a sanity ignore file
|
||||||
|
# https://docs.ansible.com/projects/ansible/devel/dev_guide/testing/sanity/ignores.html#ignore-file-location
|
||||||
|
# for each affected version of ansible-core (for example, `tests/sanity/ignore-2.18.txt`) and add corresponding entries.
|
||||||
|
jobs:
|
||||||
|
call:
|
||||||
|
uses: ansible-collections/partner-certification-checker/.github/workflows/certification-reusable.yml@v0.1
|
||||||
|
|
@ -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)
|
||||||
|
|
@ -366,6 +366,7 @@ EXAMPLES = r'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
|
import re
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils._text import to_bytes, to_native
|
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))
|
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)
|
cmd.append('--link-dest=%s' % link_path)
|
||||||
|
|
||||||
changed_marker = '<<CHANGED>>'
|
# find the last specified out-format
|
||||||
cmd.append('--out-format=%s' % shlex_quote(changed_marker + '%i %n%L'))
|
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(source))
|
||||||
cmd.append(shlex_quote(dest))
|
cmd.append(shlex_quote(dest))
|
||||||
|
|
@ -624,18 +636,36 @@ def main():
|
||||||
if rc:
|
if rc:
|
||||||
return module.fail_json(msg=err, rc=rc, cmd=cmdstr)
|
return module.fail_json(msg=err, rc=rc, cmd=cmdstr)
|
||||||
|
|
||||||
if link_dest:
|
changed = False
|
||||||
# a leading period indicates no change
|
diff = []
|
||||||
changed = (changed_marker + '.') not in out
|
out_lines = []
|
||||||
else:
|
# remove forced out-format suffix, check for file changes
|
||||||
changed = changed_marker in out
|
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, '')
|
if module._diff:
|
||||||
out_lines = out_clean.split('\n')
|
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:
|
while '' in out_lines:
|
||||||
out_lines.remove('')
|
out_lines.remove('')
|
||||||
|
|
||||||
if module._diff:
|
if module._diff:
|
||||||
diff = {'prepared': out_clean}
|
diff = {'prepared': '\n'.join(diff)}
|
||||||
return module.exit_json(changed=changed, msg=out_clean,
|
return module.exit_json(changed=changed, msg=out_clean,
|
||||||
rc=rc, cmd=cmdstr, stdout_lines=out_lines,
|
rc=rc, cmd=cmdstr, stdout_lines=out_lines,
|
||||||
diff=diff)
|
diff=diff)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue