return 0;
}
+static int convert_old_bucket_info(RGWRados *store,
+ RGWSysObjectCtx& obj_ctx,
+ const string& tenant_name,
+ const string& bucket_name)
+{
+ RGWBucketEntryPoint entry_point;
+ real_time ep_mtime;
+ RGWObjVersionTracker ot;
+ map<string, bufferlist> attrs;
+ RGWBucketInfo info;
+ auto cct = store->ctx();
+
+ ldout(cct, 10) << "RGWRados::convert_old_bucket_info(): bucket=" << bucket_name << dendl;
+
+ int ret = store->get_bucket_entrypoint_info(obj_ctx, tenant_name, bucket_name, entry_point, &ot, &ep_mtime, &attrs);
+ if (ret < 0) {
+ ldout(cct, 0) << "ERROR: get_bucket_entrypoint_info() returned " << ret << " bucket=" << bucket_name << dendl;
+ return ret;
+ }
+
+ if (!entry_point.has_bucket_info) {
+ /* already converted! */
+ return 0;
+ }
+
+ info = entry_point.old_bucket_info;
+ info.bucket.oid = bucket_name;
+ info.ep_objv = ot.read_version;
+
+ ot.generate_new_write_ver(cct);
+
+ ret = store->put_linked_bucket_info(info, false, ep_mtime, &ot.write_version, &attrs, true);
+ if (ret < 0) {
+ ldout(cct, 0) << "ERROR: failed to put_linked_bucket_info(): " << ret << dendl;
+ return ret;
+ }
+
+ return 0;
+}
+
int rgw_bucket_set_attrs(RGWRados *store, RGWBucketInfo& bucket_info,
map<string, bufferlist>& attrs,
RGWObjVersionTracker *objv_tracker)
if (!bucket_info.has_instance_obj) {
/* an old bucket object, need to convert it */
RGWSysObjectCtx obj_ctx = store->svc.sysobj->init_obj_ctx();
- int ret = store->convert_old_bucket_info(obj_ctx, bucket.tenant, bucket.name);
+ int ret = convert_old_bucket_info(store, obj_ctx, bucket.tenant, bucket.name);
if (ret < 0) {
ldout(store->ctx(), 0) << "ERROR: failed converting old bucket info: " << ret << dendl;
return ret;
return 0;
}
-int RGWRados::convert_old_bucket_info(RGWSysObjectCtx& obj_ctx,
- const string& tenant_name,
- const string& bucket_name)
-{
- RGWBucketEntryPoint entry_point;
- real_time ep_mtime;
- RGWObjVersionTracker ot;
- map<string, bufferlist> attrs;
- RGWBucketInfo info;
-
- ldout(cct, 10) << "RGWRados::convert_old_bucket_info(): bucket=" << bucket_name << dendl;
-
- int ret = get_bucket_entrypoint_info(obj_ctx, tenant_name, bucket_name, entry_point, &ot, &ep_mtime, &attrs);
- if (ret < 0) {
- ldout(cct, 0) << "ERROR: get_bucket_entrypoint_info() returned " << ret << " bucket=" << bucket_name << dendl;
- return ret;
- }
-
- if (!entry_point.has_bucket_info) {
- /* already converted! */
- return 0;
- }
-
- info = entry_point.old_bucket_info;
- info.bucket.oid = bucket_name;
- info.ep_objv = ot.read_version;
-
- ot.generate_new_write_ver(cct);
-
- ret = put_linked_bucket_info(info, false, ep_mtime, &ot.write_version, &attrs, true);
- if (ret < 0) {
- ldout(cct, 0) << "ERROR: failed to put_linked_bucket_info(): " << ret << dendl;
- return ret;
- }
-
- return 0;
-}
-
int RGWRados::get_bucket_info(RGWSysObjectCtx& obj_ctx,
const string& tenant, const string& bucket_name,
RGWBucketInfo& info,
int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y);
int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const rgw_bucket& bucket, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y);
- int convert_old_bucket_info(RGWSysObjectCtx& obj_ctx, const string& tenant_name, const string& bucket_name);
static void make_bucket_entry_name(const string& tenant_name, const string& bucket_name, string& bucket_entry);
int get_bucket_info(RGWSysObjectCtx& obj_ctx,