summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2010-07-01 20:53:28 -0400
committerScott Moser <smoser@ubuntu.com>2010-07-01 20:53:28 -0400
commit422f55437a773bf1896aa0d329f9079d885c5b62 (patch)
tree0bc1cb60b6c3e1c10229951e77f84f2dc1ad7762
parent5b03431c163ebd3e0df26a304ad9386817fcb35c (diff)
downloadvyos-cloud-init-422f55437a773bf1896aa0d329f9079d885c5b62.tar.gz
vyos-cloud-init-422f55437a773bf1896aa0d329f9079d885c5b62.zip
resort to "starts with" to find mime type only on plain/text (LP: #600799)
The starts-with determination of mime type was overriding an explicit setting in the mime-type. This was evident when the mime type specified boothook, but the content began with '#!'. In that case, the content would run as a user script rather than boothook. LP: #600799
-rw-r--r--cloudinit/UserDataHandler.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/cloudinit/UserDataHandler.py b/cloudinit/UserDataHandler.py
index 5c95173a..ab7d0bc8 100644
--- a/cloudinit/UserDataHandler.py
+++ b/cloudinit/UserDataHandler.py
@@ -65,13 +65,15 @@ def process_includes(msg,parts):
payload = part.get_payload()
ctype = None
- for str, gtype in starts_with_mappings.items():
- if payload.startswith(str):
- ctype = gtype
- break
+ ctype_orig = part.get_content_type()
+ if ctype_orig == "text/plain":
+ for str, gtype in starts_with_mappings.items():
+ if payload.startswith(str):
+ ctype = gtype
+ break
if ctype is None:
- ctype = part.get_content_type()
+ ctype = ctype_orig
if ctype == 'text/x-include-url':
do_include(payload,parts)