Comment 4 for bug 1424900

Revision history for this message
Scott Moser (smoser) wrote :

$ printf "%s\n%s\n" '#!/bin/sh' 'echo "$(date -R)" === HELLO WORLD === | tee -a /run/my.log"' | gzip -c > my-userdata
$ zcat my-userdata
#!/bin/sh
echo "$(date -R)" === HELLO WORLD === | tee -a /run/my.log"

$ nova boot --user-data=my-userdata --key-name=brickies --flavor=m1.small \
   --nic=net-id=25006453-2caa-4aa4-bdeb-e4822dc700d6 \
   --image=719fc41a-ca89-4f18-b082-94d067d449f9 vivid-20150224-214427

inside the instance, /var/log/cloud-init.log will have a WARN like:
  2015-02-24 21:45:12,010 - __init__.py[WARNING]: Unhandled non-multipart (text/x-not-multipart) userdata: 'b'\\x1f\\\\ufffd\\x08\\x00~\\\\ufffd\\\\ufffdT\\x00'...'

$ sudo file /var/lib/cloud/instance/user-data.txt
/var/lib/cloud/instance/user-data.txt: data

That *should* show 'gzip compressed data'

Also
$ ls -l /var/lib/cloud/instance/user-data.txt
-rw------- 1 root root 155 Feb 24 21:45 /var/lib/cloud/instance/user-data.txt
but
$ wget http://169.254.169.254/openstack/latest/user_data -O user_data
$ ls -l user_data
-rw-rw-r-- 1 ubuntu ubuntu 86 Feb 24 21:50 user_data

something got hosed there.

my tests that i've just committed don't go far enough to ensure this is working.
I think we undergo some conversions bytes -> text -> bytes and lose data in the process.