From 33993ab86a028753c72bdf7c18144295d20c1efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com> Date: Tue, 24 Aug 2010 16:21:37 +0200 Subject: [PATCH] Adding a paramiko fingerprint format helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And provide unittests for them Signed-off-by: RenΓ© Nussbaumer <rn@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/ssh.py | 13 +++++++++++++ test/ganeti.ssh_unittest.py | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/lib/ssh.py b/lib/ssh.py index 7b2e7edd3..cb7aa186a 100644 --- a/lib/ssh.py +++ b/lib/ssh.py @@ -26,12 +26,25 @@ import os import logging +import re from ganeti import utils from ganeti import errors from ganeti import constants +def FormatParamikoFingerprint(fingerprint): + """Formats the fingerprint of L{paramiko.PKey.get_fingerprint()} + + @type fingerprint: str + @param fingerprint: PKey fingerprint + @return The string hex representation of the fingerprint + + """ + assert len(fingerprint) % 2 == 0 + return ":".join(re.findall(r"..", fingerprint.lower())) + + def GetUserFiles(user, mkdir=False): """Return the paths of a user's ssh files. diff --git a/test/ganeti.ssh_unittest.py b/test/ganeti.ssh_unittest.py index 5afd59052..bd6c951ef 100755 --- a/test/ganeti.ssh_unittest.py +++ b/test/ganeti.ssh_unittest.py @@ -47,6 +47,12 @@ class TestKnownHosts(testutils.GanetiTestCase): "%s ssh-rsa %s\n" % (cfg.GetClusterName(), mocks.FAKE_CLUSTER_KEY)) + def testFormatParamikoFingerprintCorrect(self): + self.assertEqual(ssh.FormatParamikoFingerprint("C0Ffee"), "c0:ff:ee") + + def testFormatParamikoFingerprintNotDividableByTwo(self): + self.assertRaises(AssertionError, ssh.FormatParamikoFingerprint, "C0Ffe") + if __name__ == '__main__': testutils.GanetiTestProgram() -- GitLab