You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/01/09 00:26:32 UTC

[6/6] git commit: For backward compatibility, only specify look_for_keys and allow_agent option if "password" and "key" arguments are not provided.

For backward compatibility, only specify look_for_keys and allow_agent option
if "password" and "key" arguments are not provided.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/3a86c01e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/3a86c01e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/3a86c01e

Branch: refs/heads/trunk
Commit: 3a86c01e69ecb66b31fe48c709c06097c8102517
Parents: 3beba3a
Author: Tomaz Muraus <to...@apache.org>
Authored: Thu Jan 9 00:10:55 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Thu Jan 9 00:12:27 2014 +0100

----------------------------------------------------------------------
 libcloud/compute/ssh.py                  | 26 +++++++++++++++-----------
 libcloud/test/compute/test_ssh_client.py | 16 ++++++++--------
 2 files changed, 23 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/3a86c01e/libcloud/compute/ssh.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/ssh.py b/libcloud/compute/ssh.py
index 852b2f8..5cc877c 100644
--- a/libcloud/compute/ssh.py
+++ b/libcloud/compute/ssh.py
@@ -167,15 +167,15 @@ class ParamikoSSHClient(BaseSSHClient):
     def __init__(self, hostname, port=22, username='root', password=None,
                  key=None, timeout=None):
         """
-        Note #1: Authentication is always attempted in the following order:
-
-        - The key passed in (if provided)
-        - Any key we can find through an SSH agent
-        - Any "id_rsa" or "id_dsa" key discoverable in ~/.ssh/
-        - Plain username/password auth, if a password was given (if provided)
-
-        Note #2: If a password protected key is used, `password` argument
-        represents a password which will be used to unlock the key file.
+        Authentication is always attempted in the following order:
+
+        - The key passed in (if key is provided)
+        - Any key we can find through an SSH agent (only if no password and
+          key is provided)
+        - Any "id_rsa" or "id_dsa" key discoverable in ~/.ssh/ (only if no
+          password and key is provided)
+        - Plain username/password auth, if a password was given (if password is
+          provided)
         """
         super(ParamikoSSHClient, self).__init__(hostname, port, username,
                                                 password, key, timeout)
@@ -187,8 +187,8 @@ class ParamikoSSHClient(BaseSSHClient):
         conninfo = {'hostname': self.hostname,
                     'port': self.port,
                     'username': self.username,
-                    'allow_agent': True,
-                    'look_for_keys': True}
+                    'allow_agent': False,
+                    'look_for_keys': False}
 
         if self.password:
             conninfo['password'] = self.password
@@ -196,6 +196,10 @@ class ParamikoSSHClient(BaseSSHClient):
         if self.key:
             conninfo['key_filename'] = self.key
 
+        if not self.password and not self.key:
+            conninfo['allow_agent'] = True
+            conninfo['look_for_keys'] = True
+
         if self.timeout:
             conninfo['timeout'] = self.timeout
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/3a86c01e/libcloud/test/compute/test_ssh_client.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ssh_client.py b/libcloud/test/compute/test_ssh_client.py
index eb674f1..d996119 100644
--- a/libcloud/test/compute/test_ssh_client.py
+++ b/libcloud/test/compute/test_ssh_client.py
@@ -60,9 +60,9 @@ class ParamikoSSHClientTests(unittest.TestCase):
 
         expected_conn = {'username': 'ubuntu',
                          'password': 'ubuntu',
-                         'allow_agent': True,
+                         'allow_agent': False,
                          'hostname': 'dummy.host.org',
-                         'look_for_keys': True,
+                         'look_for_keys': False,
                          'port': 22}
         mock.client.connect.assert_called_once_with(**expected_conn)
         self.assertLogMsg('Connecting to server')
@@ -76,9 +76,9 @@ class ParamikoSSHClientTests(unittest.TestCase):
         mock.connect()
 
         expected_conn = {'username': 'ubuntu',
-                         'allow_agent': True,
+                         'allow_agent': False,
                          'hostname': 'dummy.host.org',
-                         'look_for_keys': True,
+                         'look_for_keys': False,
                          'key_filename': 'id_rsa',
                          'port': 22}
         mock.client.connect.assert_called_once_with(**expected_conn)
@@ -95,9 +95,9 @@ class ParamikoSSHClientTests(unittest.TestCase):
 
         expected_conn = {'username': 'ubuntu',
                          'password': 'ubuntu',
-                         'allow_agent': True,
+                         'allow_agent': False,
                          'hostname': 'dummy.host.org',
-                         'look_for_keys': True,
+                         'look_for_keys': False,
                          'key_filename': 'id_rsa',
                          'port': 22}
         mock.client.connect.assert_called_once_with(**expected_conn)
@@ -136,9 +136,9 @@ class ParamikoSSHClientTests(unittest.TestCase):
         mock_cli = mock.client  # The actual mocked object: SSHClient
         expected_conn = {'username': 'ubuntu',
                          'key_filename': '~/.ssh/ubuntu_ssh',
-                         'allow_agent': True,
+                         'allow_agent': False,
                          'hostname': 'dummy.host.org',
-                         'look_for_keys': True,
+                         'look_for_keys': False,
                          'timeout': '600',
                          'port': 8822}
         mock_cli.connect.assert_called_once_with(**expected_conn)