diff options
author | Michael DeHaan <michael.dehaan@gmail.com> | 2012-11-27 05:52:15 -0800 |
---|---|---|
committer | Michael DeHaan <michael.dehaan@gmail.com> | 2012-11-27 05:52:15 -0800 |
commit | 5a3301289faca1bb3aeea9dee3016c6ccee3ed70 (patch) | |
tree | 76b1e2c93020995cd36769c234374d1a1c2e46be | |
parent | 304d06a563fa5ae82afa5ff540edbfeb71786af4 (diff) | |
parent | 910f1c042e6a1817423e2a933a6f824393007d1c (diff) | |
download | ansible-5a3301289faca1bb3aeea9dee3016c6ccee3ed70.tar.gz |
Merge pull request #1692 from jpmens/ini_file2
ini_file: prohibit section name 'default'
-rw-r--r-- | library/ini_file | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/library/ini_file b/library/ini_file index 63131d5232..ea78bff191 100644 --- a/library/ini_file +++ b/library/ini_file @@ -74,6 +74,10 @@ examples: notes: - While it is possible to add an I(option) without specifying a I(value), this makes no sense. + - A section named C(default) cannot be added by the module, but if it exists, individual + options within the section can be updated. (This is a limitation of Python's I(ConfigParser).) + Either use M(template) to create a base INI file with a C([default]) section, or use + M(lineinfile) to add the missing line. requirements: [ ConfigParser ] author: Jan-Piet Mens ''' @@ -112,6 +116,9 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese if state == 'present': if cp.has_section(section) == False: + if section.upper() == 'DEFAULT': + module.fail_json(msg="[DEFAULT] is an illegal section name") + cp.add_section(section) changed = True @@ -121,6 +128,9 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese if str(value) != str(oldvalue): cp.set(section, option, value) changed = True + except ConfigParser.NoSectionError: + cp.set(section, option, value) + changed = True except ConfigParser.NoOptionError: cp.set(section, option, value) changed = True |