The branch, x2go has been updated via 3589edbe9676dbcce32fb57885e99e35462f7507 (commit) via 3a61f5253c8aba4b88003950fd1c6caa5646190c (commit) via 1a00a6498c75e1300455b00f92a1b5490449f0e2 (commit) via e06b0f597ec7ea78ad8dd98468ebb2fa8ef5c225 (commit) via 2a08a48dd2451e3139735c8b4f29d6d2516b8eb0 (commit) via d2c71ed9994baa167f7eaf26683f17a0be4b7c02 (commit) via 965d00dee951ffaee7458c7f8cb0a3c38ff46b25 (commit) via c8b75a489c569ea71b2166c6fbcc7f773397da3b (commit) via caf94786ca8c0bc9e3995da0a160c84921a3bfc6 (commit) via ba3ce80c14edac24c21c25aec2c0680df5927f00 (commit) via 993ecb31d2a0606cb1e95e85dd29ea2809866663 (commit) via 4ee577abc529603414836d9929f75fa8d67bbffb (commit) via 61c56f03a7678124f5115eb00b5015faae11c1e8 (commit) via d77a4d6421a726584da228c30587bfa265fee8ea (commit) via 3c2f01c91f798bc2ecefbd7c3864dc5e8c5af5c8 (commit) from 57d20a05fcf73e220e4217439d6b0b62b1c6687f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3589edbe9676dbcce32fb57885e99e35462f7507 Merge: 57d20a0 3a61f52 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Sep 4 01:31:23 2013 +0200 Merge branch 'sunweaver-master' into x2go commit 3a61f5253c8aba4b88003950fd1c6caa5646190c Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Sep 4 00:58:46 2013 +0200 Detect valid SSH private keys that may require unlocking/decrypting prior to being usable. commit 1a00a6498c75e1300455b00f92a1b5490449f0e2 Merge: 61c56f0 e06b0f5 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Sep 4 01:01:44 2013 +0200 Merge branch 'master' into sunweaver-master commit 61c56f03a7678124f5115eb00b5015faae11c1e8 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed May 8 13:15:59 2013 +0200 Add method kwarg ,,hash_hostname'' to hostkeys.HostKeyEntry.add() method. Enable host key hashing by default as is standard with serveral current (Open)SSH implementations. ----------------------------------------------------------------------- Summary of changes: NEWS | 12 ++++++------ dev-requirements.txt | 2 ++ fabfile.py | 28 +++++++++++++++++++++++++++- paramiko/__init__.py | 4 +++- paramiko/client.py | 5 ++++- paramiko/hostkeys.py | 4 ++-- requirements.txt | 2 -- tox.ini | 2 +- 8 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 dev-requirements.txt delete mode 100644 requirements.txt The diff of changes is: diff --git a/NEWS b/NEWS index ef85eff..7365e4d 100644 --- a/NEWS +++ b/NEWS @@ -12,8 +12,8 @@ Issues noted as "Fabric #NN" can be found at https://github.com/fabric/fabric/. Releases ======== -v1.11.0 (DD MM YYYY) --------------------- +v1.11.0 (26th Jul 2013) +----------------------- * #98: On Windows, when interacting with the PuTTY PAgeant, Paramiko now creates the shared memory map with explicit Security Attributes of the user, @@ -29,11 +29,11 @@ v1.11.0 (DD MM YYYY) against duplicate entries during subsequent `known_hosts` loads.) Thanks to `@sunweaver` for the contribution. -v1.10.2 (DD MM 2013) --------------------- +v1.10.2 (26th Jul 2013) +----------------------- -* #153, #67: Warn on parse failure when reading known_hosts - file. Thanks to `@glasserc` for patch. +* #153, #67: Warn on parse failure when reading known_hosts file. Thanks to + `@glasserc` for patch. * #146: Indentation fixes for readability. Thanks to Abhinav Upadhyay for catch & patch. diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 0000000..f706c46 --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,2 @@ +tox>=1.4,<1.5 +epydoc>=3.0,<3.1 diff --git a/fabfile.py b/fabfile.py index 29394f9..7883dab 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,8 +1,10 @@ -from fabric.api import task, sudo, env +from fabric.api import task, sudo, env, local, hosts from fabric.contrib.project import rsync_project +from fabric.contrib.console import confirm @task +@hosts("paramiko.org") def upload_docs(): target = "/var/www/paramiko.org" staging = "/tmp/paramiko_docs" @@ -11,3 +13,27 @@ def upload_docs(): sudo("rm -rf %s/*" % target) rsync_project(local_dir='docs/', remote_dir=staging, delete=True) sudo("cp -R %s/* %s/" % (staging, target)) + +@task +def build_docs(): + local("epydoc --no-private -o docs/ paramiko") + +@task +def clean(): + local("rm -rf build dist docs") + local("rm -f MANIFEST *.log demos/*.log") + local("rm -f paramiko/*.pyc") + local("rm -f test.log") + local("rm -rf paramiko.egg-info") + +@task +def test(): + local("python ./test.py") + +@task +def release(): + confirm("Only hit Enter if you remembered to update the version!") + confirm("Also, did you remember to tag your release?") + build_docs() + local("python setup.py sdist register upload") + upload_docs() diff --git a/paramiko/__init__.py b/paramiko/__init__.py index 099314e..62cd51c 100644 --- a/paramiko/__init__.py +++ b/paramiko/__init__.py @@ -46,6 +46,8 @@ Paramiko is written entirely in python (no C or platform-dependent code) and is released under the GNU Lesser General Public License (LGPL). Website: U{https://github.com/paramiko/paramiko/} + +Mailing list: U{paramiko@librelist.com<mailto:paramiko@librelist.com>} """ import sys @@ -55,7 +57,7 @@ if sys.version_info < (2, 5): __author__ = "Jeff Forcier <jeff@bitprophet.org>" -__version__ = "1.10.1" +__version__ = "1.11.0" __license__ = "GNU Lesser General Public License (LGPL)" diff --git a/paramiko/client.py b/paramiko/client.py index 493d548..5b28990 100644 --- a/paramiko/client.py +++ b/paramiko/client.py @@ -33,7 +33,7 @@ from paramiko.dsskey import DSSKey from paramiko.hostkeys import HostKeys from paramiko.resource import ResourceManager from paramiko.rsakey import RSAKey -from paramiko.ssh_exception import SSHException, BadHostKeyException +from paramiko.ssh_exception import PasswordRequiredException, SSHException, BadHostKeyException from paramiko.transport import Transport from paramiko.util import retry_on_signal @@ -466,6 +466,9 @@ class SSHClient (object): if not two_factor: return break + except PasswordRequiredException, e: + saved_exception = e + break except SSHException, e: saved_exception = e diff --git a/paramiko/hostkeys.py b/paramiko/hostkeys.py index 822e8e7..0f29f2b 100644 --- a/paramiko/hostkeys.py +++ b/paramiko/hostkeys.py @@ -66,7 +66,7 @@ class HostKeyEntry: fields = line.split(' ') if len(fields) < 3: # Bad number of fields - log.warn("Not enough fields found in known_hosts in line %s (%r)" % + log.info("Not enough fields found in known_hosts in line %s (%r)" % (lineno, line)) return None fields = fields[:3] @@ -82,7 +82,7 @@ class HostKeyEntry: elif keytype == 'ssh-dss': key = DSSKey(data=base64.decodestring(key)) else: - log.warn("Unable to handle key of type %s" % (keytype,)) + log.info("Unable to handle key of type %s" % (keytype,)) return None except binascii.Error, e: raise InvalidHostKey(line, e) diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 75112a2..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -pycrypto -tox diff --git a/tox.ini b/tox.ini index 6cb8001..e2a8dcf 100644 --- a/tox.ini +++ b/tox.ini @@ -2,5 +2,5 @@ envlist = py25,py26,py27 [testenv] -commands = pip install --use-mirrors -q -r requirements.txt +commands = pip install --use-mirrors -q -r dev-requirements.txt python test.py hooks/post-receive -- python-paramiko.git (Debian package python-paramiko) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "python-paramiko.git" (Debian package python-paramiko).