diff --git a/changelogs/fragments/65376.yaml b/changelogs/fragments/65376.yaml new file mode 100644 index 00000000000..0d33b181b37 --- /dev/null +++ b/changelogs/fragments/65376.yaml @@ -0,0 +1,2 @@ +bugfixes: + - packaging_yum - replace legacy file handling with a file manager. diff --git a/lib/ansible/modules/packaging/os/yum_repository.py b/lib/ansible/modules/packaging/os/yum_repository.py index 17358736f0e..a709156aabb 100644 --- a/lib/ansible/modules/packaging/os/yum_repository.py +++ b/lib/ansible/modules/packaging/os/yum_repository.py @@ -506,19 +506,11 @@ class YumRepo(object): if len(self.repofile.sections()): # Write data into the file try: - fd = open(self.params['dest'], 'w') + with open(self.params['dest'], 'w') as fd: + self.repofile.write(fd) except IOError as e: self.module.fail_json( - msg="Cannot open repo file %s." % self.params['dest'], - details=to_native(e)) - - self.repofile.write(fd) - - try: - fd.close() - except IOError as e: - self.module.fail_json( - msg="Cannot write repo file %s." % self.params['dest'], + msg="Problems handling file %s." % self.params['dest'], details=to_native(e)) else: # Remove the file if there are not repos