Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/dmw'
Browse files Browse the repository at this point in the history
- issue #334
  • Loading branch information
dw committed Oct 30, 2018
2 parents 9ba0561 + 766dce9 commit e643d67
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 2 deletions.
8 changes: 7 additions & 1 deletion ansible_mitogen/connection.py
Expand Up @@ -92,6 +92,12 @@ def _connect_ssh(spec):
else:
check_host_keys = 'ignore'

# #334: tilde-expand private_key_file to avoid implementation difference
# between Python and OpenSSH.
private_key_file = spec['private_key_file']
if private_key_file is not None:
private_key_file = os.path.expanduser(private_key_file)

return {
'method': 'ssh',
'kwargs': {
Expand All @@ -101,7 +107,7 @@ def _connect_ssh(spec):
'password': optional_secret(spec['password']),
'port': spec['port'],
'python_path': spec['python_path'],
'identity_file': spec['private_key_file'],
'identity_file': private_key_file,
'identities_only': False,
'ssh_path': spec['ssh_executable'],
'connect_timeout': spec['ansible_ssh_timeout'],
Expand Down
19 changes: 19 additions & 0 deletions docs/changelog.rst
Expand Up @@ -36,6 +36,17 @@ Enhancements
Fixes
^^^^^

* `#334 <https://github.com/dw/mitogen/issues/334>`_: the SSH method
tilde-expands private key paths using Ansible's logic. Previously Mitogen
passed the path unmodified to SSH, which would expand it using
:func:`os.getpwent`.

This differs from :func:`os.path.expanduser`, which prefers the ``HOME``
environment variable if it is set, causing behaviour to diverge when Ansible
was invoked using sudo without appropriate flags to cause the ``HOME``
environment variable to be reset to match the target account.


Core Library
~~~~~~~~~~~~

Expand Down Expand Up @@ -68,6 +79,14 @@ Core Library
:meth:`mitogen.core.Broker.defer_sync` utility function is provided.


Thanks!
~~~~~~~

Mitogen would not be possible without the support of users. A huge thanks for
bug reports, features and fixes in this release contributed by
`Guy Knights <https://github.com/knightsg>`_.


v0.2.3 (2018-10-23)
-------------------

Expand Down
1 change: 1 addition & 0 deletions tests/ansible/integration/ssh/all.yml
@@ -1,2 +1,3 @@
- import_playbook: config.yml
- import_playbook: timeouts.yml
- import_playbook: variables.yml
19 changes: 19 additions & 0 deletions tests/ansible/integration/ssh/config.yml
@@ -0,0 +1,19 @@
# issue #334: test expanduser() on key file during config generation.

- name: integration/ssh/config.yml
hosts: test-targets
connection: ssh
vars:
ansible_private_key_file: ~/fakekey
tasks:
- meta: end_play
when: not is_mitogen

- mitogen_get_stack:
register: out

- assert:
that: |
out.result[0].kwargs.identity_file == (
lookup('env', 'HOME') + '/fakekey'
)
2 changes: 1 addition & 1 deletion tests/data/docker/mitogen__has_sudo_pubkey.key.pub
@@ -1 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkMz7vE4piReKXBNarhGhzfMr6g7capaUHllxThmtm4ndlM3kbiEFvxI9P7s17T50CycfesJf5/1bmLxACROtdMGrgBrCAAGwEy2qnCNPhqrLpd2amoLUkBcthmiaTVmU+eMMHm8ubxh0qEauXOaaVqXTGcK1bGMsufLYGr0lv5RE2AErg9jPYkh6qT0CpxGtRmfbYubFAIunP5gxHgiOQrD7Yzs2NFDqPq9rRuvRMGX/XLpDurFm9x16LTx1fDSU1aqmu88QMJtXoMyPlHCqd5x/FdZ1KorR79LB+H/cptB1/ND1geZv5OAD8ydCc3nNGi8hiyPobb6jOX68agXyX dmw@Eldil.local
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkMz7vE4piReKXBNarhGhzfMr6g7capaUHllxThmtm4ndlM3kbiEFvxI9P7s17T50CycfesJf5/1bmLxACROtdMGrgBrCAAGwEy2qnCNPhqrLpd2amoLUkBcthmiaTVmU+eMMHm8ubxh0qEauXOaaVqXTGcK1bGMsufLYGr0lv5RE2AErg9jPYkh6qT0CpxGtRmfbYubFAIunP5gxHgiOQrD7Yzs2NFDqPq9rRuvRMGX/XLpDurFm9x16LTx1fDSU1aqmu88QMJtXoMyPlHCqd5x/FdZ1KorR79LB+H/cptB1/ND1geZv5OAD8ydCc3nNGi8hiyPobb6jOX68agXyX mitogen__has_sudo_pubkey@testdata

0 comments on commit e643d67

Please sign in to comment.