Simplify logic to handle options set to empty string

Fixes #2125
This commit is contained in:
Toshio Kuratomi 2015-10-26 13:01:01 -07:00 committed by Matt Clay
parent 223c689ec0
commit a179d06a91

View file

@ -65,6 +65,12 @@ options:
description: description:
- all arguments accepted by the M(file) module also work here - all arguments accepted by the M(file) module also work here
required: false required: false
state:
description:
- If set to C(absent) the option or section will be removed if present instead of created.
required: false
default: "present"
choices: [ "present", "absent" ]
notes: notes:
- While it is possible to add an I(option) without specifying a I(value), this makes - While it is possible to add an I(option) without specifying a I(value), this makes
no sense. no sense.
@ -110,20 +116,13 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese
if state == 'absent': if state == 'absent':
if option is None and value is None: if option is None:
if cp.has_section(section): changed = cp.remove_section(section)
cp.remove_section(section)
changed = True
else: else:
if option is not None:
try: try:
if cp.get(section, option): changed = cp.remove_option(section, option)
cp.remove_option(section, option) except ConfigParser.NoSectionError:
changed = True # Option isn't present if the section isn't either
except ConfigParser.InterpolationError:
cp.remove_option(section, option)
changed = True
except:
pass pass
if state == 'present': if state == 'present':
@ -212,4 +211,5 @@ def main():
# import module snippets # import module snippets
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
main() if __name__ == '__main__':
main()