17 Commits

Author SHA1 Message Date
softwarefactory-project-zuul[bot]
31376a3ee6 Merge pull request #583 from saito-hideki/stable-1_v1.6.2
Release 1.6.2 commit

SUMMARY
Release 1.6.2 commit. The purpose of this release is to fix the version information that was reverted in 1.6.1.
It will replace the minimum version of Ansible Core 2.14 with 2.15.

#149

ISSUE TYPE

Feature Pull Request

COMPONENT NAME

ansible.posix(stable-1)

ADDITIONAL INFORMATION
None

Reviewed-by: Adam Miller <admiller@redhat.com>
2024-10-22 03:21:45 +00:00
Hideki Saito
9d59f62974 Release 1.6.2 commit
Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-10-22 10:42:09 +09:00
softwarefactory-project-zuul[bot]
3fcaa30290 Merge pull request #580 from saito-hideki/stable-1
[backport][stable-1] Drop ansible-core 2.14 and set 2.15 minimum version

SUMMARY

Drop ansible-core 2.14 and set 2.15 minimum version.
Modify conditions for selinux integration tests to avoid RHEL7.9 integration test failure.


backports #562
fixes #578

ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME

ansible.posix(stable-1)

ADDITIONAL INFORMATION
None
2024-10-15 23:55:57 +00:00
Hideki Saito
73f7519133 Drop ansible-core 2.14 and set 2.15 minimum version
* backports #562
* fixes #578

Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-10-15 16:38:47 +09:00
softwarefactory-project-zuul[bot]
31559441dc Merge pull request #574 from saito-hideki/stable-1_v1.6.1
Release 1.6.1 commit

SUMMARY
Release 1.6.1 commit

#149
#463

ISSUE TYPE

Feature Pull Request

COMPONENT NAME

ansible.posix

ADDITIONAL INFORMATION
None
2024-10-11 01:03:21 +00:00
Hideki Saito
6c3892c01b Release 1.6.1 commit
Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-10-11 09:24:32 +09:00
softwarefactory-project-zuul[bot]
5717de0974 Merge pull request #572 from saito-hideki/stable-1
Create a stable branch for ansible.posix version 1.x as stable-1

SUMMARY
We are creating a stable branch to improve maintainability and ensure more accurate releases in preparation for the version 2.x release.
The new features(A.K.A minor-changes and major-changes) will be reflected in main branch only, but bug fixes can be backported to the stable branch.

Fixes #463
Fixes #573

ISSUE TYPE

Feature Pull Request

COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION



None

Reviewed-by: Andrew Klychkov <aklychko@redhat.com>
Reviewed-by: Adam Miller <admiller@redhat.com>
Reviewed-by: Felix Fontein <felix@fontein.de>
2024-10-10 22:49:43 +00:00
Hideki Saito
e270777b8d Create a stable branch for ansible.posix version 1.x as stable-1
* Created sable-1 branch for version 1.x release
* Reverted removal of skippy plugin
* Chabnged the scheduled removal to December 5, 2024.

Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-10-10 09:57:39 +09:00
Hideki Saito
098b5bee70 Revert "Merge pull request #568 from abakanovskii/feature/add_path_option_authorized_key"
This reverts commit 0821768bcb, reversing
changes made to 5321a9ecb5.
2024-10-09 15:33:16 +09:00
Hideki Saito
3a085b0b10 Revert "Merge pull request #387 from ansiblejunky/fix-callback-output"
This reverts commit f4baa4c6d8, reversing
changes made to 0821768bcb.
2024-10-09 15:32:45 +09:00
Hideki Saito
cd43bd10bb Revert "Merge pull request #556 from Akasurde/i350"
This reverts commit 9a2ddcd713, reversing
changes made to 7d219a7e05.
2024-10-09 15:32:23 +09:00
softwarefactory-project-zuul[bot]
9cf2d8cc48 Merge pull request #365 from copyrights/last_wins
mount: remove boot exception if defaults in opts

SUMMARY

There is no need for an exception on defaults option when adding noauto. Mount is implemented as last win.
from mount(8):
       If you want to override mount options from /etc/fstab, you have to use the -o option:

          mount device|dir -o options

       and then the mount options from the command line will be appended to the list of options from /etc/fstab. This default behaviour can be changed using the --options-mode command-line option. The usual behavior is that the last
       option wins if there are conflicting ones.


