summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Piet Mens <jpmens@gmail.com>2012-11-27 11:29:21 +0100
committerJan-Piet Mens <jpmens@gmail.com>2012-11-27 13:21:48 +0100
commit910f1c042e6a1817423e2a933a6f824393007d1c (patch)
tree574464e12ecfc5e402a2029424bf2c1dc3506041
parentdd5a8474f839dff3d600d0ba09351db55f8c6672 (diff)
downloadansible-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_file10
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