mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-10 22:55:27 +01:00
Update mount.py
new option keep_mountpoint enables keeping the mountpoint with state=absent
This commit is contained in:
parent
5ee818ec86
commit
966df79767
1 changed files with 19 additions and 2 deletions
|
|
@ -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. TODO check
|
||||
- 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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue