diff options
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/ssh_util.py | 3 | ||||
-rw-r--r-- | cloudinit/util.py | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/cloudinit/ssh_util.py b/cloudinit/ssh_util.py index fc8b9b3d..e0a2f0ca 100644 --- a/cloudinit/ssh_util.py +++ b/cloudinit/ssh_util.py @@ -197,7 +197,8 @@ def update_authorized_keys(fname, keys): # Replace it with our better one ent = k # Don't add it later - to_add.remove(k) + if k in to_add: + to_add.remove(k) entries[i] = ent # Now append any entries we did not match above diff --git a/cloudinit/util.py b/cloudinit/util.py index 3cf51e65..3ff3835a 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -1303,21 +1303,24 @@ def shellify(cmdlist, add_header=True): if add_header: content += "#!/bin/sh\n" escaped = "%s%s%s%s" % ("'", '\\', "'", "'") + cmds_made = 0 for args in cmdlist: - # if the item is a list, wrap all items in single tick - # if its not, then just write it directly + # If the item is a list, wrap all items in single tick. + # If its not, then just write it directly. if isinstance(args, list): fixed = [] for f in args: fixed.append("'%s'" % (str(f).replace("'", escaped))) content = "%s%s\n" % (content, ' '.join(fixed)) + cmds_made += 1 elif isinstance(args, (str, basestring)): content = "%s%s\n" % (content, args) + cmds_made += 1 else: raise RuntimeError(("Unable to shellify type %s" " which is not a list or string") % (obj_name(args))) - LOG.debug("Shellified %s to %s", cmdlist, content) + LOG.debug("Shellified %s commands.", cmds_made) return content |