mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fix handling of config options that share the same prefix
container_config: - "lxc.network.ipv4.gateway=auto" - "lxc.network.ipv4=192.0.2.1" might try to override lxc.network.ipv4.gateway in the second entry as both start with "lxc.network.ipv4". use a regular expression to find a line that contains (optional) whitespace and an = after the key. Signed-off-by: Evgeni Golov <evgeni@golov.de>
This commit is contained in:
parent
317ca77193
commit
3bbef8dc24
1 changed files with 4 additions and 1 deletions
|
@ -424,6 +424,8 @@ lxc_container:
|
||||||
sample: True
|
sample: True
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import lxc
|
import lxc
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -748,9 +750,10 @@ class LxcContainerManagement(object):
|
||||||
key = key.strip()
|
key = key.strip()
|
||||||
value = value.strip()
|
value = value.strip()
|
||||||
new_entry = '%s = %s\n' % (key, value)
|
new_entry = '%s = %s\n' % (key, value)
|
||||||
|
keyre = re.compile(r'%s(\s+)?=' % key)
|
||||||
for option_line in container_config:
|
for option_line in container_config:
|
||||||
# Look for key in config
|
# Look for key in config
|
||||||
if option_line.startswith(key):
|
if keyre.match(option_line):
|
||||||
_, _value = option_line.split('=', 1)
|
_, _value = option_line.split('=', 1)
|
||||||
config_value = ' '.join(_value.split())
|
config_value = ' '.join(_value.split())
|
||||||
line_index = container_config.index(option_line)
|
line_index = container_config.index(option_line)
|
||||||
|
|
Loading…
Reference in a new issue