rgw: add a field to store generic user data in the bucket index,
that can be populated/fetched via a configurable custom http header
Signed-off-by: Pavan Rallabhandi <prallabhandi@walmartlabs.com>
(cherry picked from commit
abca7a86c3cfbb58fafb5d057d9d6f5017a53704)
Conflicts:
src/rgw/rgw_op.cc
Number of arguments to RGWPutObjProcessor_Multipart::do_complete has been changed in master with an extra field accounted_size added, which is not required in Jewel.
Number of arguments for the processor->complete() has been changed in master, which is not required in Jewel.
src/rgw/rgw_op.h
A new member field `crypt_http_responses` is added in the class `RGWPutObj` in master, which is not required in Jewel.
src/rgw/rgw_rados.cc
In the function RGWPutObjProcessor::complete() there is an extra argument to do_complete() in master, which is not required in Jewel.
In the function RGWPutObjProcessor_Atomic::do_complete, a call to obj_op.write_meta has accounted_size, which is not required in Jewel.
There is an extra argument accounted_size in RGWRados::Bucket::UpdateIndex::complete in master, which is not required in Jewel.
In RGWRados::Bucket::UpdateIndex::complete, RGWObjEnt has been removed in master, which has to be retained in Jewel.
In RGWRados::cls_obj_complete_op, user_data is added to the rgw_bucket_dir_entry_meta structure.
In RGWRados::cls_bucket_list, the user_data field of RGWObjEnt is populated.
src/rgw/rgw_rados.h
In UpdateIndex::complete(), remove_objs is of type rgw_obj_key in Jewel instead of rgw_obj_index_key
Corrected various function declarations as appropriate.
RGWPutObjProcessor_Multipart is not part of this file in Jewel.
src/rgw/rgw_rest_swift.cc
In RGWListBucket_ObjStore_SWIFT::send_response(), accounted_size is not required in Jewel.
src/rgw/rgw_common.h
Add user_data field in RGWObjEnt structure.
src/rgw/rgw_json_enc.cc
Add user_data field while dumping RGWObjEnt.