glance_store/glance_store/_drivers
Alfredo Moralejo ed356fc6b4 Do not include ETag when puting manifest in chunked uploads
While testing glance with Ceph Rados Gateway using latest Ceph release
(Nautilus), i've found that glance fails to upload the manifest using
dynamic large objects mode because of the value used in ETag request.

This issue has been reported to Ceph as it seems related to some recent
change in radosgw code [1].

However, checking at the upload workflow used by glance and comparing
to Swift documentation [2], I wonder if adding the etag is actually
providing any value. In the Swift the ETag header is used to validate
integrity when uploading chunks, not the manifest while glance is doing
exactly the oposite, not sending the etag in the chunks (I guess to
avoid checksuming big images, which makes sense to me) and sending it
when puting the manifest.

This patch is removing the etag header when sending the PUT request for
the manifest in chunked uploads.

[1] https://tracker.ceph.com/issues/39160
[2] https://docs.openstack.org/swift/latest/api/large_objects.html#dynamic-large-objects

Closes-bug: #1824533
Change-Id: I0b563dfcdc30026669fb089c82db8c3df7edc808
2019-04-17 12:38:22 +02:00
..
swift Do not include ETag when puting manifest in chunked uploads 2019-04-17 12:38:22 +02:00
__init__.py Rename glance.store to glance_store 2014-08-28 10:09:36 +02:00
cinder.py Merge "Consider Cinder back-end as production ready" 2018-07-19 18:04:46 +00:00
filesystem.py Merge "Filesystem driver: add chunk size config option" 2019-02-28 08:15:52 +00:00
http.py Merge "Remove config option help translation" 2018-07-19 17:40:04 +00:00
rbd.py Merge "Fix python3 compatibility of rbd get_fsid" 2019-02-22 07:51:30 +00:00
sheepdog.py Do not raise StopIteration 2019-02-15 13:10:59 +00:00
vmware_datastore.py Fix some types in the FS and VMware drivers 2019-01-24 01:14:26 +01:00