Fixes #364
ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME


ansible.posix.mount

ADDITIONAL INFORMATION

Reviewed-by: Hideki Saito <saito@fgrep.org>
2024-10-04 06:21:14 +00:00
copyrights
2041e7f918 mount: remove boot exception if defaults in opts 2024-10-04 14:39:04 +09:00
softwarefactory-project-zuul[bot]
f4baa4c6d8 Merge pull request #387 from ansiblejunky/fix-callback-output
Fix callback output to align header with roles, tasks and play RECAP

SUMMARY
All three callback plugins (timer, roles, tasks) do not produce headers in the output that align with how we do "PLAY RECAP *********" that is generated by the "default" output callback. So these changes are provided to align the callback plugins and have a clean output that is much more readable.
Note, the asterisks are generated just as how they are for "PLAY RECAP", where it extends to the end of the terminal window.
I am considering this as a "bug" in that the output was never aligned, instead of a feature since this does not provide any new feature per-se.
ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME

ansible.posix.timer
ansible.posix.profile_tasks
ansible.posix.profile_roles
ADDITIONAL INFORMATION


The new output is shown below. You can see the headers are now all the same and broken down by PLAY, ROLE, TASKS, and PLAYBOOK RECAP.

PLAY RECAP ***************************************************************************************************************************************************************************************
localhost                  : ok=14   changed=2    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   


ROLE RECAP ***************************************************************************************************************************************************************************************
awx.awx.subscriptions --------------------------------------------------- 4.81s
users ------------------------------------------------------------------- 2.89s
labels ------------------------------------------------------------------ 2.86s
settings ---------------------------------------------------------------- 2.46s
credential_types -------------------------------------------------------- 2.27s
organizations ----------------------------------------------------------- 2.21s
teams ------------------------------------------------------------------- 2.21s
awx.awx.license --------------------------------------------------------- 1.49s
dispatch ---------------------------------------------------------------- 0.58s
credentials ------------------------------------------------------------- 0.03s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
total ------------------------------------------------------------------ 21.80s

TASKS RECAP **************************************************************************************************************************************************************************************
Get subscriptions with a filter ----------------------------------------------------------------------------------------------------------------------------------------------------------- 4.81s
redhat_cop.controller_configuration.users : Configure Users | Wait for finish the Users creation ------------------------------------------------------------------------------------------ 1.93s
redhat_cop.controller_configuration.labels : Configure Labels | Wait for finish the Label creation ---------------------------------------------------------------------------------------- 1.91s
redhat_cop.controller_configuration.settings : Configure Settings | Wait for finish the Settings creation --------------------------------------------------------------------------------- 1.75s
redhat_cop.controller_configuration.teams : Configure Teams | Wait for finish the Teams creation ------------------------------------------------------------------------------------------ 1.63s
redhat_cop.controller_configuration.organizations : Configure Controller Organizations | Wait for finish the organization creation -------------------------------------------------------- 1.62s
Attach to a pool -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1.49s
redhat_cop.controller_configuration.credential_types : Add Credential Types --------------------------------------------------------------------------------------------------------------- 1.32s
redhat_cop.controller_configuration.users : Add controller user --------------------------------------------------------------------------------------------------------------------------- 0.96s
redhat_cop.controller_configuration.labels : Add a label to Controller -------------------------------------------------------------------------------------------------------------------- 0.95s
redhat_cop.controller_configuration.credential_types : Configure Controller Credential Types | Wait for finish the credential types creation ---------------------------------------------- 0.94s
redhat_cop.controller_configuration.settings : Update Ansible Controller Settings from dictionary or list of dictionaries ----------------------------------------------------------------- 0.70s
redhat_cop.controller_configuration.organizations : Add organizations --------------------------------------------------------------------------------------------------------------------- 0.59s
redhat_cop.controller_configuration.teams : Create Ansible Controller Team ---------------------------------------------------------------------------------------------------------------- 0.58s
Run redhat_cop.controller_configuration.{{ __role.role }} role ---------------------------------------------------------------------------------------------------------------------------- 0.58s
redhat_cop.controller_configuration.credentials : Add Credentials ------------------------------------------------------------------------------------------------------------------------- 0.03s

