From 3993f4e9674ad3d325aed1c3ca43f5e2f81c9b9c Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 26 Oct 2015 13:01:01 -0700 Subject: [PATCH] Simplify logic to handle options set to empty string Fixes #2125 --- files/ini_file.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/files/ini_file.py b/files/ini_file.py index fff153af6ad..cb3edb2cff2 100644 --- a/files/ini_file.py +++ b/files/ini_file.py @@ -65,6 +65,12 @@ options: description: - all arguments accepted by the M(file) module also work here 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: - While it is possible to add an I(option) without specifying a I(value), this makes no sense. @@ -110,21 +116,14 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese if state == 'absent': - if option is None and value is None: - if cp.has_section(section): - cp.remove_section(section) - changed = True + if option is None: + changed = cp.remove_section(section) else: - if option is not None: - try: - if cp.get(section, option): - cp.remove_option(section, option) - changed = True - except ConfigParser.InterpolationError: - cp.remove_option(section, option) - changed = True - except: - pass + try: + changed = cp.remove_option(section, option) + except ConfigParser.NoSectionError: + # Option isn't present if the section isn't either + pass if state == 'present': @@ -212,4 +211,5 @@ def main(): # import module snippets from ansible.module_utils.basic import * -main() +if __name__ == '__main__': + main()