From ba2706e45c4ee5411f58f2d30c3d1427051ef51e Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 1 Mar 2019 15:50:20 -0800 Subject: [PATCH] rgw: move helper code out of rgw_rados.cc Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_bucket.cc | 42 +++++++++++++++++++++++++++++++++++++++++- src/rgw/rgw_rados.cc | 38 -------------------------------------- src/rgw/rgw_rados.h | 1 - 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index dbb80e6b6b4..40092cab172 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -413,6 +413,46 @@ int rgw_bucket_parse_bucket_key(CephContext *cct, const string& key, 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 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& attrs, RGWObjVersionTracker *objv_tracker) @@ -422,7 +462,7 @@ int rgw_bucket_set_attrs(RGWRados *store, RGWBucketInfo& bucket_info, 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; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 3e95a17a598..31299c8f338 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -7838,44 +7838,6 @@ int RGWRados::get_bucket_entrypoint_info(RGWSysObjectCtx& obj_ctx, 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 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, diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 6fdc0aca708..e6cb4245837 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -1381,7 +1381,6 @@ public: int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info, ceph::real_time *pmtime, map *pattrs, optional_yield y); int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const rgw_bucket& bucket, RGWBucketInfo& info, ceph::real_time *pmtime, map *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, -- 2.39.5