diff options
author | Jan-Piet Mens <jpmens@gmail.com> | 2012-11-27 11:29:21 +0100 |
---|---|---|
committer | Jan-Piet Mens <jpmens@gmail.com> | 2012-11-27 13:21:48 +0100 |
commit | 910f1c042e6a1817423e2a933a6f824393007d1c (patch) | |
tree | 574464e12ecfc5e402a2029424bf2c1dc3506041 | |
parent | dd5a8474f839dff3d600d0ba09351db55f8c6672 (diff) | |
download | ansible-910f1c042e6a1817423e2a933a6f824393007d1c.tar.gz |
ini_file: prohibit section name 'default'
allow update of default section
add blurb re template to create base file
-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 |