mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
added unsafe_writes as common file feature (#17016)
This commit is contained in:
parent
8c7d235323
commit
eb0c90ab80
2 changed files with 15 additions and 1 deletions
|
@ -254,6 +254,7 @@ FILE_COMMON_ARGUMENTS=dict(
|
||||||
regexp = dict(), # used by assemble
|
regexp = dict(), # used by assemble
|
||||||
delimiter = dict(), # used by assemble
|
delimiter = dict(), # used by assemble
|
||||||
directory_mode = dict(), # used by copy
|
directory_mode = dict(), # used by copy
|
||||||
|
unsafe_writes = dict(type='bool'), # should be available to any module using atomic_move
|
||||||
)
|
)
|
||||||
|
|
||||||
PASSWD_ARG_RE = re.compile(r'^[-]{0,2}pass[-]?(word|wd)?')
|
PASSWD_ARG_RE = re.compile(r'^[-]{0,2}pass[-]?(word|wd)?')
|
||||||
|
@ -902,7 +903,10 @@ class AnsibleModule(object):
|
||||||
str(':'.join(new_context)))
|
str(':'.join(new_context)))
|
||||||
except OSError:
|
except OSError:
|
||||||
e = get_exception()
|
e = get_exception()
|
||||||
self.fail_json(path=path, msg='invalid selinux context: %s' % str(e), new_context=new_context, cur_context=cur_context, input_was=context)
|
if e.errno == 95: # skip certain errors are they are 'ok'.
|
||||||
|
self.debug("Skipped setting selinux on '%s' as the operation is not suported: %s" % (path, to_str(e))
|
||||||
|
else:
|
||||||
|
self.fail_json(path=path, msg='invalid selinux context: %s' % str(e), new_context=new_context, cur_context=cur_context, input_was=context)
|
||||||
if rc != 0:
|
if rc != 0:
|
||||||
self.fail_json(path=path, msg='set selinux context failed')
|
self.fail_json(path=path, msg='set selinux context failed')
|
||||||
changed = True
|
changed = True
|
||||||
|
|
|
@ -60,4 +60,14 @@ options:
|
||||||
- level part of the SELinux file context. This is the MLS/MCS attribute,
|
- level part of the SELinux file context. This is the MLS/MCS attribute,
|
||||||
sometimes known as the C(range). C(_default) feature works as for
|
sometimes known as the C(range). C(_default) feature works as for
|
||||||
I(seuser).
|
I(seuser).
|
||||||
|
unsafe_writes:
|
||||||
|
description:
|
||||||
|
- Normally this module uses atomic operations to prevent data corruption or inconsistent reads from the target files,
|
||||||
|
sometimes systems are configured or just broken in ways that prevent this. One example are docker mounted files,
|
||||||
|
they cannot be updated atomically and can only be done in an unsafe manner.
|
||||||
|
- This boolean option allows ansible to fall back to unsafe methods of updating files for those cases in which you do
|
||||||
|
not have any other choice. Be aware that this is subject to race conditions and can lead to data corruption.
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
version_added: "2.2"
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue