EC2 metadata retrieval fails with spaces in a resource name
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Invalid
|
Low
|
Unassigned | ||
python-boto (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Precise |
Fix Released
|
Medium
|
Edward Hope-Morley | ||
Quantal |
Fix Released
|
Medium
|
Edward Hope-Morley | ||
Raring |
Fix Released
|
Medium
|
Edward Hope-Morley |
Bug Description
[Impact]
Example when using a key name 'my key':
Caught exception reading instance data: http://
Is a boto issue, see https:/
Patches provided for Precise, Quantal and Raring. Fix already exists in Saucy.
[Test Case]
There are two ways to test this. The first provides that the change will affect
the url in the required manner but does not test the package. The second will
test the package but needs to be run within an Openstack instance against an
API that has calls with spaces on their name.
====
#!/usr/bin/env python
import urllib
resource = "http://
print "unsafe: %s" % resource
resource = urllib.
print "safe: %s" % resource
===
#!/usr/bin/env python
from boto import utils
utils.get_
[Regression Potential]
This is a very low risk change which makes any non-alphnumeric characters in a meta api call name safe for urlib. It is unlikely that an api call name would have anything other than alphanumeric chars, whitespace and perhaps '_' but even if they did they would be safe here so there is no known regression potential.
Changed in python-boto (Ubuntu): | |
importance: | Undecided → Low |
Changed in python-boto (Ubuntu Precise): | |
assignee: | nobody → Chris J Arges (arges) |
Changed in python-boto (Ubuntu Quantal): | |
assignee: | nobody → Chris J Arges (arges) |
Changed in python-boto (Ubuntu Precise): | |
importance: | Undecided → Medium |
Changed in python-boto (Ubuntu Quantal): | |
importance: | Undecided → Medium |
Changed in python-boto (Ubuntu Precise): | |
status: | New → In Progress |
Changed in python-boto (Ubuntu Quantal): | |
status: | New → In Progress |
description: | updated |
Changed in python-boto (Ubuntu Raring): | |
status: | New → In Progress |
assignee: | nobody → Chris J Arges (arges) |
Changed in python-boto (Ubuntu): | |
status: | Triaged → Fix Released |
description: | updated |
description: | updated |
Changed in python-boto (Ubuntu Raring): | |
importance: | Undecided → Medium |
Changed in python-boto (Ubuntu Precise): | |
assignee: | Chris J Arges (arges) → Edward Hope-Morley (hopem) |
Changed in python-boto (Ubuntu Quantal): | |
assignee: | Chris J Arges (arges) → Edward Hope-Morley (hopem) |
Changed in python-boto (Ubuntu Raring): | |
assignee: | Chris J Arges (arges) → Edward Hope-Morley (hopem) |
Could you give an example of how you start an instance such that '/meta-data/mpi/my key' exists? keypair --public-key-file my.pub "my key", and then run instance with '--key "my key"'), and that worked fine (thi sis actually because of the way that public-keys are displayed and handled specially in the MD).
I just tried this with a keypair (euca-import-
Anyway, can you explain how you did this so I can reproduce?