Compare commits

...

17 commits

Author SHA1 Message Date
Mandar Kulkarni
1ee88a4231
Merge c401a5d331 into b0097bd14c 2024-11-06 08:35:52 +09:00
softwarefactory-project-zuul[bot]
b0097bd14c
Merge pull request #587 from saito-hideki/issue/587
Update README to cover RH guidelines

SUMMARY
This PR updates README.md to cover Red Hat guidelines
Also, this new content aligns with the community template content guidelines.

Fixes #585

ISSUE TYPE

Docs Pull Request

COMPONENT NAME

ansible.posix

ADDITIONAL INFORMATION
None

Reviewed-by: Adam Miller <admiller@redhat.com>
Reviewed-by: Andrew Klychkov <aklychko@redhat.com>
Reviewed-by: Hideki Saito <saito@fgrep.org>
2024-11-05 14:08:33 +00:00
Hideki Saito
b991f4f9af
Update README to cover RH guidelines
* Fixes #585

Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-11-05 21:30:07 +09:00
Mandar Kulkarni
c401a5d331 sanity fix in tests 2024-06-07 15:03:48 -07:00
Mandar Kulkarni
94059765b6 sanity fix in tests 2024-06-07 14:58:52 -07:00
Mandar Kulkarni
48c2e9310e sanity fix in tests 2024-06-07 14:52:22 -07:00
Mandar Kulkarni
0a58f59906 modified based on feedback 2024-06-07 14:48:33 -07:00
Mandar Kulkarni
892c045679 rebase 2024-06-07 14:45:58 -07:00
Mandar Kulkarni
793518be3c Modify based on feedback 2024-06-07 14:42:11 -07:00
Mandar Kulkarni
b4fe18e6ff Modifying output to be displayed based on feedback 2024-06-07 14:41:54 -07:00
mandar
e72424ae50 Adding tests, corrections 2024-06-07 14:41:21 -07:00
Mandar Kulkarni
6afd4cdcf1 Modifying based on feedback 2024-06-07 14:40:56 -07:00
Mandar Kulkarni
ee7748732c Added Changelog fragment 2024-06-07 14:40:56 -07:00
Mandar Kulkarni
1e0654f8b6 Fix: moving conditional to correct place 2024-06-07 14:40:56 -07:00
Mandar Kulkarni
fe7dd71bda Added documentation and example for quiet option 2024-06-07 14:40:55 -07:00
Mandar Kulkarni
1a4c2051e8 Adding rsync parameter 'quiet' to synchronize 2024-06-07 14:40:40 -07:00
Mandar Kulkarni
8bb61047f8 Adding parameter to synchronize module to suppress verbose output and print error only 2024-06-07 14:40:39 -07:00
6 changed files with 124 additions and 53 deletions

104
README.md
View file

