Images in 'killed' status show in index(); no status shown in show()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Fix Released
|
Medium
|
Jay Pipes |
Bug Description
I use Glance bzr123 configured with Swift backend.
I made a mistake in my Swift configuration and I tried to add file to datastore.
$ glance add name="Jonas" is_public=True disk_format=qcow2 container_
Failed to add image. Got error:
400 Bad Request
The server could not comply with the request since it is either malformed or otherwise incorrect.
Error uploading image: Auth GET failed: https:/
$ glance index
Found 1 public images...
ID Name Disk Format Container Format Size
---------------- -------
1 Jonas qcow2 bare 0
root@p-
URI: http://
Id: 1
Public: Yes
Name: Jonas
Size: 0
Location: None
Disk format: qcow2
Container format: bare
The glance add command returns an error 400. That's normal but the image was still registry in the database.
2011-04-22 15:05:50 DEBUG [routes.middleware] Matched POST /images
2011-04-22 15:05:50 DEBUG [routes.middleware] Route path: '/images', defaults: {'action': u'create', 'controller': <glance.
2011-04-22 15:05:50 DEBUG [routes.middleware] Match dict: {'action': u'create', 'controller': <glance.
2011-04-22 15:05:50 DEBUG [glance.registry] Adding image metadata...
2011-04-22 15:05:50 DEBUG [glance.registry] container_format: bare
2011-04-22 15:05:50 DEBUG [glance.registry] disk_format: qcow2
2011-04-22 15:05:50 DEBUG [glance.registry] is_public: True
2011-04-22 15:05:50 DEBUG [glance.registry] name: Jonas
2011-04-22 15:05:50 DEBUG [glance.registry] size: 0
2011-04-22 15:05:50 DEBUG [glance.registry] status: queued
2011-04-22 15:05:50 DEBUG [routes.middleware] Matched POST /images
2011-04-22 15:05:50 DEBUG [routes.middleware] Route path: '/images', defaults: {'action': u'create', 'controller': <glance.
2011-04-22 15:05:50 DEBUG [routes.middleware] Match dict: {'action': u'create', 'controller': <glance.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
FROM image_properties
WHERE %s = image_propertie
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
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-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 DEBUG [eventlet.
2011-04-22 15:05:50 DEBUG [glance.registry] Returned image metadata from call to RegistryClient.
2011-04-22 15:05:50 DEBUG [glance.registry] checksum: None
2011-04-22 15:05:50 DEBUG [glance.registry] container_format: bare
2011-04-22 15:05:50 DEBUG [glance.registry] created_at: 2011-04-22T13:05:50
2011-04-22 15:05:50 DEBUG [glance.registry] deleted: False
2011-04-22 15:05:50 DEBUG [glance.registry] deleted_at: None
2011-04-22 15:05:50 DEBUG [glance.registry] disk_format: qcow2
2011-04-22 15:05:50 DEBUG [glance.registry] id: 1
2011-04-22 15:05:50 DEBUG [glance.registry] is_public: True
2011-04-22 15:05:50 DEBUG [glance.registry] location: None
2011-04-22 15:05:50 DEBUG [glance.registry] name: Jonas
2011-04-22 15:05:50 DEBUG [glance.registry] size: 0
2011-04-22 15:05:50 DEBUG [glance.registry] status: queued
2011-04-22 15:05:50 DEBUG [glance.registry] updated_at: None
2011-04-22 15:05:50 DEBUG [glance.server] Setting image 1 to status 'saving'
2011-04-22 15:05:50 DEBUG [glance.registry] Updating image metadata for image 1...
2011-04-22 15:05:50 DEBUG [glance.registry] status: saving
2011-04-22 15:05:50 DEBUG [routes.middleware] Matched PUT /images/1
2011-04-22 15:05:50 DEBUG [routes.middleware] Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': <glance.
2011-04-22 15:05:50 DEBUG [routes.middleware] Match dict: {'action': u'update', 'controller': <glance.
2011-04-22 15:05:50 DEBUG [glance.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
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-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 INFO [sqlalchemy.
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-22 15:05:50 INFO [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 DEBUG [sqlalchemy.
2011-04-22 15:05:50 DEBUG [eventlet.
2011-04-22 15:05:50 DEBUG [glance.registry] Returned image metadata from call to RegistryClient.
2011-04-22 15:05:50 DEBUG [glance.registry] checksum: None
2011-04-22 15:05:50 DEBUG [glance.registry] container_format: bare
2011-04-22 15:05:50 DEBUG [glance.registry] created_at: 2011-04-22T13:05:50
2011-04-22 15:05:50 DEBUG [glance.registry] deleted: False
2011-04-22 15:05:50 DEBUG [glance.registry] deleted_at: None
2011-04-22 15:05:50 DEBUG [glance.registry] disk_format: qcow2
2011-04-22 15:05:50 DEBUG [glance.registry] id: 1
2011-04-22 15:05:50 DEBUG [glance.registry] is_public: True
2011-04-22 15:05:50 DEBUG [glance.registry] location: None
2011-04-22 15:05:50 DEBUG [glance.registry] name: Jonas
2011-04-22 15:05:50 DEBUG [glance.registry] size: 0
2011-04-22 15:05:50 DEBUG [glance.registry] status: saving
2011-04-22 15:05:50 DEBUG [glance.registry] updated_at: 2011-04-22T13:05:50
2011-04-22 15:05:50 DEBUG [glance.server] Uploading image data for image 1 to swift store
2011-04-22 15:05:51 DEBUG [glance.
2011-04-22 15:05:52 ERROR [glance.server] Error uploading image: Auth GET failed: https:/
2011-04-22 15:05:52 DEBUG [glance.registry] Updating image metadata for image 1...
2011-04-22 15:05:52 DEBUG [glance.registry] status: killed
2011-04-22 15:05:52 DEBUG [routes.middleware] Matched PUT /images/1
2011-04-22 15:05:52 DEBUG [routes.middleware] Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': <glance.
2011-04-22 15:05:52 DEBUG [routes.middleware] Match dict: {'action': u'update', 'controller': <glance.
2011-04-22 15:05:52 DEBUG [glance.
2011-04-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 INFO [sqlalchemy.
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-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 DEBUG [sqlalchemy.
2011-04-22 15:05:52 DEBUG [sqlalchemy.
2011-04-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 INFO [sqlalchemy.
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-22 15:05:52 INFO [sqlalchemy.
2011-04-22 15:05:52 DEBUG [sqlalchemy.
2011-04-22 15:05:52 DEBUG [sqlalchemy.
2011-04-22 15:05:52 DEBUG [eventlet.
2011-04-22 15:05:52 DEBUG [glance.registry] Returned image metadata from call to RegistryClient.
2011-04-22 15:05:52 DEBUG [glance.registry] checksum: None
2011-04-22 15:05:52 DEBUG [glance.registry] container_format: bare
2011-04-22 15:05:52 DEBUG [glance.registry] created_at: 2011-04-22T13:05:50
2011-04-22 15:05:52 DEBUG [glance.registry] deleted: False
2011-04-22 15:05:52 DEBUG [glance.registry] deleted_at: None
2011-04-22 15:05:52 DEBUG [glance.registry] disk_format: qcow2
2011-04-22 15:05:52 DEBUG [glance.registry] id: 1
2011-04-22 15:05:52 DEBUG [glance.registry] is_public: True
2011-04-22 15:05:52 DEBUG [glance.registry] location: None
2011-04-22 15:05:52 DEBUG [glance.registry] name: Jonas
2011-04-22 15:05:52 DEBUG [glance.registry] size: 0
2011-04-22 15:05:52 DEBUG [glance.registry] status: killed
2011-04-22 15:05:52 DEBUG [glance.registry] updated_at: 2011-04-22T13:05:52
2011-04-22 15:06:19 DEBUG [eventlet.
Related branches
- Édouard Thuleau (community): Approve (test)
- Devin Carlen (community): Approve
- Dan Prince (community): Approve
- Brian Waldon (community): Approve
-
Diff: 176 lines (+83/-4)5 files modifiedbin/glance (+3/-0)
glance/registry/db/api.py (+1/-0)
tests/functional/__init__.py (+2/-1)
tests/functional/test_bin_glance.py (+64/-1)
tests/utils.py (+13/-2)
summary: |
- Upload in Swift backend fails but image is register + Images in 'killed' status show in index(); no status shown in show() |
Changed in glance: | |
importance: | Undecided → Medium |
status: | New → In Progress |
assignee: | nobody → Jay Pipes (jaypipes) |
Changed in glance: | |
status: | In Progress → Fix Committed |
Changed in glance: | |
milestone: | none → diablo-1 |
Changed in glance: | |
milestone: | diablo-1 → 2011.3 |
status: | Fix Committed → Fix Released |
OK, so looks like this bug has two parts:
1) Public images in a killed status are shown on calls to glance index and glance detail, and they should not be
2) An image's status does not seem to be shown in glance show <ID> and it should be.
Would you agree with the above statements, Edoaurd?