Skip to content

Commit

Permalink
Use a context handler for file handling in paramiko_ssh.Connection. (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
atombrella authored and ansibot committed Jan 6, 2020
1 parent d3e9ef3 commit ec34235
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/65624-paramiko-ctx-man.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- paramiko_ssh - optimized file handling by using a context manager.
26 changes: 12 additions & 14 deletions lib/ansible/plugins/connection/paramiko_ssh.py
Original file line number Diff line number Diff line change
Expand Up @@ -517,25 +517,23 @@ def _save_ssh_host_keys(self, filename):
path = os.path.expanduser("~/.ssh")
makedirs_safe(path)

f = open(filename, 'w')
with open(filename, 'w') as f:

for hostname, keys in iteritems(self.ssh._host_keys):

for keytype, key in iteritems(keys):
for hostname, keys in iteritems(self.ssh._host_keys):

# was f.write
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if not added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))
for keytype, key in iteritems(keys):

for hostname, keys in iteritems(self.ssh._host_keys):
# was f.write
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if not added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))

for keytype, key in iteritems(keys):
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))
for hostname, keys in iteritems(self.ssh._host_keys):

f.close()
for keytype, key in iteritems(keys):
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))

def reset(self):
self.close()
Expand Down

0 comments on commit ec34235

Please sign in to comment.