summaryrefslogtreecommitdiff
path: root/cloudinit/handlers
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2012-11-12 09:34:34 -0500
committerScott Moser <smoser@ubuntu.com>2012-11-12 09:34:34 -0500
commit9de2f909415ad5a5ca4ad3584c73c0e643ba6079 (patch)
tree39e176f79fedf638d50d3044435021a31b93d6f7 /cloudinit/handlers
parentb0f6c7bfa94a5ba302debdc16a175cb0017f9634 (diff)
parent71ba36704132ff8597dfc0e45b34e0c4424e239f (diff)
downloadvyos-cloud-init-9de2f909415ad5a5ca4ad3584c73c0e643ba6079.tar.gz
vyos-cloud-init-9de2f909415ad5a5ca4ad3584c73c0e643ba6079.zip
merge from trunk
Diffstat (limited to 'cloudinit/handlers')
-rw-r--r--cloudinit/handlers/__init__.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/cloudinit/handlers/__init__.py b/cloudinit/handlers/__init__.py
index 99caed1f..8d6dcd4d 100644
--- a/cloudinit/handlers/__init__.py
+++ b/cloudinit/handlers/__init__.py
@@ -160,6 +160,19 @@ def _extract_first_or_bytes(blob, size):
return start
+def _escape_string(text):
+ try:
+ return text.encode("string-escape")
+ except TypeError:
+ try:
+ # Unicode doesn't support string-escape...
+ return text.encode('unicode-escape')
+ except TypeError:
+ # Give up...
+ pass
+ return text
+
+
def walker_callback(pdata, ctype, filename, payload):
if ctype in PART_CONTENT_TYPES:
walker_handle_handler(pdata, ctype, filename, payload)
@@ -171,7 +184,7 @@ def walker_callback(pdata, ctype, filename, payload):
elif payload:
# Extract the first line or 24 bytes for displaying in the log
start = _extract_first_or_bytes(payload, 24)
- details = "'%s...'" % (start.encode("string-escape"))
+ details = "'%s...'" % (_escape_string(start))
if ctype == NOT_MULTIPART_TYPE:
LOG.warning("Unhandled non-multipart (%s) userdata: %s",
ctype, details)