@ -4,9 +4,6 @@
https://dev.azure.com/ansible/ansible.posix/_apis/build/status/CI?branchName=main)](https://dev.azure.com/ansible/ansible.posix/_build?definitionId=26) https://dev.azure.com/ansible/ansible.posix/_apis/build/status/CI?branchName=main)](https://dev.azure.com/ansible/ansible.posix/_build?definitionId=26)
[![Run Status](https://api.shippable.com/projects/5e669aaf8b17a60007e4d18d/badge?branch=main)]() <!--[![Codecov](https://img.shields.io/codecov/c/github/ansible-collections/ansible.posix)](https://codecov.io/gh/ansible-collections/ansible.posix)--> [![Run Status](https://api.shippable.com/projects/5e669aaf8b17a60007e4d18d/badge?branch=main)]() <!--[![Codecov](https://img.shields.io/codecov/c/github/ansible-collections/ansible.posix)](https://codecov.io/gh/ansible-collections/ansible.posix)-->
<!-- Describe the collection and why a user would want to use it. What does the collection do? -->
An Ansible Collection of modules and plugins that target POSIX UNIX/Linux and derivative Operating Systems.
## Communication ## Communication
* Join the Ansible forum: * Join the Ansible forum:
@ -14,65 +11,72 @@ An Ansible Collection of modules and plugins that target POSIX UNIX/Linux and de
* [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts. * [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts.
* [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events. * [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events.
* The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes. ## Description
For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html). <!-- Describe the collection and why a user would want to use it. What does the collection do? -->
An Ansible Collection of modules and plugins that target POSIX UNIX/Linux and derivative Operating Systems.
## Supported Versions of Ansible ## Requirements
<!--start requires_ansible-->
## Ansible version compatibility
This collection has been tested against following Ansible versions: **>=2.15**. * Python:
<!--end requires_ansible--> * The Python interpreter version must meet Ansible Core's requirements.
* Ansible Core:
- ansible-core 2.15 or later
## Included content ## Installation
Check out [Ansible Galaxy](https://galaxy.ansible.com/ui/repo/published/ansible/posix/content/) or [the Ansible documentation](https://docs.ansible.com/ansible/devel/collections/ansible/posix/) for all modules and plugins included in this collection.
## Installing this collection Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
You can install the ``ansible.posix`` collection with the Ansible Galaxy CLI: ```shell
ansible-galaxy collection install ansible.posix
```
ansible-galaxy collection install ansible.posix You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:
You can also include it in a `requirements.yml` file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:
```yaml ```yaml
---
collections: collections:
- name: ansible.posix - name: ansible.posix
``` ```
## Using this collection Note that if you install any collections from Ansible Galaxy, they will not be upgraded automatically when you upgrade the Ansible package.
To upgrade the collection to the latest available version, run the following command:
<!--Include some quick examples that cover the most common use cases for your collection content. --> ```shell
ansible-galaxy collection install ansible.posix --upgrade
```
See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details. You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version 1.0.0:
## Contributing to this collection ```shell
ansible-galaxy collection install ansible.posix:==1.0.0
```
<!--Describe how the community can contribute to your collection. At a minimum, include how and where users can create issues to report problems or request features for this collection. List contribution requirements, including preferred workflows and necessary testing, so you can benefit from community PRs. If you are following general Ansible contributor guidelines, you can link to - [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html). --> See [using Ansible collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.
We welcome community contributions to this collection. See [Contributing to Ansible-maintained collections](https://docs.ansible.com/ansible/devel/community/contributing_maintained_collections.html#contributing-maintained-collections) for complete details. * The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes.
* [Issues](https://github.com/ansible-collections/ansible.posix/issues) For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
* [Pull Requests](https://github.com/ansible-collections/ansible.posix/pulls)
* [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html)
### Code of Conduct ## Use Cases
This collection follows the Ansible project's
[Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html).
Please read and familiarize yourself with this document.
## Release notes You can see the general use-cases as an example by `ansible-doc` command like below.
See [changelog](https://github.com/ansible-collections/ansible.posix/blob/main/CHANGELOG.rst) for more details.
## External requirements For example, ansible.posix.firewalld module:
```shell
ansible-doc ansible.posix.firewalld
```
None Also, if you want to confirm the plugins descriptions, you can follow the following option with `ansible-doc` command:
## Tested with Ansible For example, ansible.posix.profile_tasks callback plugin:
```shell
ansible-doc -t callback ansible.posix.profile_tasks
```
<!-- List the versions of Ansible the collection has been tested with. Must match what is in galaxy.yml. --> ## Testing
The following ansible-core versions have been tested with this collection:
- ansible-core 2.19 (devel) - ansible-core 2.19 (devel)
- ansible-core 2.18 (stable) * - ansible-core 2.18 (stable) *
@ -82,20 +86,30 @@ None
*Note: For ansible-core 2.18, CI only covers sanity tests and no integration tests will be run until the test environment is released.* *Note: For ansible-core 2.18, CI only covers sanity tests and no integration tests will be run until the test environment is released.*
## Roadmap ## Contributing
<!-- Optional. Include the roadmap for this collection, and the proposed release/versioning strategy so users can anticipate the upgrade/update cycle. --> We welcome community contributions to this collection. For more details, see [Contributing to Ansible-maintained collections](https://docs.ansible.com/ansible/devel/community/contributing_maintained_collections.html#contributing-maintained-collections) for complete details.
## More information * [Issues](https://github.com/ansible-collections/ansible.posix/issues)
* [Pull Requests](https://github.com/ansible-collections/ansible.posix/pulls)
* [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html)
<!-- List out where the user can find additional information, such as working group meeting times, slack/IRC channels, or documentation for the product this collection automates. At a minimum, link to: -->
- [Ansible Collection overview](https://github.com/ansible-collections/overview) ## Support
- [Ansible User guide](https://docs.ansible.com/ansible/latest/user_guide/index.html)
- [Ansible Developer guide](https://docs.ansible.com/ansible/latest/dev_guide/index.html)
- [Ansible Community code of conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
## Licensing See [Communication](#Communication) section.
## Release Notes and Roadmap
See [changelog](https://github.com/ansible-collections/ansible.posix/blob/main/CHANGELOG.rst) for more details.
## Related Information
This document was written using the following [template](https://access.redhat.com/articles/7068606).
The README has been carefully prepared to cover the [community template](https://github.com/ansible-collections/collection_template/blob/main/README.md), but if you find any problems, please file a [documentation issue](https://github.com/ansible-collections/ansible.posix/issues/new?assignees=&labels=&projects=&template=documentation_report.md).
## License Information
GNU General Public License v3.0 or later. GNU General Public License v3.0 or later.

View file

@ -0,0 +1,2 @@
minor_changes:
- synchronize - add the ``quiet`` option to suppress non-error messages (https://github.com/ansible-collections/ansible.posix/issues/171).

View file

@ -0,0 +1,3 @@
---
trivial:
- README.md - update README to cover RH guidelines (https://github.com/ansible-collections/ansible.posix/issues/585).

View file

@ -8,7 +8,6 @@
from __future__ import absolute_import, division, print_function from __future__ import absolute_import, division, print_function
__metaclass__ = type __metaclass__ = type
DOCUMENTATION = r''' DOCUMENTATION = r'''
--- ---
module: synchronize module: synchronize
@ -204,6 +203,12 @@ options:
description: Internal use only. See O(use_ssh_args) for ssh arg settings. description: Internal use only. See O(use_ssh_args) for ssh arg settings.
type: str type: str
required: false required: false
quiet:
description:
- This option specifies quiet option which on true suppresses the output.
type: bool
default: false
version_added: 1.6.0
notes: notes:
- C(rsync) must be installed on both the local and remote host. - C(rsync) must be installed on both the local and remote host.
@ -361,6 +366,12 @@ EXAMPLES = r'''
src: /tmp/localpath/ src: /tmp/localpath/
dest: /tmp/remotepath dest: /tmp/remotepath
rsync_path: /usr/gnu/bin/rsync rsync_path: /usr/gnu/bin/rsync
- name: Synchronization with quiet option enabled
ansible.posix.synchronize:
src: some/relative/path
dest: /some/absolute/path
quiet: true
''' '''
@ -438,6 +449,7 @@ def main():
delay_updates=dict(type='bool', default=True), delay_updates=dict(type='bool', default=True),
mode=dict(type='str', default='push', choices=['pull', 'push']), mode=dict(type='str', default='push', choices=['pull', 'push']),
link_dest=dict(type='list', elements='path'), link_dest=dict(type='list', elements='path'),
quiet=dict(type='bool', default=False)
), ),
supports_check_mode=True, supports_check_mode=True,
) )
@ -478,6 +490,7 @@ def main():
verify_host = module.params['verify_host'] verify_host = module.params['verify_host']
link_dest = module.params['link_dest'] link_dest = module.params['link_dest']
delay_updates = module.params['delay_updates'] delay_updates = module.params['delay_updates']
quiet = module.params['quiet']
if '/' not in rsync: if '/' not in rsync:
rsync = module.get_bin_path(rsync, required=True) rsync = module.get_bin_path(rsync, required=True)
@ -602,6 +615,9 @@ def main():
cmd.append(shlex_quote(source)) cmd.append(shlex_quote(source))
cmd.append(shlex_quote(dest)) cmd.append(shlex_quote(dest))
if quiet:
cmd.append('--quiet')
cmdstr = ' '.join(cmd) cmdstr = ' '.join(cmd)
# If we are using password authentication, write the password into the pipe # If we are using password authentication, write the password into the pipe
@ -634,14 +650,17 @@ def main():
out_lines = out_clean.split('\n') out_lines = out_clean.split('\n')
while '' in out_lines: while '' in out_lines:
out_lines.remove('') out_lines.remove('')
if module._diff:
diff = {'prepared': out_clean}
return module.exit_json(changed=changed, msg=out_clean,
rc=rc, cmd=cmdstr, stdout_lines=out_lines,
diff=diff)
return module.exit_json(changed=changed, msg=out_clean, result = dict(changed=changed, rc=rc, cmd=cmdstr, stdout_lines=out_lines, msg=out_clean)
rc=rc, cmd=cmdstr, stdout_lines=out_lines)
if quiet:
changes = out.count(changed_marker) if changed else 0
result['msg'] = "%s files/directories have been synchronized" % changes
if module._diff:
result['diff'] = {'prepared': out_clean}
return module.exit_json(**result)
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -0,0 +1,2 @@
[testgroup]
testhost ansible_connection="local" ansible_pipelining="yes" ansible_python_interpreter="/Users/mandkulk/venv3.9/bin/python"

View file

@ -339,6 +339,37 @@
- stat_result_b.stat.exists == True - stat_result_b.stat.exists == True
- stat_result_b.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' - stat_result_b.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
- name: Synchronize files with quiet option
ansible.posix.synchronize:
src: '{{ output_dir }}/foo.txt'
dest: '{{ output_dir }}/foo.result'
quiet: true
register: sync_result
- name: Assertion for synchronize with quiet option
ansible.builtin.assert:
that:
- '''files/directories have been synchronized'' in sync_result.msg'
- name: Cleanup
ansible.builtin.file:
state: absent
path: '{{ output_dir }}/{{ item }}'
loop:
- foo.result
- bar.result
- name: Synchronize files without quiet option
ansible.posix.synchronize:
src: '{{ output_dir }}/foo.txt'
dest: '{{ output_dir }}/foo.result'
register: sync_result
- name: Assertion for synchronize without quiet option
ansible.builtin.assert:
that:
- '''files/directories have been synchronized'' not in sync_result.msg'
- name: Cleanup - name: Cleanup
ansible.builtin.file: ansible.builtin.file:
state: absent state: absent