From 8c28f2f12b77b7758385fc7326c2d5a2c0a2c0f4 Mon Sep 17 00:00:00 2001 From: Alexandru Coman Date: Thu, 26 Feb 2015 14:24:02 +0200 Subject: [PATCH] Fix CloudStack problem with ssh public keys Change .split with .splitlines in get_public_keys. Change-Id: I938a11518545766ea5383e827085bcada7cf2266 --- cloudbaseinit/metadata/services/cloudstack.py | 2 +- cloudbaseinit/tests/metadata/services/test_cloudstack.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cloudbaseinit/metadata/services/cloudstack.py b/cloudbaseinit/metadata/services/cloudstack.py index 64531d4c..68a0b12e 100644 --- a/cloudbaseinit/metadata/services/cloudstack.py +++ b/cloudbaseinit/metadata/services/cloudstack.py @@ -110,7 +110,7 @@ class CloudStack(base.BaseMetadataService): def get_public_keys(self): """Available ssh public keys.""" ssh_keys = [] - for ssh_key in self._get_cache_data('public-keys').split(): + for ssh_key in self._get_cache_data('public-keys').splitlines(): ssh_key = ssh_key.strip() if not ssh_key: continue diff --git a/cloudbaseinit/tests/metadata/services/test_cloudstack.py b/cloudbaseinit/tests/metadata/services/test_cloudstack.py index 05cdc7f0..8ebaa004 100644 --- a/cloudbaseinit/tests/metadata/services/test_cloudstack.py +++ b/cloudbaseinit/tests/metadata/services/test_cloudstack.py @@ -168,14 +168,15 @@ class CloudStackTest(unittest.TestCase): '._get_cache_data') def test_get_public_keys(self, mock_get_cache_data): mock_get_cache_data.side_effect = [ - "a\nb\nc", - "\n\na\n\nb\n\nc", - " \n \n a \n \n b \n \n c", + "ssh-rsa AAAA\nssh-rsa BBBB\nssh-rsa CCCC", + "\n\nssh-rsa AAAA\n\nssh-rsa BBBB\n\nssh-rsa CCCC", + " \n \n ssh-rsa AAAA \n \n ssh-rsa BBBB \n \n ssh-rsa CCCC", " ", "\n", " \n " ] for _ in range(3): response = self._service.get_public_keys() - self.assertEqual(["a", "b", "c"], response) + self.assertEqual(["ssh-rsa AAAA", "ssh-rsa BBBB", "ssh-rsa CCCC"], + response) for _ in range(3): response = self._service.get_public_keys()