diff options
Diffstat (limited to 'cloudinit/UserDataHandler.py')
-rw-r--r-- | cloudinit/UserDataHandler.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/cloudinit/UserDataHandler.py b/cloudinit/UserDataHandler.py index 9670c0cb..afd5dd99 100644 --- a/cloudinit/UserDataHandler.py +++ b/cloudinit/UserDataHandler.py @@ -190,11 +190,10 @@ def preprocess_userdata(data): process_includes(email.message_from_string(decomp_str(data)),parts) return(parts2mime(parts)) -# callbacks is a dictionary with: -# { 'content-type': handler(data,content_type,filename,payload) } -def walk_userdata(str, callbacks, data = None): +# callback is a function that will be called with (data, content_type, filename, payload) +def walk_userdata(istr, callback, data = None): partnum = 0 - for part in email.message_from_string(str).walk(): + for part in email.message_from_string(istr).walk(): # multipart/* are just containers if part.get_content_maintype() == 'multipart': continue @@ -207,8 +206,7 @@ def walk_userdata(str, callbacks, data = None): if not filename: filename = 'part-%03d' % partnum - if callbacks.has_key(ctype): - callbacks[ctype](data,ctype,filename,part.get_payload()) + callback(data, ctype, filename, part.get_payload()) partnum = partnum+1 |