From bc99432f893e0efcb141f660e272bebf8ccc6710 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Thu, 12 Jun 2025 22:13:12 +0200 Subject: [PATCH] zypper_repository: fix usage of removed method ConfigParser.readfp() (#10223) * zypper_repository: fix usage of removed method ConfigParser.readfp() ConfigParser.readfp() has been removed in python 3.12. See similar fix e.g. in https://github.com/ansible/ansible/pull/81657 This fixes the error message: AttributeError: 'ConfigParser' object has no attribute 'readfp'. Did you mean: 'read'? * Update changelogs/fragments/10222-zypper_repository-readfp.yml Co-authored-by: Felix Fontein --------- Co-authored-by: Felix Fontein --- changelogs/fragments/10222-zypper_repository-readfp.yml | 2 ++ plugins/modules/zypper_repository.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/10222-zypper_repository-readfp.yml 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')