diff --git a/changelogs/fragments/10222-zypper_repository-readfp.yml b/changelogs/fragments/10222-zypper_repository-readfp.yml new file mode 100644 index 0000000000..688ceeb7a5 --- /dev/null +++ b/changelogs/fragments/10222-zypper_repository-readfp.yml @@ -0,0 +1,2 @@ +bugfixes: + - zypper_repository - make compatible with Python 3.12+ (https://github.com/ansible-collections/community.general/issues/10222, https://github.com/ansible-collections/community.general/pull/10223). diff --git a/plugins/modules/zypper_repository.py b/plugins/modules/zypper_repository.py index 37aa36c601..94f2c504fc 100644 --- a/plugins/modules/zypper_repository.py +++ b/plugins/modules/zypper_repository.py @@ -142,6 +142,7 @@ from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.urls import fetch_url from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils.six import PY3 from ansible.module_utils.six.moves import configparser, StringIO from io import open @@ -407,7 +408,10 @@ def main(): repofile = configparser.ConfigParser() try: - repofile.readfp(StringIO(repofile_text)) + if PY3: + repofile.read_file(StringIO(repofile_text)) + else: + repofile.readfp(StringIO(repofile_text)) except configparser.Error: module.fail_json(msg='Invalid format, .repo file could not be parsed')