From 54bbf3b7c59352ca8482abab5728d8621c9888fe Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Sat, 16 Jun 2012 13:43:31 -0700 Subject: Comments as to why we are using a csv parser and do some of the logic checks that are done for option extraction --- cloudinit/ssh_util.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'cloudinit') diff --git a/cloudinit/ssh_util.py b/cloudinit/ssh_util.py index f6941a29..ba252e7f 100644 --- a/cloudinit/ssh_util.py +++ b/cloudinit/ssh_util.py @@ -79,12 +79,22 @@ class AuthKeyEntry(object): options = ent[0:i] options_lst = [] + + # Now use a csv parser to pull the options + # out of the above string that we just found an endpoint for. + # + # No quoting so we don't mess up any of the quoting that + # is already there. reader = csv.reader(StringIO(options), quoting=csv.QUOTE_NONE) for row in reader: for e in row: + # Only keep non-empty csv options e = e.strip() if e: options_lst.append(e) + + # Now take the rest of the items before the string + # as long as there is room to do this... toks = [] if i + 1 < len(ent): toks = ent[i + 1:].split(None, 3) -- cgit v1.2.3