Hm.. Its interesting. digging further, I don't understand how this caused a problem on nova. It seems (either by design or happenstance) that the general behavior of the metadata service handles this issue, and boto is designed to read the metadata service as it is implemented.
I actually verified functional 'boto.utils.get_instance_metadata' on both nova and ec2 with a key named "my brickies" (nova folsom as packaged in Ubuntu). The output of the commands below was identical.
Hm.. Its interesting. digging further, I don't understand how this caused a problem on nova. It seems (either by design or happenstance) that the general behavior of the metadata service handles this issue, and boto is designed to read the metadata service as it is implemented.
I actually verified functional 'boto.utils. get_instance_ metadata' on both nova and ec2 with a key named "my brickies" (nova folsom as packaged in Ubuntu). The output of the commands below was identical.
Example: 169.254. 169.254/ 2009-04- 04/meta- data/public- keys -O - -q; echo 169.254. 169.254/ 2009-04- 04/meta- data/public- keys/0/ -O - -q; echo 169.254. 169.254/ 2009-04- 04/meta- data/public- keys/0/ openssh- key -O - -q; AAAABIwAAAQEA3I 7VUf2l5gSn5uavR Osc5HRDpZdQueUq 5ozemNSj8T7enqK HOEaFoU2VoPgGEW C9RyzSQVeyD6s7A PMcE82EtmW4skVE gEGSbDc1pvxzxtc hBj78hJP6Cf5TCM FSXw+Fz5rF1dR23 QDbN1mkHs7adr8G W4kSWqU7Q7NDwfI rJJtO7Hi42GyXtv EONHbiRPOe8stqU ly7MvUoN+ 5kfjBM8Qqpfl2+ FNhTYWpMfYdPUnE 7u536WqzFmsaqJc tz3gBxH9Ex7dFtr xR4qiqEr9Qtlu3x Gn7Bw07/ +i1D+ey3ONkZLN+ LQ714cgj8fRS4Hj 29SCmXp5Kt5/ 82cD/VN3NtHw= = my brickies
$ wget http://
0=my brickies
$ wget http://
openssh-key
$ wget http://
ssh-rsa AAAAB3NzaC1yc2E
So, the public-keys (also in nova) is special cased, and you do not ever refer to the key name when crawling. So the space shouldn't actually be used.
I agree the general suggestion, though, that boto should not be doing requests with unencoded urls.