PLAYBOOK RECAP ***********************************************************************************************************************************************************************************
Playbook run took 0 days, 0 hours, 0 minutes, 21 seconds


Current output (how it is today) for comparison:
PLAY RECAP ***************************************************************************************************************************************************************************************
localhost                  : ok=14   changed=2    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

Playbook run took 0 days, 0 hours, 0 minutes, 23 seconds
Tuesday 20 September 2022  15:00:49 -0700 (0:00:00.038)       0:00:23.039 ***** 
=============================================================================== 
Get subscriptions with a filter ----------------------------------------------------------------------------------------------------------------------------------------------------------- 5.49s
redhat_cop.controller_configuration.labels : Configure Labels | Wait for finish the Label creation ---------------------------------------------------------------------------------------- 1.98s
redhat_cop.controller_configuration.users : Configure Users | Wait for finish the Users creation ------------------------------------------------------------------------------------------ 1.92s
redhat_cop.controller_configuration.organizations : Configure Controller Organizations | Wait for finish the organization creation -------------------------------------------------------- 1.84s
redhat_cop.controller_configuration.settings : Configure Settings | Wait for finish the Settings creation --------------------------------------------------------------------------------- 1.78s
redhat_cop.controller_configuration.teams : Configure Teams | Wait for finish the Teams creation ------------------------------------------------------------------------------------------ 1.61s
Attach to a pool -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1.53s
redhat_cop.controller_configuration.credential_types : Add Credential Types --------------------------------------------------------------------------------------------------------------- 1.35s
redhat_cop.controller_configuration.users : Add controller user --------------------------------------------------------------------------------------------------------------------------- 0.95s
redhat_cop.controller_configuration.labels : Add a label to Controller -------------------------------------------------------------------------------------------------------------------- 0.95s
redhat_cop.controller_configuration.credential_types : Configure Controller Credential Types | Wait for finish the credential types creation ---------------------------------------------- 0.94s
redhat_cop.controller_configuration.settings : Update Ansible Controller Settings from dictionary or list of dictionaries ----------------------------------------------------------------- 0.73s
Run redhat_cop.controller_configuration.{{ __role.role }} role ---------------------------------------------------------------------------------------------------------------------------- 0.63s
redhat_cop.controller_configuration.organizations : Add organizations --------------------------------------------------------------------------------------------------------------------- 0.61s
redhat_cop.controller_configuration.teams : Create Ansible Controller Team ---------------------------------------------------------------------------------------------------------------- 0.60s
redhat_cop.controller_configuration.credentials : Add Credentials ------------------------------------------------------------------------------------------------------------------------- 0.04s
Tuesday 20 September 2022  15:00:49 -0700 (0:00:00.043)       0:00:23.041 ***** 
=============================================================================== 
awx.awx.subscriptions --------------------------------------------------- 5.49s
labels ------------------------------------------------------------------ 2.93s
users ------------------------------------------------------------------- 2.88s
settings ---------------------------------------------------------------- 2.51s
organizations ----------------------------------------------------------- 2.45s
credential_types -------------------------------------------------------- 2.29s
teams ------------------------------------------------------------------- 2.21s
awx.awx.license --------------------------------------------------------- 1.53s
dispatch ---------------------------------------------------------------- 0.63s
credentials ------------------------------------------------------------- 0.04s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
total ------------------------------------------------------------------ 22.95s

Reviewed-by: Hideki Saito <saito@fgrep.org>
2024-10-02 06:44:04 +00:00
John
afa724ba8a Improve callback output to align header with roles, tasks and play RECAP 2024-10-02 15:08:03 +09:00
softwarefactory-project-zuul[bot]
0821768bcb Merge pull request #568 from abakanovskii/feature/add_path_option_authorized_key
authorized_key: Allow local path to a key

SUMMARY

Add option to specify an absolute path to file with SSH key(s) for authorized_key

ISSUE TYPE

Feature Pull Request

COMPONENT NAME

authorized_key

ADDITIONAL INFORMATION


Before this change you would need to get key using ansible.builtin.slurp or something like ansible.builtin.command: cat <file> with register
I tried to keep it as simple as possible

