summaryrefslogtreecommitdiff
path: root/cloudinit/distros
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2014-10-21 11:55:16 -0700
committerJoshua Harlow <harlowja@yahoo-inc.com>2014-10-21 11:55:16 -0700
commite88f6ed4c46fcb1069fe899606a8b6d95411c13f (patch)
tree0da2366fd659162bee15a57e0e2664cf65359a16 /cloudinit/distros
parentdd1853b5b64c43995e33c129bc71def9f4bad0ce (diff)
downloadvyos-cloud-init-e88f6ed4c46fcb1069fe899606a8b6d95411c13f.tar.gz
vyos-cloud-init-e88f6ed4c46fcb1069fe899606a8b6d95411c13f.zip
Handle strings/text type for 'ssh_authorized_keys'
Instead of only expected a list, tuple, or set type allow for a string type to be passed in, and add log message that occurs if some other type is used that can not be correctly processed.
Diffstat (limited to 'cloudinit/distros')
-rw-r--r--cloudinit/distros/__init__.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 2599d9f2..d30098eb 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -387,8 +387,17 @@ class Distro(object):
# Import SSH keys
if 'ssh_authorized_keys' in kwargs:
- keys = set(kwargs['ssh_authorized_keys']) or []
- ssh_util.setup_user_keys(keys, name, options=None)
+ # Try to handle this in a smart manner.
+ keys = kwargs['ssh_authorized_keys']
+ if isinstance(keys, (basestring, str)):
+ keys = [keys]
+ if not isinstance(keys, (tuple, list, set)):
+ util.multi_log("Invalid type detected for"
+ " 'ssh_authorized_keys', expected list, string"
+ " or set.")
+ else:
+ keys = set(keys) or []
+ ssh_util.setup_user_keys(keys, name, options=None)
return True