Bug #10475
rgw: setting bucket metadata via swift api removes existing metadata
100%
Description
According to http://docs.openstack.org/api/openstack-object-storage/1.0/content/POST_updateContainerMeta__v1__account___container__storage_container_services.html the existing metadata should not be affected.
commit:f67bfa24fd6f69c2fcc0987eba8b6b426dd78320
Associated revisions
rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
Fixes: #10475
Backport: hammer, firefly
Reported-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
Fixes: #10475
Backport: hammer, firefly
Reported-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
(cherry picked from commit f67bfa24fd6f69c2fcc0987eba8b6b426dd78320)
Conflicts:
src/rgw/rgw_rest.h
trivial merge: prototype of an unrelated function changed
s/is_object_op/!(s->object == NULL)/
rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
Fixes: #10475
Backport: hammer, firefly
Reported-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
(cherry picked from commit f67bfa24fd6f69c2fcc0987eba8b6b426dd78320)
Conflicts:
src/rgw/rgw_rest.h
trivial merge: prototype of an unrelated function changed
src/rgw/rgw_op.cc
s/is_object_op/!(s->object == NULL)/
History
#1 Updated by Dmytro Yurchenko about 9 years ago
I've started to work on it.
#2 Updated by Yehuda Sadeh about 9 years ago
- Assignee set to Dmytro Yurchenko
#3 Updated by Josh Durgin about 9 years ago
FWIW I filed this based on reading RGWPutMetadata::execute() during a review: https://github.com/ceph/ceph/blob/6f44f7a0a9847e419ce2783164633efa71218380/src/rgw/rgw_op.cc#L1940
#4 Updated by Dmytro Yurchenko about 9 years ago
- Status changed from New to In Progress
Sending new metadata to an object will erase existing ones too.
I couldn't test it, because development version has troubles with returning back bucket's custom metadata.
So I had to fix that first. I will provide both fixes in one patch.
#5 Updated by Dmytro Yurchenko about 9 years ago
- % Done changed from 0 to 20
#6 Updated by Dmytro Yurchenko about 9 years ago
- % Done changed from 20 to 40
Implemented correct metadata merging and deletion according to:
http://docs.openstack.org/api/openstack-object-storage/1.0/content/delete-container-metadata.html
Now testing and improving the patch before publishing it.
#7 Updated by Dmytro Yurchenko about 9 years ago
- % Done changed from 40 to 100
Now waiting for the review.
https://github.com/ceph/ceph/pull/3561
#8 Updated by Sage Weil about 9 years ago
- Status changed from In Progress to Fix Under Review
#9 Updated by Yehuda Sadeh about 9 years ago
- Status changed from Fix Under Review to Pending Backport
#10 Updated by Loïc Dachary about 9 years ago
- Description updated (diff)
#11 Updated by Loïc Dachary about 9 years ago
- Description updated (diff)
#12 Updated by Loïc Dachary about 9 years ago
- giant backport https://github.com/ceph/ceph/pull/4034
#13 Updated by Sage Weil about 9 years ago
- Status changed from Pending Backport to Resolved