mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Open temp file only once
mkstemp() returns a tuple containing an OS-level handle to an open file (as would be returned by os.open()) and the absolute pathname of that file, in that order. This patch makes sure that the fd opened by tempfile.mkstemp() is re-used and closed properly.
This commit is contained in:
parent
39af9b5a86
commit
ead0022255
1 changed files with 6 additions and 25 deletions
|
@ -575,19 +575,10 @@ class JenkinsPlugin(object):
|
|||
|
||||
# Write the updates file
|
||||
update_fd, updates_file = tempfile.mkstemp()
|
||||
os.write(update_fd, r.read())
|
||||
|
||||
try:
|
||||
fd = open(updates_file, 'wb')
|
||||
except IOError:
|
||||
e = get_exception()
|
||||
self.module.fail_json(
|
||||
msg="Cannot open the tmp updates file %s." % updates_file,
|
||||
details=str(e))
|
||||
|
||||
fd.write(r.read())
|
||||
|
||||
try:
|
||||
fd.close()
|
||||
os.close(update_fd)
|
||||
except IOError:
|
||||
e = get_exception()
|
||||
self.module.fail_json(
|
||||
|
@ -651,25 +642,15 @@ class JenkinsPlugin(object):
|
|||
|
||||
def _write_file(self, f, data):
|
||||
# Store the plugin into a temp file and then move it
|
||||
tmp_f_tuple, tmp_f = tempfile.mkstemp()
|
||||
|
||||
try:
|
||||
fd = open(tmp_f, 'wb')
|
||||
except IOError:
|
||||
e = get_exception()
|
||||
self.module.fail_json(
|
||||
msg='Cannot open the temporal plugin file %s.' % tmp_f,
|
||||
details=str(e))
|
||||
tmp_f_fd, tmp_f = tempfile.mkstemp()
|
||||
|
||||
if isinstance(data, str):
|
||||
d = data
|
||||
os.write(tmp_f_fd, data)
|
||||
else:
|
||||
d = data.read()
|
||||
|
||||
fd.write(d)
|
||||
os.write(tmp_f_fd, data.read())
|
||||
|
||||
try:
|
||||
fd.close()
|
||||
os.close(tmp_f_fd)
|
||||
except IOError:
|
||||
e = get_exception()
|
||||
self.module.fail_json(
|
||||
|
|
Loading…
Reference in a new issue