# Now this is possible
- name: Set authorized keys taken from path
  ansible.posix.authorized_key:
    user: charlie
    state: present
    key: /home/charlie/.ssh/id_rsa.pub

Reviewed-by: Hideki Saito <saito@fgrep.org>
Reviewed-by: alexander
2024-09-30 07:07:25 +00:00
Александр Бакановский
5f3f8514eb Allow remote path for authorized_key 2024-09-30 09:40:03 +03:00
16 changed files with 154 additions and 29 deletions

1
.github/BOTMETA.yml vendored
View File

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

View File

@@ -4,6 +4,39 @@ ansible.posix Release Notes
.. contents:: Topics
v1.6.2
======
Release Summary
---------------
This is the bugfix release of the stable version ``ansible.posix`` collection.
This changelog contains all changes to the modules and plugins
in this collection that have been added after the release of
``ansible.posix`` 1.6.1.
Bugfixes
--------
- backport - Drop ansible-core 2.14 and set 2.15 minimum version (https://github.com/ansible-collections/ansible.posix/issues/578).
v1.6.1
======
Release Summary
---------------
This is the bugfix release of the stable version ``ansible.posix`` collection.
This changelog contains all changes to the modules and plugins
in this collection that have been added after the release of
``ansible.posix`` 1.6.1.
Bugfixes
--------
- acl - Fixed to set ACLs on paths mounted with NFS version 4 correctly (https://github.com/ansible-collections/ansible.posix/issues/240).
- mount - Handle ``boot`` option on Linux, NetBSD and OpenBSD correctly (https://github.com/ansible-collections/ansible.posix/issues/364).
- skippy - Revert removal of skippy plugin. It will be removed in version 2.0.0 (https://github.com/ansible-collections/ansible.posix/issues/573).
v1.6.0
======

View File

@@ -405,3 +405,43 @@ releases:
- dropping-ansible29.yml
- test-reqs.yml
release_date: '2024-09-11'
1.6.1:
changes:
bugfixes:
- acl - Fixed to set ACLs on paths mounted with NFS version 4 correctly (https://github.com/ansible-collections/ansible.posix/issues/240).
- mount - Handle ``boot`` option on Linux, NetBSD and OpenBSD correctly (https://github.com/ansible-collections/ansible.posix/issues/364).
- skippy - Revert removal of skippy plugin. It will be removed in version 2.0.0
(https://github.com/ansible-collections/ansible.posix/issues/573).
release_summary: 'This is the bugfix release of the stable version ``ansible.posix``
collection.
This changelog contains all changes to the modules and plugins
in this collection that have been added after the release of
``ansible.posix`` 1.6.1.'
fragments:
- 1.6.1.yml
- 365-boot-linux.yml
- 566_bump_version_161.yml
- 567_remove_version_added.yml
- 570_nfs4_acl.yml
- 571_ci_bump_core_version.yml
- 572_revert_removal_of_skippy.yml
release_date: '2024-10-11'
1.6.2:
changes:
bugfixes:
- backport - Drop ansible-core 2.14 and set 2.15 minimum version (https://github.com/ansible-collections/ansible.posix/issues/578).
release_summary: 'This is the bugfix release of the stable version ``ansible.posix``
collection.
This changelog contains all changes to the modules and plugins
in this collection that have been added after the release of
``ansible.posix`` 1.6.1.'
fragments:
- 1.6.2.yml
- 580_drop_ansible214.yml
release_date: '2024-10-22'

View File

@@ -1,3 +0,0 @@
---
trivial:
- Bump version to 1.6.1 for next release.

View File

@@ -1,3 +0,0 @@
---
trivial:
- mount - remove wrong version_added section from ``opts_no_log``.

View File

@@ -1,3 +0,0 @@
---
bugfixes:
- acl - Fixed to set ACLs on paths mounted with NFS version 4 correctly (https://github.com/ansible-collections/ansible.posix/issues/240).

View File

@@ -1,3 +0,0 @@
---
trivial:
- Bump ansible-core version to 2.19 of devel branch and add 2.18 to CI.

View File

@@ -1,7 +1,7 @@
---
namespace: ansible
name: posix
version: 1.6.1
version: 1.6.2
readme: README.md
authors:
- Ansible (github.com/ansible)

View File

@@ -1,2 +1,8 @@
---
requires_ansible: ">=2.15.0"
plugin_routing:
callback:
skippy:
deprecation:
removal_date: "2024-12-05"
warning_text: See the plugin documentation for more details

View File

@@ -128,8 +128,8 @@ class CallbackModule(CallbackBase):
self._display_tasktime()
def playbook_on_stats(self, stats):
# Align summary report header with other callback plugin summary
self._display.banner("ROLE RECAP")
self._display_tasktime()
self._display.display(filled("", fchar="="))
timestamp(self)
total_time = sum(self.totals.values())
@@ -141,4 +141,4 @@ class CallbackModule(CallbackBase):
msg_total = u"{0:-<70}{1:->9}".format(u'total ', u' {0:.02f}s'.format(total_time))
self._display.display(filled("", fchar="~"))
self._display.display(msg_total)
self._display.display(msg_total)

View File

@@ -193,8 +193,8 @@ class CallbackModule(CallbackBase):
self._display_tasktime()
def playbook_on_stats(self, stats):
# Align summary report header with other callback plugin summary
self._display.banner("TASKS RECAP")
self._display_tasktime()
self._display.display(filled("", fchar="="))
timestamp(self)
self.current = None
@@ -217,4 +217,4 @@ class CallbackModule(CallbackBase):
msg = u"{0:-<{2}}{1:->9}".format(result['name'] + u' ', u' {0:.02f}s'.format(result['elapsed']), self._display.columns - 9)
if 'path' in result:
msg += u"\n{0:-<{1}}".format(result['path'] + u' ', self._display.columns)
self._display.display(msg)
self._display.display(msg)

View File

@@ -0,0 +1,43 @@
# (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: '2024-12-05'
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

@@ -46,6 +46,4 @@ class CallbackModule(CallbackBase):
def v2_playbook_on_stats(self, stats):
end_time = datetime.utcnow()
runtime = end_time - self.start_time
# Align summary report header with other callback plugin summary
self._display.banner("PLAYBOOK RECAP")
self._display.display("Playbook run took %s days, %s hours, %s minutes, %s seconds\n\r" % (self.days_hours_minutes_seconds(runtime)))
self._display.display("Playbook run took %s days, %s hours, %s minutes, %s seconds" % (self.days_hours_minutes_seconds(runtime)))

View File

@@ -850,11 +850,8 @@ def main():
args['warnings'].append("Ignore the 'boot' due to 'opts' contains 'noauto'.")
elif not module.params['boot']:
args['boot'] = 'no'
if 'defaults' in opts:
args['warnings'].append("Ignore the 'boot' due to 'opts' contains 'defaults'.")
else:
opts.append('noauto')
args['opts'] = ','.join(opts)
opts.append('noauto')
args['opts'] = ','.join(opts)
# If fstab file does not exist, we first need to create it. This mainly
# happens when fstab option is passed to the module.

View File

@@ -472,6 +472,25 @@
path: /tmp/myfs
state: absent
- name: Mount the FS with noauto option and defaults
ansible.posix.mount:
path: /tmp/myfs
src: /tmp/myfs.img
fstype: ext3
state: mounted
boot: false
register: mount_info
- name: Assert the mount without noauto was successful
ansible.builtin.assert:
that:
- "'noauto' in mount_info['opts'].split(',')"
- name: Unmount FS
ansible.posix.mount:
path: /tmp/myfs
state: absent
- name: Remove the test FS
ansible.builtin.file:
path: '{{ item }}'

View File

@@ -128,8 +128,8 @@
ansible.builtin.assert:
that:
- selinux_config_original | length == selinux_config_after | length
- selinux_config_after[selinux_config_after.index('SELINUX=disabled')] is search("^SELINUX=\w+$")
- selinux_config_after[selinux_config_after.index('SELINUXTYPE=targeted')] is search("^SELINUXTYPE=\w+$")
- (selinux_config_after | select("search", "^SELINUX=disabled\s*$") | list | length) > 0
- (selinux_config_after | select("search", "^SELINUXTYPE=targeted\s*$") | list | length) > 0
- name: TEST 1 | Disable SELinux again, with kernel arguments update
ansible.posix.selinux: