From bb7588df0bed4ef40b44977d109283ca2f4224c9 Mon Sep 17 00:00:00 2001 From: Vladimir Botka Date: Sun, 13 Jul 2025 13:18:26 +0200 Subject: [PATCH] Fix #10394 configparser is in Python3 only. --- plugins/modules/sysrc.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/plugins/modules/sysrc.py b/plugins/modules/sysrc.py index a9227c7c16..d554c3278b 100644 --- a/plugins/modules/sysrc.py +++ b/plugins/modules/sysrc.py @@ -103,8 +103,10 @@ changed: """ from ansible.module_utils.basic import AnsibleModule -from configparser import ConfigParser import re +import sys +if sys.version_info > (3, 5): + from configparser import ConfigParser class Sysrc(object): @@ -131,12 +133,18 @@ class Sysrc(object): Use this dictionary to preform the tests. """ (rc, out, err) = self.run_sysrc('-e', '-a') - conf = ConfigParser() - conf.read_string('[top]\n' + out) # Add faked top section - if self.value is None: - return self.name in conf['top'] + + if sys.version_info > (3, 5): + parser = ConfigParser() + parser.read_string('[top]\n' + out) # Add faked top section + conf = {k: parser['top'][k] for k in parser['top']} else: - return conf['top'][self.name] == '"%s"' % self.value + conf = dict([i.split('=', 1) for i in out.splitlines()]) + + if self.value is None: + return self.name in conf + else: + return conf[self.name] == '"%s"' % self.value def contains(self): (rc, out, err) = self.run_sysrc('-n', self.name)