mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-06-20 23:30:22 -07:00
Fine tune sanity (#53544)
* modify regex to use implicit charsets this should solve issues in py3 and unicode names * fix issue with subgroups in yaml inventory * clarify deprecation message * separated per name warning from deprecation * move noise to verbosity, simplify warnings * fix docs to reflect actual 'good' practice * change toggle to choice list to give users more options
This commit is contained in:
parent
86ba4f3e46
commit
9b67219096
5 changed files with 40 additions and 22 deletions
|
@ -31,16 +31,29 @@ display = Display()
|
|||
def to_safe_group_name(name, replacer="_", force=False, silent=False):
|
||||
# Converts 'bad' characters in a string to underscores (or provided replacer) so they can be used as Ansible hosts or groups
|
||||
|
||||
warn = ''
|
||||
if name: # when deserializing we might not have name yet
|
||||
invalid_chars = C.INVALID_VARIABLE_NAMES.findall(name)
|
||||
if invalid_chars:
|
||||
msg = 'invalid character(s) "%s" in group name (%s)' % (to_text(set(invalid_chars)), to_text(name))
|
||||
if C.TRANSFORM_INVALID_GROUP_CHARS or force:
|
||||
if C.TRANSFORM_INVALID_GROUP_CHARS not in ('never', 'ignore') or force:
|
||||
name = C.INVALID_VARIABLE_NAMES.sub(replacer, name)
|
||||
if not silent:
|
||||
display.warning('Replacing ' + msg)
|
||||
if not (silent or C.TRANSFORM_INVALID_GROUP_CHARS == 'silently'):
|
||||
display.vvvv('Replacing ' + msg)
|
||||
warn = 'Invalid characters were found in group names and automatically replaced, use -vvvv to see details'
|
||||
else:
|
||||
display.deprecated('Ignoring ' + msg, version='2.12')
|
||||
if C.TRANSFORM_INVALID_GROUP_CHARS == 'never':
|
||||
display.vvvv('Not replacing %s' % msg)
|
||||
warn = True
|
||||
warn = 'Invalid characters were found in group names but not replaced, use -vvvv to see details'
|
||||
|
||||
# remove this message after 2.10 AND changing the default to 'always'
|
||||
display.deprecated('The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names by default,'
|
||||
' this will change, but still be user configurable on deprecation', version='2.10')
|
||||
|
||||
if warn:
|
||||
display.warning(warn)
|
||||
|
||||
return name
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue