Compare commits

..

4 commits

Author SHA1 Message Date
Yves MOYROUD
916ebd5177
Merge 284025660c into f4baa4c6d8 2024-10-03 15:27:22 +00:00
Yves MOYROUD
284025660c
delete trailing spaces in mount.py
delete trailing spaces in comments in mount.py
2024-10-03 17:27:18 +02:00
Yves MOYROUD
f7f54f242d
Update mount.py
suppressed erroneous remaining TOTO check
2024-10-03 13:32:42 +02:00
Yves MOYROUD
966df79767
Update mount.py
new option keep_mountpoint enables keeping the mountpoint with state=absent
2024-10-03 11:36:45 +02:00

View file

@ -73,7 +73,7 @@ options:
point will be created.
- If V(unmounted), the device will be unmounted without changing I(fstab).
- V(present) only specifies that the device is to be configured in
I(fstab) and does not trigger or require a mount.
I(fstab) and does not trigger or require a mount.
- V(ephemeral) only specifies that the device is to be mounted, without changing
I(fstab). If it is already mounted, a remount will be triggered.
This will always return RV(ignore:changed=true). If the mount point O(path)
@ -87,7 +87,8 @@ options:
real source. V(absent) does not unmount recursively, and the module will
fail if multiple devices are mounted on the same mount point. Using
V(absent) with a mount point that is not registered in the I(fstab) has
no effect, use V(unmounted) instead.
no effect, use V(unmounted) instead. You can set O(keep_mountpoint) to
True to keep the mountpoint.
- V(remounted) specifies that the device will be remounted for when you
want to force a refresh on the mount itself (added in 2.9). This will
always return RV(ignore:changed=true). If O(opts) is set, the options will be
@ -132,6 +133,16 @@ options:
the original file back if you somehow clobbered it incorrectly.
type: bool
default: false
keep_mountpoint:
description:
- Change the default behaviour of state=absent by keeping the mountpoint
- With keep_mountpoint=true, state=absent is like unmounted plus the
fstab update.
- Use it if you care about finding original mountpoint content without failing
and want to remove the entry in fstab. If you have no entry to clean in
fstab you can use state=unmounted
type: bool
default: false
notes:
- As of Ansible 2.3, the O(name) option has been changed to O(path) as
default, but O(name) still works as well.
@ -779,6 +790,7 @@ def main():
src=dict(type='path'),
backup=dict(type='bool', default=False),
state=dict(type='str', required=True, choices=['absent', 'absent_from_fstab', 'mounted', 'present', 'unmounted', 'remounted', 'ephemeral']),
keep_mountpoint=dict(type='bool', default=False),
),
supports_check_mode=True,
required_if=(
@ -899,6 +911,11 @@ def main():
module.fail_json(
msg="Error unmounting %s: %s" % (name, msg))
if os.path.exists(name) and module.params['keep_mountpoint'] is False:
try:
os.rmdir(name)
except (OSError, IOError) as e:
module.fail_json(msg="Error rmdir %s: %s" % (name, to_native(e)))
elif state == 'unmounted':
if ismount(name) or is_bind_mounted(module, linux_mounts, name):
if not module.check_mode: