diff options
Diffstat (limited to 'cloudinit/UserDataHandler.py')
| -rw-r--r-- | cloudinit/UserDataHandler.py | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/cloudinit/UserDataHandler.py b/cloudinit/UserDataHandler.py index 4ac0e2cd..fa8ce716 100644 --- a/cloudinit/UserDataHandler.py +++ b/cloudinit/UserDataHandler.py @@ -22,7 +22,8 @@ from email.mime.text import MIMEText  from email.mime.base import MIMEBase  from email import encoders  import yaml -from cloudinit import util, get_ipath_cur +import cloudinit +import cloudinit.util as util  starts_with_mappings={      '#include' : 'text/x-include-url', @@ -55,7 +56,8 @@ def do_include(str,parts):      for line in str.splitlines():          if line == "#include": continue          if line == "#include-once": -            includeonce == True +            includeonce = True +            continue          if line.startswith("#include-once"):              line = line[len("#include-once"):].lstrip()              includeonce = True @@ -65,7 +67,7 @@ def do_include(str,parts):          # urls cannot not have leading or trailing white space          uniquestring = base64.encodestring(line).strip() -        includeonce_filename = "%/urlcache/%s" % (get_ipath_cur("data"), uniquestring) +        includeonce_filename = "%s/urlcache/%s" % (cloudinit.get_ipath_cur("data"), uniquestring)          try:              if includeonce and os.path.isfile(includeonce_filename):                  with open(includeonce_filename, "r") as fp: @@ -75,7 +77,7 @@ def do_include(str,parts):                  if includeonce:                      util.write_file(includeonce_filename, content, mode=0600)          except Exception as e: -            log.debug(traceback.format_exc(e)) +            raise          process_includes(email.message_from_string(decomp_str(content)),parts) @@ -138,6 +140,10 @@ def process_includes(msg,parts):              do_include(payload,parts)              continue +        if ctype == 'text/x-include-once-url': +            do_include(payload,parts) +            continue +          if ctype == "text/cloud-config-archive":              explode_cc_archive(payload,parts)              continue  | 
