mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-02 14:40:19 -07:00
Fix parameter types and other fixes (#50111)
* Fix parameter types and other fixes * Fix issues after review * Fix Windows-references in system/files modules This PR includes: - Replacing version/v with just Ansible X.Y - Removing Windows-alternatives from notes * Update lib/ansible/modules/system/parted.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/system/service.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/system/service.py Co-Authored-By: dagwieers <dag@wieers.com> * Revert type change, move to separate PR * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com> * Update lib/ansible/modules/files/replace.py Co-Authored-By: dagwieers <dag@wieers.com>
This commit is contained in:
parent
b834b29e43
commit
30227ace98
43 changed files with 1222 additions and 1065 deletions
|
@ -13,15 +13,15 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
|
|||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = """
|
||||
DOCUMENTATION = r'''
|
||||
---
|
||||
module: replace
|
||||
author: "Evan Kaufman (@EvanK)"
|
||||
author: Evan Kaufman (@EvanK)
|
||||
extends_documentation_fragment:
|
||||
- files
|
||||
- validate
|
||||
short_description: Replace all instances of a particular string in a
|
||||
file using a back-referenced regular expression.
|
||||
file using a back-referenced regular expression
|
||||
description:
|
||||
- This module will replace all instances of a pattern within a file.
|
||||
- It is up to the user to maintain idempotence by ensuring that the
|
||||
|
@ -31,89 +31,96 @@ options:
|
|||
path:
|
||||
description:
|
||||
- The file to modify.
|
||||
- Before 2.3 this option was only usable as I(dest), I(destfile) and I(name).
|
||||
aliases: [ dest, destfile, name ]
|
||||
- Before Ansible 2.3 this option was only usable as I(dest), I(destfile) and I(name).
|
||||
type: path
|
||||
required: true
|
||||
aliases: [ dest, destfile, name ]
|
||||
regexp:
|
||||
description:
|
||||
- The regular expression to look for in the contents of the file.
|
||||
Uses Python regular expressions; see
|
||||
- Uses Python regular expressions; see
|
||||
U(http://docs.python.org/2/library/re.html).
|
||||
Uses MULTILINE mode, which means C(^) and C($) match the beginning
|
||||
- Uses MULTILINE mode, which means C(^) and C($) match the beginning
|
||||
and end of the file, as well as the beginning and end respectively
|
||||
of I(each line) of the file.
|
||||
- Does not use DOTALL, which means the C(.) special character matches
|
||||
any character I(except newlines). A common mistake is to assume that
|
||||
a negated character set like C([^#]) will also not match newlines.
|
||||
In order to exclude newlines, they must be added to the set like C([^#\\n]).
|
||||
- Note that, as of ansible 2, short form tasks should have any escape
|
||||
- In order to exclude newlines, they must be added to the set like C([^#\n]).
|
||||
- Note that, as of Ansible 2.0, short form tasks should have any escape
|
||||
sequences backslash-escaped in order to prevent them being parsed
|
||||
as string literal escapes. See the examples.
|
||||
type: str
|
||||
required: true
|
||||
replace:
|
||||
description:
|
||||
- The string to replace regexp matches. May contain backreferences
|
||||
that will get expanded with the regexp capture groups if the regexp
|
||||
matches. If not set, matches are removed entirely.
|
||||
- The string to replace regexp matches.
|
||||
- May contain backreferences that will get expanded with the regexp capture groups if the regexp matches.
|
||||
- If not set, matches are removed entirely.
|
||||
type: str
|
||||
after:
|
||||
description:
|
||||
- If specified, the line after the replace/remove will start. Can be used
|
||||
in combination with C(before).
|
||||
Uses Python regular expressions; see
|
||||
- If specified, the line after the replace/remove will start.
|
||||
- Can be used in combination with C(before).
|
||||
- Uses Python regular expressions; see
|
||||
U(http://docs.python.org/2/library/re.html).
|
||||
type: str
|
||||
version_added: "2.4"
|
||||
before:
|
||||
description:
|
||||
- If specified, the line before the replace/remove will occur. Can be used
|
||||
in combination with C(after).
|
||||
Uses Python regular expressions; see
|
||||
- If specified, the line before the replace/remove will occur.
|
||||
- Can be used in combination with C(after).
|
||||
- Uses Python regular expressions; see
|
||||
U(http://docs.python.org/2/library/re.html).
|
||||
type: str
|
||||
version_added: "2.4"
|
||||
backup:
|
||||
description:
|
||||
- Create a backup file including the timestamp information so you can
|
||||
get the original file back if you somehow clobbered it incorrectly.
|
||||
type: bool
|
||||
default: 'no'
|
||||
default: no
|
||||
others:
|
||||
description:
|
||||
- All arguments accepted by the M(file) module also work here.
|
||||
type: str
|
||||
encoding:
|
||||
description:
|
||||
- "The character encoding for reading and writing the file."
|
||||
default: "utf-8"
|
||||
- The character encoding for reading and writing the file.
|
||||
type: str
|
||||
default: utf-8
|
||||
version_added: "2.4"
|
||||
notes:
|
||||
- As of Ansible 2.3, the I(dest) option has been changed to I(path) as default, but I(dest) still works as well.
|
||||
- Option I(follow) has been removed in version 2.5, because this module modifies the contents of the file so I(follow=no) doesn't make sense.
|
||||
"""
|
||||
- Option I(follow) has been removed in Ansible 2.5, because this module modifies the contents of the file so I(follow=no) doesn't make sense.
|
||||
'''
|
||||
|
||||
EXAMPLES = r"""
|
||||
# Before 2.3, option 'dest', 'destfile' or 'name' was used instead of 'path'
|
||||
EXAMPLES = r'''
|
||||
# Before Ansible 2.3, option 'dest', 'destfile' or 'name' was used instead of 'path'
|
||||
- replace:
|
||||
path: /etc/hosts
|
||||
regexp: '(\s+)old\.host\.name(\s+.*)?$'
|
||||
replace: '\1new.host.name\2'
|
||||
backup: yes
|
||||
|
||||
# Replace after the expression till the end of the file (requires >=2.4)
|
||||
- replace:
|
||||
- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)
|
||||
replace:
|
||||
path: /etc/hosts
|
||||
regexp: '(\s+)old\.host\.name(\s+.*)?$'
|
||||
replace: '\1new.host.name\2'
|
||||
after: 'Start after line.*'
|
||||
after: Start after line.*
|
||||
backup: yes
|
||||
|
||||
# Replace before the expression till the begin of the file (requires >=2.4)
|
||||
- replace:
|
||||
- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)
|
||||
replace:
|
||||
path: /etc/hosts
|
||||
regexp: '(\s+)old\.host\.name(\s+.*)?$'
|
||||
replace: '\1new.host.name\2'
|
||||
before: 'Start before line.*'
|
||||
backup: yes
|
||||
|
||||
# Replace between the expressions (requires >=2.4)
|
||||
- replace:
|
||||
- name: Replace between the expressions (requires Ansible >= 2.4)
|
||||
replace:
|
||||
path: /etc/hosts
|
||||
regexp: '(\s+)old\.host\.name(\s+.*)?$'
|
||||
replace: '\1new.host.name\2'
|
||||
|
@ -126,7 +133,7 @@ EXAMPLES = r"""
|
|||
regexp: '^old\.host\.name[^\n]*\n'
|
||||
owner: jdoe
|
||||
group: jdoe
|
||||
mode: 0644
|
||||
mode: '0644'
|
||||
|
||||
- replace:
|
||||
path: /etc/apache/ports
|
||||
|
@ -134,15 +141,15 @@ EXAMPLES = r"""
|
|||
replace: '\1 127.0.0.1:8080'
|
||||
validate: '/usr/sbin/apache2ctl -f %s -t'
|
||||
|
||||
- name: short form task (in ansible 2+) necessitates backslash-escaped sequences
|
||||
- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences
|
||||
replace: dest=/etc/hosts regexp='\\b(localhost)(\\d*)\\b' replace='\\1\\2.localdomain\\2 \\1\\2'
|
||||
|
||||
- name: long form task does not
|
||||
- name: Long form task does not
|
||||
replace:
|
||||
dest: /etc/hosts
|
||||
regexp: '\b(localhost)(\d*)\b'
|
||||
replace: '\1\2.localdomain\2 \1\2'
|
||||
"""
|
||||
'''
|
||||
|
||||
import os
|
||||
import re
|
||||
|
@ -189,17 +196,17 @@ def check_file_attrs(module, changed, message):
|
|||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec=dict(
|
||||
path=dict(required=True, aliases=['dest', 'destfile', 'name'], type='path'),
|
||||
regexp=dict(required=True),
|
||||
replace=dict(default='', type='str'),
|
||||
after=dict(required=False),
|
||||
before=dict(required=False),
|
||||
backup=dict(default=False, type='bool'),
|
||||
validate=dict(default=None, type='str'),
|
||||
encoding=dict(default='utf-8', type='str'),
|
||||
path=dict(type='path', required=True, aliases=['dest', 'destfile', 'name']),
|
||||
regexp=dict(type='str', required=True),
|
||||
replace=dict(type='str', default=''),
|
||||
after=dict(type='str'),
|
||||
before=dict(type='str'),
|
||||
backup=dict(type='bool', default=False),
|
||||
validate=dict(type='str'),
|
||||
encoding=dict(type='str', default='utf-8'),
|
||||
),
|
||||
add_file_common_args=True,
|
||||
supports_check_mode=True
|
||||
supports_check_mode=True,
|
||||
)
|
||||
|
||||
params = module.params
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue