From 95f712616334b495c1ee20a9416a4f2d8d7f2120 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Wed, 26 Aug 2015 16:43:49 +0200 Subject: [PATCH] rgw: RGWZoneGroup should inheirt from RGWSystemMetaObj Signed-off-by: Orit Wasserman --- src/CMakeLists.txt | 6 +- src/rgw/rgw_admin.cc | 20 +-- src/rgw/rgw_json_enc.cc | 6 +- src/rgw/rgw_op.cc | 6 +- src/rgw/rgw_rados.cc | 349 +++++++++------------------------------ src/rgw/rgw_rados.h | 49 ++---- src/rgw/rgw_rest_conn.cc | 2 +- 7 files changed, 109 insertions(+), 329 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f3ae27ae0283..dfedb108eb5d6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -537,10 +537,6 @@ set(dencoder_srcs if(${WITH_RADOSGW}) list(APPEND dencoder_srcs rgw/rgw_dencoder.cc - rgw/rgw_acl.cc - rgw/rgw_common.cc - rgw/rgw_env.cc - rgw/rgw_json_enc.cc ) set(DENCODER_EXTRALIBS rgw_a @@ -567,6 +563,7 @@ target_link_libraries(ceph-dencoder mon osdc journal + ${DENCODER_EXTRALIBS} cls_lock_client cls_refcount_client cls_log_client @@ -577,7 +574,6 @@ target_link_libraries(ceph-dencoder cls_user_client cls_journal_client cls_timeindex_client - ${DENCODER_EXTRALIBS} blkid udev keyutils diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 319afd1a2bc49..033c2c8c27f37 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1933,8 +1933,8 @@ int main(int argc, char **argv) cerr << "failed to list zonegroups: " << cpp_strerror(-ret) << std::endl; return -ret; } - RGWDefaultZoneGroupInfo default_zonegroup; - ret = zonegroup.read_default(default_zonegroup, zonegroup.get_default_oid(g_ceph_context)); + string default_zonegroup; + ret = zonegroup.read_default_id(default_zonegroup); if (ret < 0 && ret != -ENOENT) { cerr << "could not determine default zonegroup: " << cpp_strerror(-ret) << std::endl; } @@ -1959,7 +1959,7 @@ int main(int argc, char **argv) return 1; } - ret = zonegroup.store_info(false); + ret = zonegroup.update(); if (ret < 0) { cerr << "ERROR: couldn't store zone info: " << cpp_strerror(-ret) << std::endl; return 1; @@ -2025,16 +2025,9 @@ int main(int argc, char **argv) } if (reset_regions) { - regionmap.regions.clear(); + zonegroupmap.zonegroups.clear(); } - RGWZoneGroup zonegroup; - ret = zonegroup.init(g_ceph_context, store, false); - if (ret < 0) { - cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; - return -ret; - } - list zonegroups; ret = store->list_zonegroups(zonegroups); if (ret < 0) { @@ -2043,9 +2036,10 @@ int main(int argc, char **argv) } for (list::iterator iter = zonegroups.begin(); iter != zonegroups.end(); ++iter) { - ret = zonegroup.read_info(*iter); + RGWZoneGroup zonegroup(*iter); + ret = zonegroup.init(g_ceph_context, store); if (ret < 0) { - cerr << "failed to read zonegroup info (name=" << *iter << "): " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } zonegroupmap.update(zonegroup); diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc index 9626fb59088fc..45d941d8bedab 100644 --- a/src/rgw/rgw_json_enc.cc +++ b/src/rgw/rgw_json_enc.cc @@ -852,7 +852,7 @@ void RGWZoneGroupPlacementTarget::decode_json(JSONObj *obj) void RGWZoneGroup::dump(Formatter *f) const { - encode_json("name", name, f); + RGWSystemMetaObj::dump(f); encode_json("api_name", api_name, f); encode_json("is_master", is_master, f); encode_json("endpoints", endpoints, f); @@ -881,7 +881,7 @@ static void decode_placement_targets(map& t void RGWZoneGroup::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("name", name, obj); + RGWSystemMetaObj::decode_json(obj); JSONDecoder::decode_json("api_name", api_name, obj); JSONDecoder::decode_json("is_master", is_master, obj); JSONDecoder::decode_json("endpoints", endpoints, obj); @@ -953,7 +953,7 @@ static void decode_zonegroups(map& zonegroups, JSONObj *o) { RGWZoneGroup zg; zg.decode_json(o); - zonegroups[zg.name] = zg; + zonegroups[zg.get_id()] = zg; } void RGWRealm::decode_json(JSONObj *obj) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 62a7538a125dc..6c815e1c2cf55 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -412,7 +412,7 @@ static int rgw_build_bucket_policies(RGWRados *store, struct req_state *s) s->zonegroup_endpoint = dest_zonegroup->second.endpoints.front(); } if (s->bucket_exists && !store->zonegroup.equals(zonegroup)) { - ldout(s->cct, 0) << "NOTICE: request for data in a different zonegroup (" << zonegroup << " != " << store->zonegroup.name << ")" << dendl; + ldout(s->cct, 0) << "NOTICE: request for data in a different zonegroup (" << zonegroup << " != " << store->zonegroup.get_name() << ")" << dendl; /* we now need to make sure that the operation actually requires copy source, that is * it's a copy operation */ @@ -1769,10 +1769,10 @@ void RGWCreateBucket::execute() if (s->system_request) { zonegroup_id = s->info.args.get(RGW_SYS_PARAM_PREFIX "zonegroup"); if (zonegroup_id.empty()) { - zonegroup_id = store->zonegroup.id; + zonegroup_id = store->zonegroup.get_id(); } } else { - zonegroup_id = store->zonegroup.id; + zonegroup_id = store->zonegroup.get_id(); } if (s->bucket_exists) { diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index dd852646462b9..a86490cb4d529 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -88,7 +88,6 @@ const string default_zonegroup_name = "default"; const string default_zone_name = "default"; static string zonegroup_names_oid_prefix = "zonegroups_names."; static RGWObjCategory main_category = RGW_OBJ_CATEGORY_MAIN; - #define RGW_USAGE_OBJ_PREFIX "usage." #define RGW_DEFAULT_ZONE_ROOT_POOL "rgw.root" @@ -120,6 +119,7 @@ void RGWDefaultZoneGroupInfo::decode_json(JSONObj *obj) { JSONDecoder::decode_json("default_region", default_zonegroup, obj); } } + const string& RGWZoneGroup::get_pool_name(CephContext *cct_) { if (cct_->_conf->rgw_zonegroup_root_pool.empty()) { @@ -129,191 +129,7 @@ const string& RGWZoneGroup::get_pool_name(CephContext *cct_) return cct_->_conf->rgw_zonegroup_root_pool; } -const string& RGWZoneGroup::get_default_oid(bool old_region_format) -{ - if (old_region_format) { - if (cct->_conf->rgw_default_region_info_oid.empty()) { - return default_region_info_oid; - } - return cct->_conf->rgw_default_region_info_oid; - } - - if (cct->_conf->rgw_default_zonegroup_info_oid.empty()) { - return default_zone_group_info_oid; - } - - return cct->_conf->rgw_default_zonegroup_info_oid; -} - -const string& RGWZoneGroup::get_info_oid_prefix(bool old_region_format) -{ - if (old_region_format) { - return region_info_oid_prefix; - } - return zone_group_info_oid_prefix; -} - -const string& RGWZoneGroup::get_names_oid_prefix() -{ - return zonegroup_names_oid_prefix; -} - -int RGWZoneGroup::read_default(RGWDefaultZoneGroupInfo& default_info, - const string& oid) -{ - string pool_name = get_pool_name(cct); - - rgw_bucket pool(pool_name.c_str()); - bufferlist bl; - RGWObjectCtx obj_ctx(store); - int ret = rgw_get_system_obj(store, obj_ctx, pool, oid, bl, NULL, NULL); - if (ret < 0) - return ret; - - try { - bufferlist::iterator iter = bl.begin(); - ::decode(default_info, iter); - } catch (buffer::error& err) { - derr << "error decoding data from " << pool << ":" << oid << dendl; - return -EIO; - } - - return 0; -} - -int RGWZoneGroup::set_as_default() -{ - string pool_name = get_pool_name(cct); - - string oid = get_default_oid(); - - rgw_bucket pool(pool_name.c_str()); - bufferlist bl; - - RGWDefaultZoneGroupInfo default_info; - default_info.default_zonegroup = name; - - ::encode(default_info, bl); - - int ret = rgw_put_system_obj(store, pool, oid, bl.c_str(), bl.length(), false, NULL, 0, NULL); - if (ret < 0) - return ret; - - return 0; -} - - -int RGWZoneGroup::read_id(const string& obj_name, string& object_id) -{ - string pool_name = get_pool_name(cct); - rgw_bucket pool(pool_name.c_str()); - bufferlist bl; - - string oid = get_names_oid_prefix() + obj_name; - - RGWObjectCtx obj_ctx(store); - int ret = rgw_get_system_obj(store, obj_ctx, pool, oid, bl, NULL, NULL); - if (ret < 0) { - return ret; - } - - RGWNameToId nameToId; - try { - bufferlist::iterator iter = bl.begin(); - ::decode(nameToId, iter); - } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: failed to decode obj from " << pool << ":" << oid << dendl; - return -EIO; - } - object_id = nameToId.obj_id; - return 0; -} - -int RGWZoneGroup::init(CephContext *_cct, RGWRados *_store, bool setup_zonegroup, bool old_region_format) -{ - cct = _cct; - store = _store; - - if (!setup_zonegroup) - return 0; - - if (old_region_format && id.empty()) { - id = name; - } - - if (id.empty()) { - int r; - if (name.empty()) { - id = cct->_conf->rgw_zonegroup; - if (id.empty()) { - RGWDefaultZoneGroupInfo default_info; - int r = read_default(default_info, get_default_oid(old_region_format)); - if (r == -ENOENT) { - r = create_default(); - if (r == -EEXIST) { /* we may have raced with another zonegroup creation, - make sure we can read the zonegroup info and continue - as usual to make sure zonegroup creation is complete */ - ldout(cct, 0) << "create_default() returned -EEXIST, we raced with another zonegroup creation" << dendl; - r = read_info(id); - } - if (r < 0) - return r; - r = set_as_default(); /* set this as default even if we weren't the creators */ - if (r < 0) - return r; - /*Re attempt to read zonegroup info from newly created default zonegroup */ - r = read_default(default_info, get_default_oid(old_region_format)); - if (r < 0) - return r; - } else if (r < 0) { - lderr(cct) << "failed reading default zonegroup info: " << cpp_strerror(-r) << dendl; - return r; - } - id = default_info.default_zonegroup; - if (old_region_format) { - name = id; - } - } - } else if (!old_region_format) { - r = read_id(name, id); - if (r < 0) { - lderr(cct) << "error in read_id fir id " << id << " : " << cpp_strerror(-r) << dendl; - return r; - } - } - } - - return read_info(id, old_region_format); -} - -int RGWZoneGroup::read_info(const string& zonegroup_name, bool old_region_format) -{ - string pool_name = get_pool_name(cct); - - rgw_bucket pool(pool_name.c_str()); - bufferlist bl; - - string oid = get_info_oid_prefix(old_region_format) + zonegroup_name; - - RGWObjectCtx obj_ctx(store); - int ret = rgw_get_system_obj(store, obj_ctx, pool, oid, bl, NULL, NULL); - if (ret < 0) { - ldout(cct, 0) << "failed reading zonegroup info from " << pool << ":" << oid << ": " << cpp_strerror(-ret) << dendl; - return ret; - } - - try { - bufferlist::iterator iter = bl.begin(); - ::decode(*this, iter); - } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: failed to decode zonegroup from " << pool << ":" << oid << dendl; - return -EIO; - } - - return 0; -} - -int RGWZoneGroup::create_default() +int RGWZoneGroup::create_default(bool old_format) { name = default_zonegroup_name; string zone_name = default_zone_name; @@ -333,33 +149,74 @@ int RGWZoneGroup::create_default() zone_params.init_default(store); int r = zone_params.store_info(cct, store, *this); - if (r < 0) { + if (r < 0 && r != -EEXIST) { derr << "error storing zone params: " << cpp_strerror(-r) << dendl; return r; } r = store_info(true); - if (r < 0) { + if (r < 0 && r != -EEXIST) { derr << "error storing zone group info: " << cpp_strerror(-r) << dendl; return r; } + if (r == -EEXIST) { + ldout(cct, 0) << "create_default() returned -EEXIST, we raced with another zonegroup creation" << dendl; + r = read_info(id); + if (r < 0) { + return r; + } + } + + r = set_as_default(); /* set this as default even if we weren't the creators */ + if (r < 0) { + return r; + } + /*Re attempt to read info */ + RGWDefaultSystemMetaObjInfo default_info; + r = read_default(default_info, get_default_oid(old_format)); + if (r < 0) { + return r; + } + id = default_info.default_id; + if (old_format) { + name = id; + } + return 0; } -int RGWZoneGroup::store_info(bool exclusive) +const string& RGWZoneGroup::get_default_oid(bool old_region_format) { - string pool_name = get_pool_name(cct); + if (old_region_format) { + if (cct->_conf->rgw_default_region_info_oid.empty()) { + return default_region_info_oid; + } + return cct->_conf->rgw_default_region_info_oid; + } - rgw_bucket pool(pool_name.c_str()); + if (cct->_conf->rgw_default_zonegroup_info_oid.empty()) { + return default_zone_group_info_oid; + } - string oid = get_info_oid_prefix() + id; + return cct->_conf->rgw_default_zonegroup_info_oid; +} - bufferlist bl; - ::encode(*this, bl); - int ret = rgw_put_system_obj(store, pool, oid, bl.c_str(), bl.length(), exclusive, NULL, 0, NULL); +const string& RGWZoneGroup::get_info_oid_prefix(bool old_region_format) +{ + if (old_region_format) { + return region_info_oid_prefix; + } + return zone_group_info_oid_prefix; +} - return ret; +const string& RGWZoneGroup::get_names_oid_prefix() +{ + return zonegroup_names_oid_prefix; +} + +const string& RGWZoneGroup::get_predefined_id() { + return cct->_conf->rgw_zonegroup; } int RGWZoneGroup::equals(const string& other_zonegroup) @@ -367,69 +224,9 @@ int RGWZoneGroup::equals(const string& other_zonegroup) if (is_master && other_zonegroup.empty()) return true; - return (name == other_zonegroup); + return (id == other_zonegroup); } -int RGWZoneGroup::delete_obj(bool old_region_format) -{ - string pool_name = get_pool_name(cct); - - rgw_bucket pool(pool_name.c_str()); - - derr << "RGWZoneGroup::delete_obj " << name << " id " << id << " pool " << pool << dendl; - - /* check to see if obj is the default */ - RGWDefaultZoneGroupInfo default_info; - int ret = read_default(default_info, get_default_oid(old_region_format)); - if (ret < 0 && ret != -ENOENT) - return ret; - if (default_info.default_zonegroup == name) { - string oid = get_default_oid(old_region_format); - lderr(cct) << "delete default obj name " << oid << dendl; - rgw_obj default_named_obj(pool, oid); - ret = store->delete_system_obj(default_named_obj); - if (ret < 0) { - ldout(cct, 0) << "Error delete default obj name " << oid << ": " << cpp_strerror(-ret) << dendl; - return ret; - } - } - - if (!old_region_format) { - string oid = get_names_oid_prefix() + name; - rgw_obj object_name(pool, oid); - ret = store->delete_system_obj(object_name); - if (ret < 0) { - ldout(cct, 0) << "Error delete obj name " << name << ": " << cpp_strerror(-ret) << dendl; - return ret; - } - } - - if (!old_region_format) { - string oid = get_names_oid_prefix() + name; - rgw_obj object_name(pool, oid); - ret = store->delete_system_obj(object_name); - if (ret < 0) { - ldout(cct, 0) << "Error delete obj name " << name << ": " << cpp_strerror(-ret) << dendl; - return ret; - } - } - - string oid = get_info_oid_prefix(old_region_format); - - if (old_region_format) { - oid += name; - } else { - oid += id; - } - rgw_obj object(pool, oid); - ret = store->delete_system_obj(object); - if (ret < 0) { - ldout(cct, 0) << "Error delete zonegroup " << oid << ": " << cpp_strerror(-ret) << dendl; - return ret; - } - - return ret; -} int RGWSystemMetaObj::init(CephContext *_cct, RGWRados *_store, bool setup_obj, bool old_format) { @@ -446,9 +243,15 @@ int RGWSystemMetaObj::init(CephContext *_cct, RGWRados *_store, bool setup_obj, if (id.empty()) { int r; if (name.empty()) { - r = use_default(old_format); - if (r < 0) { - return r; + id = get_predefined_id(); + if (id.empty()) { + r = use_default(old_format); + if (r == -ENOENT) { + r = create_default(); + } + if (r < 0) { + return r; + } } } else if (!old_format) { r = read_id(name, id); @@ -484,11 +287,11 @@ int RGWSystemMetaObj::read_default(RGWDefaultSystemMetaObjInfo& default_info, co return 0; } -int RGWSystemMetaObj::read_default_id(string& default_id) +int RGWSystemMetaObj::read_default_id(string& default_id, bool old_format) { RGWDefaultSystemMetaObjInfo default_info; - int ret = read_default(default_info, get_default_oid()); + int ret = read_default(default_info, get_default_oid(old_format)); if (ret < 0) { return ret; } @@ -585,7 +388,7 @@ int RGWSystemMetaObj::delete_obj(bool old_format) } } - string oid = get_info_oid_prefix(old_format); + string oid = get_info_oid_prefix(old_format); if (old_format) { oid += name; } else { @@ -1084,7 +887,7 @@ void RGWZoneGroupMap::decode(bufferlist::iterator& bl) { RGWZoneGroup& zonegroup = iter->second; zonegroups_by_api[zonegroup.api_name] = zonegroup; if (zonegroup.is_master) { - master_zonegroup = zonegroup.id; + master_zonegroup = zonegroup.get_id(); } } } @@ -1150,21 +953,21 @@ int RGWZoneGroupMap::update(RGWZoneGroup& zonegroup) derr << "cannot update zonegroup map, master_zonegroup conflict" << dendl; return -EINVAL; } - map::iterator iter = zonegroups.find(zonegroup.id); + map::iterator iter = zonegroups.find(zonegroup.get_id()); if (iter != zonegroups.end()) { RGWZoneGroup& old_zonegroup = iter->second; if (!old_zonegroup.api_name.empty()) { zonegroups_by_api.erase(old_zonegroup.api_name); } } - zonegroups[zonegroup.id] = zonegroup; + zonegroups[zonegroup.get_id()] = zonegroup; if (!zonegroup.api_name.empty()) { zonegroups_by_api[zonegroup.api_name] = zonegroup; } if (zonegroup.is_master) { - master_zonegroup = zonegroup.id; + master_zonegroup = zonegroup.get_id(); } return 0; } @@ -2204,13 +2007,13 @@ fail: static void add_new_connection_to_map(map &zonegroup_conn_map, RGWZoneGroup &zonegroup, RGWRESTConn *new_connection) { // Delete if connection is already exists - map::iterator iterZoneGroup = zonegroup_conn_map.find(zonegroup.id); + map::iterator iterZoneGroup = zonegroup_conn_map.find(zonegroup.get_id()); if (iterZoneGroup != zonegroup_conn_map.end()) { delete iterZoneGroup->second; } // Add new connection to connections map - zonegroup_conn_map[zonegroup.id] = new_connection; + zonegroup_conn_map[zonegroup.get_id()] = new_connection; } @@ -2228,14 +2031,14 @@ int RGWRados::replace_region_with_zonegroup() default_oid = default_region_info_oid; } - RGWDefaultZoneGroupInfo default_info; + string default_region; RGWZoneGroup default_zonegroup; int ret = default_zonegroup.init(cct, this, false, true); if (ret < 0) { lderr(cct) << "failed init default region: ret "<< ret << " " << cpp_strerror(-ret) << dendl; return ret; } - ret = default_zonegroup.read_default(default_info, default_oid); + ret = default_zonegroup.read_default_id(default_region, true); if (ret < 0 && ret != -ENOENT) { lderr(cct) << "failed reading old default region: ret "<< ret << " " << cpp_strerror(-ret) << dendl; return ret; @@ -2263,13 +2066,13 @@ int RGWRados::replace_region_with_zonegroup() return ret; } derr << "create zonegroup: store_info " << *iter << dendl; - ret = zonegroup.store_info(true); + ret = zonegroup.update(); if (ret < 0 && ret != -EEXIST) { lderr(cct) << "failed to store zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret) << dendl; return ret; } - if (zonegroup.name == default_info.default_zonegroup) { + if (zonegroup.get_name() == default_region) { ret = zonegroup.set_as_default(); if (ret < 0) { lderr(cct) << "failed to set_as_default " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret) diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index a8da425a2aeff..faa9da2c08c6b 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -747,6 +747,9 @@ protected: const string& oid); /* read and use default id */ int use_default(bool old_format = false); + virtual int create_default(bool old_format = false) { + return -ENOENT; + } public: RGWSystemMetaObj() {} @@ -774,7 +777,7 @@ public: } int init(CephContext *_cct, RGWRados *_store, bool setup_obj = true, bool old_format = false); - int read_default_id(string& default_id); + int read_default_id(string& default_id, bool old_format = false); int set_as_default(); int delete_default(); int create(); @@ -783,13 +786,11 @@ public: int update() { return store_info(false);} virtual const string& get_pool_name(CephContext *cct) = 0; - virtual const string& get_default_oid(bool old_format = false) = 0; virtual const string& get_names_oid_prefix() = 0; virtual const string& get_info_oid_prefix(bool old_format = false) = 0; - virtual int create_default() { - return -ENOENT; - } + virtual const string& get_predefined_id() = 0; + void dump(Formatter *f) const; void decode_json(JSONObj *obj); }; @@ -1010,9 +1011,7 @@ struct RGWZoneGroupPlacementTarget { WRITE_CLASS_ENCODER(RGWZoneGroupPlacementTarget) -struct RGWZoneGroup { - string id; - string name; +struct RGWZoneGroup : public RGWSystemMetaObj { string api_name; list endpoints; bool is_master; @@ -1042,13 +1041,8 @@ struct RGWZoneGroup { map > api_hostname_map; map > api_endpoints_map; - CephContext *cct; - RGWRados *store; - - bool old_region; - - RGWZoneGroup() : is_master(false), cct(NULL), store(NULL), old_region(false) {} - RGWZoneGroup(const std::string &_name):name(_name) {} + RGWZoneGroup(): is_master(false){} + RGWZoneGroup(const std::string &_name):RGWSystemMetaObj(_name) {} void encode(bufferlist& bl) const { ENCODE_START(4, 1, bl); @@ -1062,7 +1056,7 @@ struct RGWZoneGroup { ::encode(default_placement, bl); ::encode(hostnames, bl); ::encode(hostnames_s3website, bl); - ::encode(id, bl); + RGWSystemMetaObj::encode(bl); ENCODE_FINISH(bl); } @@ -1083,31 +1077,22 @@ struct RGWZoneGroup { ::decode(hostnames_s3website, bl); } if (struct_v >= 4) { - ::decode(id, bl); + RGWSystemMetaObj::decode(bl); } else { id = name; } DECODE_FINISH(bl); } - int read_id(const string& obj_name, string& obj_id); - int init(CephContext *_cct, RGWRados *_store, bool setup_zonegroup = true, - bool old_region_format = false); - int create_default(); - int store_info(bool exclusive); - int read_info(const string& zonegroup_name, bool old_region_format = false); - int read_default(RGWDefaultZoneGroupInfo& default_zonegroup, - const string& oid); - int set_as_default(); + int create_default(bool old_format = false); int equals(const string& other_zonegroup); - int create(); - int delete_obj(bool old_region_format = false); + const string& get_pool_name(CephContext *cct); const string& get_default_oid(bool old_region_format = false); const string& get_info_oid_prefix(bool old_region_format = false); - const string& get_json_perfix(); const string& get_names_oid_prefix(); - + const string& get_predefined_id(); + void dump(Formatter *f) const; void decode_json(JSONObj *obj); static void generate_test_instances(list& o); @@ -1205,7 +1190,9 @@ public: const string& get_default_oid(bool old_format = false); const string& get_names_oid_prefix(); const string& get_info_oid_prefix(bool old_format = false); - + const string& get_predefined_id() { + return id; + } void dump(Formatter *f) const; void decode_json(JSONObj *obj); diff --git a/src/rgw/rgw_rest_conn.cc b/src/rgw/rgw_rest_conn.cc index 9b984885d1af1..4543acb801c56 100644 --- a/src/rgw/rgw_rest_conn.cc +++ b/src/rgw/rgw_rest_conn.cc @@ -14,7 +14,7 @@ RGWRESTConn::RGWRESTConn(CephContext *_cct, RGWRados *store, list& remot endpoints[i] = *iter; } key = store->zone.system_key; - zone_group = store->zonegroup.name; + zone_group = store->zonegroup.get_id(); } int RGWRESTConn::get_url(string& endpoint) -- 2.39.5