Port not parsed correctly in Swift URI
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Fix Released
|
High
|
Jay Pipes | ||
glance (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Hi,
I use Glance bzr124 on a ubuntu 10.04 LTS with a backend Swift 1.2.0.
I can upload and list files on the object store but when I tried to delete one, I've got this error :
$ glance delete 1
Delete image 1? [y/N] y
Traceback (most recent call last):
File "/usr/bin/glance", line 605, in <module>
result = command(options, args)
File "/usr/bin/glance", line 327, in image_delete
c.delete_
File "/usr/lib/
self.
File "/usr/lib/
raise Exception("Internal Server error: %s" % res.read())
Exception: Internal Server error: Traceback (most recent call last):
File "/usr/lib/
result = self.applicatio
File "/usr/lib/
return resp(environ, start_response)
File "/usr/lib/
response = self.app(environ, start_response)
File "/usr/lib/
return resp(environ, start_response)
File "/usr/lib/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/lib/
return self.func(req, *args, **kwargs)
File "/usr/lib/
result = method(**arg_dict)
File "/usr/lib/
delete_
File "/usr/lib/
return backend_
File "/usr/lib/
swift_
File "/usr/lib/
return self._retry(None, delete_object, container, obj)
File "/usr/lib/
self.url, self.token = self.get_auth()
File "/usr/lib/
return get_auth(
File "/usr/lib/
parsed, conn = http_connection
File "/usr/lib/
conn = HTTPSConnection
File "/usr/lib/
HTTPConnect
File "/usr/lib/
self.
File "/usr/lib/
raise InvalidURL(
InvalidURL: nonnumeric port: ''
In the log file of glance (registery + API) :
2011-04-26 18:05:08 DEBUG [routes.middleware] Matched DELETE /images/1
2011-04-26 18:05:08 DEBUG [routes.middleware] Route path: '/images/:(id)', defaults: {'action': u'delete', 'controller': <glance.
at 0x1cd3310>}
2011-04-26 18:05:08 DEBUG [routes.middleware] Match dict: {'action': u'delete', 'controller': <glance.
2011-04-26 18:05:08 DEBUG [routes.middleware] Matched GET /images/1
2011-04-26 18:05:08 DEBUG [routes.middleware] Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': <glance.
object at 0x220e510>}
2011-04-26 18:05:08 DEBUG [routes.middleware] Match dict: {'action': u'show', 'controller': <glance.
u'1'}
2011-04-26 18:05:08 INFO [sqlalchemy.
images.deleted_at AS images_deleted_at, images.deleted AS images_deleted, images.id AS images_id, images.name AS images_name, images.disk_format AS images_d
isk_format, images.
lic, images.location AS images_location, images.checksum AS images_checksum, image_propertie
_1.updated_at AS image_propertie
s_1_deleted, image_propertie
perties_1_name, image_propertie
FROM images LEFT OUTER JOIN image_properties AS image_properties_1 ON images.id = image_propertie
WHERE images.deleted = %s AND images.id = %s
2011-04-26 18:05:08 INFO [sqlalchemy.
2011-04-26 18:05:08 DEBUG [sqlalchemy.
'images_id', 'images_name', 'images_
hecksum', 'image_
1_id', 'image_
2011-04-26 18:05:08 DEBUG [sqlalchemy.
, 29), None, 0, 1L, 'Test Swift', 'qcow2', 'bare', 6182L, 'active', 1, 'swift:
', 'f21ea10ef86385
2011-04-26 18:05:08 DEBUG [eventlet.
File "/usr/lib/
result = self.applicatio
File "/usr/lib/
return resp(environ, start_response)
File "/usr/lib/
response = self.app(environ, start_response)
File "/usr/lib/
return resp(environ, start_response)
File "/usr/lib/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/lib/
return self.func(req, *args, **kwargs)
File "/usr/lib/
result = method(**arg_dict)
File "/usr/lib/
delete_
File "/usr/lib/
return backend_
File "/usr/lib/
swift_
File "/usr/lib/
return self._retry(None, delete_object, container, obj)
File "/usr/lib/
self.url, self.token = self.get_auth()
File "/usr/lib/
return get_auth(
File "/usr/lib/
parsed, conn = http_connection
File "/usr/lib/
conn = HTTPSConnection
File "/usr/lib/
HTTPConnect
File "/usr/lib/
self.
File "/usr/lib/
raise InvalidURL(
InvalidURL: nonnumeric port: ''
2011-04-26 18:05:08 DEBUG [eventlet.
2011-04-26 18:05:08 DEBUG [eventlet.
Is it a bug or I made a mistake in my platform ?
Regards,
Édouard.
Related branches
- Brian Lamar (community): Approve
- Brian Waldon (community): Approve
-
Diff: 1633 lines (+959/-264)12 files modifiedglance/common/exception.py (+18/-0)
glance/store/__init__.py (+15/-54)
glance/store/filesystem.py (+50/-12)
glance/store/http.py (+82/-9)
glance/store/location.py (+182/-0)
glance/store/s3.py (+119/-29)
glance/store/swift.py (+143/-83)
tests/stubs.py (+1/-5)
tests/unit/test_filesystem_store.py (+12/-13)
tests/unit/test_store_location.py (+243/-0)
tests/unit/test_stores.py (+0/-1)
tests/unit/test_swift_store.py (+94/-58)
Changed in glance: | |
importance: | Undecided → High |
assignee: | nobody → Jay Pipes (jaypipes) |
Changed in glance: | |
status: | New → Confirmed |
milestone: | none → diablo-1 |
Changed in glance: | |
milestone: | diablo-1 → diablo-2 |
Changed in glance: | |
milestone: | diablo-2 → diablo-3 |
Changed in glance: | |
status: | Triaged → In Progress |
Changed in glance: | |
status: | In Progress → Fix Committed |
Changed in glance (Ubuntu): | |
status: | New → Invalid |
Changed in glance: | |
milestone: | diablo-3 → 2011.3 |
status: | Fix Committed → Fix Released |
Rick is brilliant...
Use swift+http:// as the solution.