Hi, I'm hitting an issue with v2 api upload() and not sure the best way to fix it so would appreciate some opinions/suggestions.
https://bugs.launchpad.net/glance/+bug/1213880 https://bugs.launchpad.net/python-glanceclient/+bug/1220197 So, currently doing cinder upload-to-image fails with v2 glance api and RBD backend store. This is because v2 uses upload() (as opposed to update() in v1) and does not accept an image-size. The v2 Glance api upload() implementation checks the request content-length (which is currently always zero) and then tries to create an RBD image of size zero then write to it which fails. I have tried different solutions: 1. if image size is zero, resize for each chunk then write. 2. set content-length in glanceclient to size of image Problem with 1 is that this implicitly disables 'Transfer-Encoding: chunked' i.e. disables chunking. Problem with 2 is you get 2RTT of network latency per write plus overhead of a resize. So, I now think the best way to do this would be to modify the update call to allow the glancelcient to send x-image-meta-size so that the backend knows how big the image will be, create the image then write the chunk(s) incrementally (kind of like the swift store). Suggestions? Ed. _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev