From 796e4703095a79519adc65fcd4169c0d2eb3ba64 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Mon, 13 Jul 2015 14:56:53 +0200 Subject: [PATCH] rgw: Rename Region to ZoneGroup only internal structures and class User visuable are not changed: admin commands, jsons and rados objects names Signed-off-by: Orit Wasserman Conflicts: src/rgw/rgw_admin.cc src/rgw/rgw_rados.cc --- src/common/config_opts.h | 4 +- src/rgw/rgw_admin.cc | 174 +++++++++++------------ src/rgw/rgw_common.h | 8 +- src/rgw/rgw_dencoder.cc | 6 +- src/rgw/rgw_json_enc.cc | 32 ++--- src/rgw/rgw_main.cc | 2 +- src/rgw/rgw_op.cc | 52 +++---- src/rgw/rgw_rados.cc | 278 ++++++++++++++++++------------------- src/rgw/rgw_rados.h | 84 +++++------ src/rgw/rgw_rest.cc | 12 +- src/rgw/rgw_rest.h | 2 +- src/rgw/rgw_rest_config.cc | 12 +- src/rgw/rgw_rest_config.h | 8 +- src/rgw/rgw_rest_conn.cc | 14 +- src/rgw/rgw_rest_conn.h | 6 +- src/rgw/rgw_rest_s3.cc | 18 +-- src/rgw/rgw_rest_swift.cc | 2 +- src/test/encoding/types.h | 2 +- 18 files changed, 359 insertions(+), 357 deletions(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 979cbe6a64bbd..28fe63d4757ec 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -1204,8 +1204,10 @@ OPTION(rgw_num_rados_handles, OPT_U32, 1) OPTION(rgw_zone, OPT_STR, "") // zone name OPTION(rgw_zone_root_pool, OPT_STR, ".rgw.root") // pool where zone specific info is stored OPTION(rgw_region, OPT_STR, "") // region name -OPTION(rgw_region_root_pool, OPT_STR, ".rgw.root") // pool where all region info is stored OPTION(rgw_default_region_info_oid, OPT_STR, "default.region") // oid where default region info is stored +OPTION(rgw_zonegroup, OPT_STR, "") // zone group name +OPTION(rgw_zonegroup_root_pool, OPT_STR, ".rgw.root") // pool where all zone group info is stored +OPTION(rgw_default_zonegroup_info_oid, OPT_STR, "default.zonegroup") // oid where default zone group info is stored OPTION(rgw_realm, OPT_STR, "") // realm name OPTION(rgw_realm_root_pool, OPT_STR, ".rgw.root") // pool where all realm info is stored OPTION(rgw_default_realm_info_oid, OPT_STR, "default.realm") // oid where default realm info is stored diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 2cb0ffb6c72e1..982cff30ae2db 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -272,13 +272,13 @@ enum { OPT_GC_PROCESS, OPT_ORPHANS_FIND, OPT_ORPHANS_FINISH, - OPT_REGION_GET, - OPT_REGION_LIST, - OPT_REGION_SET, - OPT_REGION_DEFAULT, - OPT_REGIONMAP_GET, - OPT_REGIONMAP_SET, - OPT_REGIONMAP_UPDATE, + OPT_ZONEGROUP_GET, + OPT_ZONEGROUP_LIST, + OPT_ZONEGROUP_SET, + OPT_ZONEGROUP_DEFAULT, + OPT_ZONEGROUPMAP_GET, + OPT_ZONEGROUPMAP_SET, + OPT_ZONEGROUPMAP_UPDATE, OPT_ZONE_GET, OPT_ZONE_SET, OPT_ZONE_LIST, @@ -497,13 +497,13 @@ static int get_cmd(const char *cmd, const char *prev_cmd, const char *prev_prev_ return OPT_REALM_SET_DEFAULT; } else if (strcmp(prev_cmd, "region") == 0) { if (strcmp(cmd, "get") == 0) - return OPT_REGION_GET; + return OPT_ZONEGROUP_GET; if (strcmp(cmd, "list") == 0) - return OPT_REGION_LIST; + return OPT_ZONEGROUP_LIST; if (strcmp(cmd, "set") == 0) - return OPT_REGION_SET; + return OPT_ZONEGROUP_SET; if (strcmp(cmd, "default") == 0) - return OPT_REGION_DEFAULT; + return OPT_ZONEGROUP_DEFAULT; } else if (strcmp(prev_cmd, "quota") == 0) { if (strcmp(cmd, "set") == 0) return OPT_QUOTA_SET; @@ -513,15 +513,15 @@ static int get_cmd(const char *cmd, const char *prev_cmd, const char *prev_prev_ return OPT_QUOTA_DISABLE; } else if (strcmp(prev_cmd, "regions") == 0) { if (strcmp(cmd, "list") == 0) - return OPT_REGION_LIST; + return OPT_ZONEGROUP_LIST; } else if (strcmp(prev_cmd, "region-map") == 0 || strcmp(prev_cmd, "regionmap") == 0) { if (strcmp(cmd, "get") == 0) - return OPT_REGIONMAP_GET; + return OPT_ZONEGROUPMAP_GET; if (strcmp(cmd, "set") == 0) - return OPT_REGIONMAP_SET; + return OPT_ZONEGROUPMAP_SET; if (strcmp(cmd, "update") == 0) - return OPT_REGIONMAP_UPDATE; + return OPT_ZONEGROUPMAP_UPDATE; } else if (strcmp(prev_cmd, "zone") == 0) { if (strcmp(cmd, "get") == 0) return OPT_ZONE_GET; @@ -1182,8 +1182,8 @@ int send_to_remote_gateway(const string& remote,req_info& info, JSONParser& p) } conn = store->rest_master_conn; } else { - map::iterator iter = store->region_conn_map.find(remote); - if (iter == store->region_conn_map.end()) { + map::iterator iter = store->zonegroup_conn_map.find(remote); + if (iter == store->zonegroup_conn_map.end()) { cerr << "could not find connection to: " << remote << std::endl; return -ENOENT; } @@ -1604,10 +1604,10 @@ int main(int argc, char **argv) RGWStreamFlusher f(formatter, cout); - bool raw_storage_op = (opt_cmd == OPT_REGION_GET || opt_cmd == OPT_REGION_LIST || - opt_cmd == OPT_REGION_SET || opt_cmd == OPT_REGION_DEFAULT || - opt_cmd == OPT_REGIONMAP_GET || opt_cmd == OPT_REGIONMAP_SET || - opt_cmd == OPT_REGIONMAP_UPDATE || + bool raw_storage_op = (opt_cmd == OPT_ZONEGROUP_GET || opt_cmd == OPT_ZONEGROUP_LIST || + opt_cmd == OPT_ZONEGROUP_SET || opt_cmd == OPT_ZONEGROUP_DEFAULT || + opt_cmd == OPT_ZONEGROUPMAP_GET || opt_cmd == OPT_ZONEGROUPMAP_SET || + opt_cmd == OPT_ZONEGROUPMAP_UPDATE || opt_cmd == OPT_ZONE_GET || opt_cmd == OPT_ZONE_SET || opt_cmd == OPT_ZONE_LIST || opt_cmd == OPT_REALM_CREATE || opt_cmd == OPT_PERIOD_PREPARE || opt_cmd == OPT_PERIOD_ACTIVATE || @@ -1897,123 +1897,123 @@ int main(int argc, char **argv) } } break; - case OPT_REGION_GET: + case OPT_ZONEGROUP_GET: { - RGWRegion region; - int ret = region.init(g_ceph_context, store); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store); if (ret < 0) { - cerr << "failed to init region: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } - encode_json("region", region, formatter); + encode_json("region", zonegroup, formatter); formatter->flush(cout); cout << std::endl; } break; - case OPT_REGION_LIST: + case OPT_ZONEGROUP_LIST: { - RGWRegion region; - int ret = region.init(g_ceph_context, store, false); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store, false); if (ret < 0) { - cerr << "failed to init region: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } - list regions; - ret = store->list_regions(regions); + list zonegroups; + ret = store->list_zonegroups(zonegroups); if (ret < 0) { - cerr << "failed to list regions: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to list zonegroups: " << cpp_strerror(-ret) << std::endl; return -ret; } - RGWDefaultRegionInfo default_region; - ret = region.read_default(default_region); + RGWDefaultZoneGroupInfo default_zonegroup; + ret = zonegroup.read_default(default_zonegroup); if (ret < 0 && ret != -ENOENT) { - cerr << "could not determine default region: " << cpp_strerror(-ret) << std::endl; + cerr << "could not determine default zonegroup: " << cpp_strerror(-ret) << std::endl; } formatter->open_object_section("regions_list"); - encode_json("default_info", default_region, formatter); - encode_json("regions", regions, formatter); + encode_json("default_info", default_zonegroup, formatter); + encode_json("regions", zonegroups, formatter); formatter->close_section(); formatter->flush(cout); cout << std::endl; } break; - case OPT_REGION_SET: + case OPT_ZONEGROUP_SET: { - RGWRegion region; - int ret = region.init(g_ceph_context, store, false); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store, false); if (ret < 0) { - cerr << "failed to init region: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } - ret = read_decode_json(infile, region); + ret = read_decode_json(infile, zonegroup); if (ret < 0) { return 1; } - ret = region.store_info(false); + ret = zonegroup.store_info(false); if (ret < 0) { cerr << "ERROR: couldn't store zone info: " << cpp_strerror(-ret) << std::endl; return 1; } - encode_json("region", region, formatter); + encode_json("region", zonegroup, formatter); formatter->flush(cout); } break; - case OPT_REGION_DEFAULT: + case OPT_ZONEGROUP_DEFAULT: { - RGWRegion region; - int ret = region.init(g_ceph_context, store); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store); if (ret < 0) { - cerr << "failed to init region: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } - ret = region.set_as_default(); + ret = zonegroup.set_as_default(); if (ret < 0) { - cerr << "failed to set region as default: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to set zonegroup as default: " << cpp_strerror(-ret) << std::endl; return -ret; } } break; - case OPT_REGIONMAP_GET: + case OPT_ZONEGROUPMAP_GET: { - RGWRegionMap regionmap; - int ret = regionmap.read(g_ceph_context, store); + RGWZoneGroupMap zonegroupmap; + int ret = zonegroupmap.read(g_ceph_context, store); if (ret < 0) { - cerr << "failed to read region map: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to read zonegroup map: " << cpp_strerror(-ret) << std::endl; return -ret; } - encode_json("region-map", regionmap, formatter); + encode_json("region-map", zonegroupmap, formatter); formatter->flush(cout); } break; - case OPT_REGIONMAP_SET: + case OPT_ZONEGROUPMAP_SET: { - RGWRegionMap regionmap; - int ret = read_decode_json(infile, regionmap); + RGWZoneGroupMap zonegroupmap; + int ret = read_decode_json(infile, zonegroupmap); if (ret < 0) { return 1; } - ret = regionmap.store(g_ceph_context, store); + ret = zonegroupmap.store(g_ceph_context, store); if (ret < 0) { - cerr << "ERROR: couldn't store region map info: " << cpp_strerror(-ret) << std::endl; + cerr << "ERROR: couldn't store zonegroup map info: " << cpp_strerror(-ret) << std::endl; return 1; } - encode_json("region-map", regionmap, formatter); + encode_json("region-map", zonegroupmap, formatter); formatter->flush(cout); } break; - case OPT_REGIONMAP_UPDATE: + case OPT_ZONEGROUPMAP_UPDATE: { - RGWRegionMap regionmap; - int ret = regionmap.read(g_ceph_context, store); + RGWZoneGroupMap zonegroupmap; + int ret = zonegroupmap.read(g_ceph_context, store); if (ret < 0 && ret != -ENOENT) { - cerr << "failed to read region map: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to read zonegroup map: " << cpp_strerror(-ret) << std::endl; return -ret; } @@ -2021,48 +2021,48 @@ int main(int argc, char **argv) regionmap.regions.clear(); } - RGWRegion region; - ret = region.init(g_ceph_context, store, false); + RGWZoneGroup zonegroup; + ret = zonegroup.init(g_ceph_context, store, false); if (ret < 0) { - cerr << "failed to init region: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to init zonegroup: " << cpp_strerror(-ret) << std::endl; return -ret; } - list regions; - ret = store->list_regions(regions); + list zonegroups; + ret = store->list_zonegroups(zonegroups); if (ret < 0) { - cerr << "failed to list regions: " << cpp_strerror(-ret) << std::endl; + cerr << "failed to list zonegroups: " << cpp_strerror(-ret) << std::endl; return -ret; } - for (list::iterator iter = regions.begin(); iter != regions.end(); ++iter) { - ret = region.read_info(*iter); + for (list::iterator iter = zonegroups.begin(); iter != zonegroups.end(); ++iter) { + ret = zonegroup.read_info(*iter); if (ret < 0) { - cerr << "failed to read region info (name=" << *iter << "): " << cpp_strerror(-ret) << std::endl; + cerr << "failed to read zonegroup info (name=" << *iter << "): " << cpp_strerror(-ret) << std::endl; return -ret; } - regionmap.update(region); + zonegroupmap.update(zonegroup); } - ret = regionmap.store(g_ceph_context, store); + ret = zonegroupmap.store(g_ceph_context, store); if (ret < 0) { - cerr << "ERROR: couldn't store region map info: " << cpp_strerror(-ret) << std::endl; + cerr << "ERROR: couldn't store zonegroup map info: " << cpp_strerror(-ret) << std::endl; return 1; } - encode_json("region-map", regionmap, formatter); + encode_json("region-map", zonegroupmap, formatter); formatter->flush(cout); } break; case OPT_ZONE_GET: { - RGWRegion region; - int ret = region.init(g_ceph_context, store); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store); if (ret < 0) { - cerr << "WARNING: failed to initialize region" << std::endl; + cerr << "WARNING: failed to initialize zonegroup" << std::endl; } RGWZoneParams zone; - ret = zone.init(g_ceph_context, store, region); + ret = zone.init(g_ceph_context, store, zonegroup); if (ret < 0) { cerr << "unable to initialize zone: " << cpp_strerror(-ret) << std::endl; return -ret; @@ -2073,10 +2073,10 @@ int main(int argc, char **argv) break; case OPT_ZONE_SET: { - RGWRegion region; - int ret = region.init(g_ceph_context, store); + RGWZoneGroup zonegroup; + int ret = zonegroup.init(g_ceph_context, store); if (ret < 0) { - cerr << "WARNING: failed to initialize region" << std::endl; + cerr << "WARNING: failed to initialize zonegroup" << std::endl; } RGWZoneParams zone; zone.init_default(store); @@ -2085,7 +2085,7 @@ int main(int argc, char **argv) return 1; } - ret = zone.store_info(g_ceph_context, store, region); + ret = zone.store_info(g_ceph_context, store, zonegroup); if (ret < 0) { cerr << "ERROR: couldn't store zone info: " << cpp_strerror(-ret) << std::endl; return 1; diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index e6214c9bbbe8a..35d3c2ffe2370 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -796,7 +796,7 @@ struct RGWBucketInfo rgw_bucket bucket; rgw_user owner; uint32_t flags; - string region; + string zonegroup; time_t creation_time; string placement_rule; bool has_instance_obj; @@ -826,7 +826,7 @@ struct RGWBucketInfo ::encode(bucket, bl); ::encode(owner.id, bl); ::encode(flags, bl); - ::encode(region, bl); + ::encode(zonegroup, bl); uint64_t ct = (uint64_t)creation_time; ::encode(ct, bl); ::encode(placement_rule, bl); @@ -853,7 +853,7 @@ struct RGWBucketInfo if (struct_v >= 3) ::decode(flags, bl); if (struct_v >= 5) - ::decode(region, bl); + ::decode(zonegroup, bl); if (struct_v >= 6) { uint64_t ct; ::decode(ct, bl); @@ -1102,7 +1102,7 @@ struct req_state { ACLOwner bucket_owner; ACLOwner owner; - string region_endpoint; + string zonegroup_endpoint; string bucket_instance_id; string redirect; diff --git a/src/rgw/rgw_dencoder.cc b/src/rgw/rgw_dencoder.cc index 36fd0cc1167c8..0b4fdf5944cf5 100644 --- a/src/rgw/rgw_dencoder.cc +++ b/src/rgw/rgw_dencoder.cc @@ -419,11 +419,11 @@ void RGWBucketInfo::generate_test_instances(list& o) o.push_back(new RGWBucketInfo); } -void RGWRegion::generate_test_instances(list& o) +void RGWZoneGroup::generate_test_instances(list& o) { - RGWRegion *r = new RGWRegion; + RGWZoneGroup *r = new RGWZoneGroup; o.push_back(r); - o.push_back(new RGWRegion); + o.push_back(new RGWZoneGroup); } void RGWZone::generate_test_instances(list &o) diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc index d799249842034..c74de721a8c80 100644 --- a/src/rgw/rgw_json_enc.cc +++ b/src/rgw/rgw_json_enc.cc @@ -625,7 +625,7 @@ void RGWBucketInfo::dump(Formatter *f) const encode_json("creation_time", creation_time, f); encode_json("owner", owner.to_str(), f); encode_json("flags", flags, f); - encode_json("region", region, f); + encode_json("region", zonegroup, f); encode_json("placement_rule", placement_rule, f); encode_json("has_instance_obj", has_instance_obj, f); encode_json("quota", quota, f); @@ -643,7 +643,7 @@ void RGWBucketInfo::decode_json(JSONObj *obj) { JSONDecoder::decode_json("creation_time", creation_time, obj); JSONDecoder::decode_json("owner", owner, obj); JSONDecoder::decode_json("flags", flags, obj); - JSONDecoder::decode_json("region", region, obj); + JSONDecoder::decode_json("region", zonegroup, obj); JSONDecoder::decode_json("placement_rule", placement_rule, obj); JSONDecoder::decode_json("has_instance_obj", has_instance_obj, obj); JSONDecoder::decode_json("quota", quota, obj); @@ -834,19 +834,19 @@ void RGWZone::decode_json(JSONObj *obj) JSONDecoder::decode_json("bucket_index_max_shards", bucket_index_max_shards, obj); } -void RGWRegionPlacementTarget::dump(Formatter *f) const +void RGWZoneGroupPlacementTarget::dump(Formatter *f) const { encode_json("name", name, f); encode_json("tags", tags, f); } -void RGWRegionPlacementTarget::decode_json(JSONObj *obj) +void RGWZoneGroupPlacementTarget::decode_json(JSONObj *obj) { JSONDecoder::decode_json("name", name, obj); JSONDecoder::decode_json("tags", tags, obj); } -void RGWRegion::dump(Formatter *f) const +void RGWZoneGroup::dump(Formatter *f) const { encode_json("name", name, f); encode_json("api_name", api_name, f); @@ -867,15 +867,15 @@ static void decode_zones(map& zones, JSONObj *o) zones[z.name] = z; } -static void decode_placement_targets(map& targets, JSONObj *o) +static void decode_placement_targets(map& targets, JSONObj *o) { - RGWRegionPlacementTarget t; + RGWZoneGroupPlacementTarget t; t.decode_json(o); targets[t.name] = t; } -void RGWRegion::decode_json(JSONObj *obj) +void RGWZoneGroup::decode_json(JSONObj *obj) { JSONDecoder::decode_json("name", name, obj); JSONDecoder::decode_json("api_name", api_name, obj); @@ -890,18 +890,18 @@ void RGWRegion::decode_json(JSONObj *obj) } -void RGWRegionMap::dump(Formatter *f) const +void RGWZoneGroupMap::dump(Formatter *f) const { - encode_json("regions", regions, f); - encode_json("master_region", master_region, f); + encode_json("regions", zonegroups, f); + encode_json("master_region", master_zonegroup, f); encode_json("bucket_quota", bucket_quota, f); encode_json("user_quota", user_quota, f); } -void RGWRegionMap::decode_json(JSONObj *obj) +void RGWZoneGroupMap::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("regions", regions, obj); - JSONDecoder::decode_json("master_region", master_region, obj); + JSONDecoder::decode_json("regions", zonegroups, obj); + JSONDecoder::decode_json("master_region", master_zonegroup, obj); JSONDecoder::decode_json("user_quota", user_quota, obj); } @@ -937,9 +937,9 @@ void RGWRealm::dump(Formatter *f) const encode_json_map("zonegroups", zonegroups, f); } -static void decode_zonegroups(map& zonegroups, JSONObj *o) +static void decode_zonegroups(map& zonegroups, JSONObj *o) { - RGWRegion zg; + RGWZoneGroup zg; zg.decode_json(o); zonegroups[zg.name] = zg; } diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index ee26c55e703e3..20d40e2799c0e 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -1126,7 +1126,7 @@ int main(int argc, const char **argv) } r = rgw_perf_start(g_ceph_context); - rgw_rest_init(g_ceph_context, store->region); + rgw_rest_init(g_ceph_context, store->zonegroup); mutex.Lock(); init_timer.cancel_all_events(); diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 9e07f32da75f9..56f725b624c6c 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -373,8 +373,8 @@ static int rgw_build_bucket_policies(RGWRados *store, struct req_state *s) ret = store->get_bucket_info(obj_ctx, s->src_tenant_name, s->src_bucket_name, source_info, NULL); if (ret == 0) { - string& region = source_info.region; - s->local_source = store->region.equals(region); + string& zonegroup = source_info.zonegroup; + s->local_source = store->zonegroup.equals(zonegroup); } } @@ -406,17 +406,17 @@ static int rgw_build_bucket_policies(RGWRados *store, struct req_state *s) s->bucket_owner = s->bucket_acl->get_owner(); - string& region = s->bucket_info.region; - map::iterator dest_region = store->region_map.regions.find(region); - if (dest_region != store->region_map.regions.end() && !dest_region->second.endpoints.empty()) { - s->region_endpoint = dest_region->second.endpoints.front(); + string& zonegroup = s->bucket_info.zonegroup; + map::iterator dest_zonegroup = store->zonegroup_map.zonegroups.find(zonegroup); + if (dest_zonegroup != store->zonegroup_map.zonegroups.end() && !dest_zonegroup->second.endpoints.empty()) { + s->zonegroup_endpoint = dest_zonegroup->second.endpoints.front(); } - if (s->bucket_exists && !store->region.equals(region)) { - ldout(s->cct, 0) << "NOTICE: request for data in a different region (" << region << " != " << store->region.name << ")" << dendl; + 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; /* we now need to make sure that the operation actually requires copy source, that is * it's a copy operation */ - if (store->region.is_master && s->op == OP_DELETE && s->system_request) { + if (store->zonegroup.is_master && s->op == OP_DELETE && s->system_request) { /*If the operation is delete and if this is the master, don't redirect*/ } else if (!s->local_source || (s->op != OP_PUT && s->op != OP_COPY) || @@ -529,13 +529,13 @@ int RGWOp::init_quota() } else if (uinfo->bucket_quota.enabled) { bucket_quota = uinfo->bucket_quota; } else { - bucket_quota = store->region_map.bucket_quota; + bucket_quota = store->zonegroup_map.bucket_quota; } if (uinfo->user_quota.enabled) { user_quota = uinfo->user_quota; } else { - user_quota = store->region_map.user_quota; + user_quota = store->zonegroup_map.user_quota; } return 0; @@ -1675,7 +1675,7 @@ static int forward_request_to_master(struct req_state *s, obj_version *objv, RGW ldout(s->cct, 0) << "rest connection is invalid" << dendl; return -EINVAL; } - ldout(s->cct, 0) << "sending create_bucket request to master region" << dendl; + ldout(s->cct, 0) << "sending create_bucket request to master zonegroup" << dendl; bufferlist response; string uid_str = s->user.user_id.to_str(); #define MAX_REST_RESPONSE (128 * 1024) // we expect a very small response @@ -1685,7 +1685,7 @@ static int forward_request_to_master(struct req_state *s, obj_version *objv, RGW ldout(s->cct, 20) << "response: " << response.c_str() << dendl; if (!jp->parse(response.c_str(), response.length())) { - ldout(s->cct, 0) << "failed parsing response from master region" << dendl; + ldout(s->cct, 0) << "failed parsing response from master zonegroup" << dendl; return -EINVAL; } @@ -1713,9 +1713,9 @@ void RGWCreateBucket::execute() if (op_ret < 0) return; - if (!store->region.is_master && - store->region.api_name != location_constraint) { - ldout(s->cct, 0) << "location constraint (" << location_constraint << ") doesn't match region" << " (" << store->region.api_name << ")" << dendl; + if (!store->zonegroup.is_master && + store->zonegroup.api_name != location_constraint) { + ldout(s->cct, 0) << "location constraint (" << location_constraint << ") doesn't match zonegroup" << " (" << store->zonegroup.api_name << ")" << dendl; op_ret = -EINVAL; return; } @@ -1745,7 +1745,7 @@ void RGWCreateBucket::execute() rgw_bucket *pmaster_bucket; time_t creation_time; - if (!store->region.is_master) { + if (!store->zonegroup.is_master) { JSONParser jp; op_ret = forward_request_to_master(s, NULL, store, in_data, &jp); if (op_ret < 0) @@ -1764,21 +1764,21 @@ void RGWCreateBucket::execute() creation_time = 0; } - string region_name; + string zonegroup_name; if (s->system_request) { - region_name = s->info.args.get(RGW_SYS_PARAM_PREFIX "region"); - if (region_name.empty()) { - region_name = store->region.name; + zonegroup_name = s->info.args.get(RGW_SYS_PARAM_PREFIX "region"); + if (zonegroup_name.empty()) { + zonegroup_name = store->zonegroup.name; } } else { - region_name = store->region.name; + zonegroup_name = store->zonegroup.name; } if (s->bucket_exists) { string selected_placement_rule; rgw_bucket bucket; - op_ret = store->select_bucket_placement(s->user, region_name, + op_ret = store->select_bucket_placement(s->user, zonegroup_name, placement_rule, s->bucket_tenant, s->bucket_name, bucket, &selected_placement_rule); @@ -1798,7 +1798,7 @@ void RGWCreateBucket::execute() } s->bucket.tenant = s->bucket_tenant; /* ignored if bucket exists */ s->bucket.name = s->bucket_name; - op_ret = store->create_bucket(s->user, s->bucket, region_name, placement_rule, + op_ret = store->create_bucket(s->user, s->bucket, zonegroup_name, placement_rule, attrs, info, pobjv, &ep_objv, creation_time, pmaster_bucket, true); /* continue if EEXIST and create_bucket will fail below. this way we can recover @@ -1893,7 +1893,7 @@ void RGWDeleteBucket::execute() return; } - if (!store->region.is_master) { + if (!store->zonegroup.is_master) { bufferlist in_data; JSONParser jp; op_ret = forward_request_to_master(s, &ot.read_version, store, in_data, @@ -4286,7 +4286,7 @@ bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path) goto delop_fail; } - if (!store->region.is_master) { + if (!store->zonegroup.is_master) { bufferlist in_data; JSONParser jp; ret = forward_request_to_master(s, &ot.read_version, store, in_data, diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 4d9d4bbe13db9..a093dd5f15cf0 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -87,7 +87,7 @@ static RGWObjCategory main_category = RGW_OBJ_CATEGORY_MAIN; #define RGW_USAGE_OBJ_PREFIX "usage." #define RGW_DEFAULT_ZONE_ROOT_POOL "rgw.root" -#define RGW_DEFAULT_REGION_ROOT_POOL "rgw.root" +#define RGW_DEFAULT_ZONEGROUP_ROOT_POOL "rgw.root" static string RGW_DEFAULT_REALM_ROOT_POOL = "rgw.root"; static string RGW_DEFAULT_PERIOD_ROOT_POOL = "rgw.root"; @@ -103,24 +103,24 @@ struct bucket_info_entry { static RGWChainedCacheImpl binfo_cache; -void RGWDefaultRegionInfo::dump(Formatter *f) const { - encode_json("default_region", default_region, f); +void RGWDefaultZoneGroupInfo::dump(Formatter *f) const { + encode_json("default_region", default_zonegroup, f); } -void RGWDefaultRegionInfo::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("default_region", default_region, obj); +void RGWDefaultZoneGroupInfo::decode_json(JSONObj *obj) { + JSONDecoder::decode_json("default_region", default_zonegroup, obj); } -int RGWRegion::get_pool_name(CephContext *cct, string *pool_name) +int RGWZoneGroup::get_pool_name(CephContext *cct, string *pool_name) { - *pool_name = cct->_conf->rgw_region_root_pool; + *pool_name = cct->_conf->rgw_zonegroup_root_pool; if (pool_name->empty()) { - *pool_name = RGW_DEFAULT_REGION_ROOT_POOL; + *pool_name = RGW_DEFAULT_ZONEGROUP_ROOT_POOL; } return 0; } -int RGWRegion::read_default(RGWDefaultRegionInfo& default_info) +int RGWZoneGroup::read_default(RGWDefaultZoneGroupInfo& default_info) { string pool_name; @@ -149,12 +149,12 @@ int RGWRegion::read_default(RGWDefaultRegionInfo& default_info) return -EIO; } - name = default_info.default_region; + name = default_info.default_zonegroup; return 0; } -int RGWRegion::set_as_default() +int RGWZoneGroup::set_as_default() { string pool_name; int ret = get_pool_name(cct, &pool_name); @@ -169,8 +169,8 @@ int RGWRegion::set_as_default() rgw_bucket pool(pool_name.c_str()); bufferlist bl; - RGWDefaultRegionInfo default_info; - default_info.default_region = name; + RGWDefaultZoneGroupInfo default_info; + default_info.default_zonegroup = name; ::encode(default_info, bl); @@ -181,25 +181,25 @@ int RGWRegion::set_as_default() return 0; } -int RGWRegion::init(CephContext *_cct, RGWRados *_store, bool setup_region) +int RGWZoneGroup::init(CephContext *_cct, RGWRados *_store, bool setup_zonegroup) { cct = _cct; store = _store; - if (!setup_region) + if (!setup_zonegroup) return 0; - string region_name = cct->_conf->rgw_region; + string zonegroup_name = cct->_conf->rgw_region; - if (region_name.empty()) { - RGWDefaultRegionInfo default_info; + if (zonegroup_name.empty()) { + RGWDefaultZoneGroupInfo default_info; int r = read_default(default_info); if (r == -ENOENT) { r = create_default(); - if (r == -EEXIST) { /* we may have raced with another region creation, - make sure we can read the region info and continue - as usual to make sure region creation is complete */ - ldout(cct, 0) << "create_default() returned -EEXIST, we raced with another region creation" << dendl; + 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(name); } if (r < 0) @@ -207,21 +207,21 @@ int RGWRegion::init(CephContext *_cct, RGWRados *_store, bool setup_region) r = set_as_default(); /* set this as default even if we weren't the creators */ if (r < 0) return r; - /*Re attempt to read region info from newly created default region */ + /*Re attempt to read zonegroup info from newly created default zonegroup */ r = read_default(default_info); if (r < 0) return r; } else if (r < 0) { - lderr(cct) << "failed reading default region info: " << cpp_strerror(-r) << dendl; + lderr(cct) << "failed reading default zonegroup info: " << cpp_strerror(-r) << dendl; return r; } - region_name = default_info.default_region; + zonegroup_name = default_info.default_zonegroup; } - return read_info(region_name); + return read_info(zonegroup_name); } -int RGWRegion::read_info(const string& region_name) +int RGWZoneGroup::read_info(const string& zonegroup_name) { string pool_name; int ret = get_pool_name(cct, &pool_name); @@ -231,14 +231,14 @@ int RGWRegion::read_info(const string& region_name) rgw_bucket pool(pool_name.c_str()); bufferlist bl; - name = region_name; + name = zonegroup_name; string oid = region_info_oid_prefix + name; RGWObjectCtx obj_ctx(store); ret = rgw_get_system_obj(store, obj_ctx, pool, oid, bl, NULL, NULL); if (ret < 0) { - lderr(cct) << "failed reading region info from " << pool << ":" << oid << ": " << cpp_strerror(-ret) << dendl; + lderr(cct) << "failed reading zonegroup info from " << pool << ":" << oid << ": " << cpp_strerror(-ret) << dendl; return ret; } @@ -246,21 +246,21 @@ int RGWRegion::read_info(const string& region_name) bufferlist::iterator iter = bl.begin(); ::decode(*this, iter); } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: failed to decode region from " << pool << ":" << oid << dendl; + ldout(cct, 0) << "ERROR: failed to decode zonegroup from " << pool << ":" << oid << dendl; return -EIO; } return 0; } -int RGWRegion::create_default() +int RGWZoneGroup::create_default() { name = "default"; string zone_name = "default"; is_master = true; - RGWRegionPlacementTarget placement_target; + RGWZoneGroupPlacementTarget placement_target; placement_target.name = "default-placement"; placement_targets[placement_target.name] = placement_target; default_placement = "default-placement"; @@ -280,14 +280,14 @@ int RGWRegion::create_default() r = store_info(true); if (r < 0) { - derr << "error storing region info: " << cpp_strerror(-r) << dendl; + derr << "error storing zone group info: " << cpp_strerror(-r) << dendl; return r; } return 0; } -int RGWRegion::store_info(bool exclusive) +int RGWZoneGroup::store_info(bool exclusive) { string pool_name; int ret = get_pool_name(cct, &pool_name); @@ -305,12 +305,12 @@ int RGWRegion::store_info(bool exclusive) return ret; } -int RGWRegion::equals(const string& other_region) +int RGWZoneGroup::equals(const string& other_zonegroup) { - if (is_master && other_region.empty()) + if (is_master && other_zonegroup.empty()) return true; - return (name == other_region); + return (name == other_zonegroup); } int RGWSystemMetaObj::init(CephContext *_cct, RGWRados *_store, bool setup_obj) @@ -862,12 +862,12 @@ int RGWZoneParams::get_pool_name(CephContext *cct, string *pool_name) return 0; } -void RGWZoneParams::init_name(CephContext *cct, RGWRegion& region) +void RGWZoneParams::init_name(CephContext *cct, RGWZoneGroup& zonegroup) { name = cct->_conf->rgw_zone; if (name.empty()) { - name = region.master_zone; + name = zonegroup.master_zone; if (name.empty()) { name = "default"; @@ -875,9 +875,9 @@ void RGWZoneParams::init_name(CephContext *cct, RGWRegion& region) } } -int RGWZoneParams::init(CephContext *cct, RGWRados *store, RGWRegion& region) +int RGWZoneParams::init(CephContext *cct, RGWRados *store, RGWZoneGroup& zonegroup) { - init_name(cct, region); + init_name(cct, zonegroup); string pool_name; int ret = get_pool_name(cct, &pool_name); @@ -901,16 +901,16 @@ int RGWZoneParams::init(CephContext *cct, RGWRados *store, RGWRegion& region) return -EIO; } - is_master = (name == region.master_zone) || (region.master_zone.empty() && name == "default"); + is_master = (name == zonegroup.master_zone) || (zonegroup.master_zone.empty() && name == "default"); ldout(cct, 2) << "zone " << name << " is " << (is_master ? "" : "NOT ") << "master" << dendl; return 0; } -int RGWZoneParams::store_info(CephContext *cct, RGWRados *store, RGWRegion& region) +int RGWZoneParams::store_info(CephContext *cct, RGWRados *store, RGWZoneGroup& zonegroup) { - init_name(cct, region); + init_name(cct, zonegroup); string pool_name; int ret = get_pool_name(cct, &pool_name); @@ -927,19 +927,19 @@ int RGWZoneParams::store_info(CephContext *cct, RGWRados *store, RGWRegion& regi return ret; } -void RGWRegionMap::encode(bufferlist& bl) const { +void RGWZoneGroupMap::encode(bufferlist& bl) const { ENCODE_START(3, 1, bl); - ::encode(regions, bl); - ::encode(master_region, bl); + ::encode(zonegroups, bl); + ::encode(master_zonegroup, bl); ::encode(bucket_quota, bl); ::encode(user_quota, bl); ENCODE_FINISH(bl); } -void RGWRegionMap::decode(bufferlist::iterator& bl) { +void RGWZoneGroupMap::decode(bufferlist::iterator& bl) { DECODE_START(3, bl); - ::decode(regions, bl); - ::decode(master_region, bl); + ::decode(zonegroups, bl); + ::decode(master_zonegroup, bl); if (struct_v >= 2) ::decode(bucket_quota, bl); @@ -947,18 +947,18 @@ void RGWRegionMap::decode(bufferlist::iterator& bl) { ::decode(user_quota, bl); DECODE_FINISH(bl); - regions_by_api.clear(); - for (map::iterator iter = regions.begin(); - iter != regions.end(); ++iter) { - RGWRegion& region = iter->second; - regions_by_api[region.api_name] = region; - if (region.is_master) { - master_region = region.name; + zonegroups_by_api.clear(); + for (map::iterator iter = zonegroups.begin(); + iter != zonegroups.end(); ++iter) { + RGWZoneGroup& zonegroup = iter->second; + zonegroups_by_api[zonegroup.api_name] = zonegroup; + if (zonegroup.is_master) { + master_zonegroup = zonegroup.name; } } } -void RGWRegionMap::get_params(CephContext *cct, string& pool_name, string& oid) +void RGWZoneGroupMap::get_params(CephContext *cct, string& pool_name, string& oid) { pool_name = cct->_conf->rgw_zone_root_pool; if (pool_name.empty()) { @@ -967,7 +967,7 @@ void RGWRegionMap::get_params(CephContext *cct, string& pool_name, string& oid) oid = region_map_oid; } -int RGWRegionMap::read(CephContext *cct, RGWRados *store) +int RGWZoneGroupMap::read(CephContext *cct, RGWRados *store) { string pool_name, oid; @@ -987,14 +987,14 @@ int RGWRegionMap::read(CephContext *cct, RGWRados *store) bufferlist::iterator iter = bl.begin(); ::decode(*this, iter); } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: failed to decode region map info from " << pool << ":" << oid << dendl; + ldout(cct, 0) << "ERROR: failed to decode zone group map info from " << pool << ":" << oid << dendl; return -EIO; } return 0; } -int RGWRegionMap::store(CephContext *cct, RGWRados *store) +int RGWZoneGroupMap::store(CephContext *cct, RGWRados *store) { string pool_name, oid; @@ -1011,29 +1011,29 @@ int RGWRegionMap::store(CephContext *cct, RGWRados *store) return ret; } -int RGWRegionMap::update(RGWRegion& region) +int RGWZoneGroupMap::update(RGWZoneGroup& zonegroup) { Mutex::Locker l(lock); - if (region.is_master && !region.equals(master_region)) { - derr << "cannot update region map, master_region conflict" << dendl; + if (zonegroup.is_master && !zonegroup.equals(master_zonegroup)) { + derr << "cannot update zonegroup map, master_zonegroup conflict" << dendl; return -EINVAL; } - map::iterator iter = regions.find(region.name); - if (iter != regions.end()) { - RGWRegion& old_region = iter->second; - if (!old_region.api_name.empty()) { - regions_by_api.erase(old_region.api_name); + map::iterator iter = zonegroups.find(zonegroup.name); + if (iter != zonegroups.end()) { + RGWZoneGroup& old_zonegroup = iter->second; + if (!old_zonegroup.api_name.empty()) { + zonegroups_by_api.erase(old_zonegroup.api_name); } } - regions[region.name] = region; + zonegroups[zonegroup.name] = zonegroup; - if (!region.api_name.empty()) { - regions_by_api[region.api_name] = region; + if (!zonegroup.api_name.empty()) { + zonegroups_by_api[zonegroup.api_name] = zonegroup; } - if (region.is_master) { - master_region = region.name; + if (zonegroup.is_master) { + master_zonegroup = zonegroup.name; } return 0; } @@ -2001,7 +2001,7 @@ void RGWRados::finalize() delete conn; } - for (iter = region_conn_map.begin(); iter != region_conn_map.end(); ++iter) { + for (iter = zonegroup_conn_map.begin(); iter != zonegroup_conn_map.end(); ++iter) { RGWRESTConn *conn = iter->second; delete conn; } @@ -2066,20 +2066,20 @@ fail: /** * Add new connection to connections map - * @param region_conn_map map which new connection will be added to - * @param region region which new connection will connect to + * @param zonegroup_conn_map map which new connection will be added to + * @param zonegroup zonegroup which new connection will connect to * @param new_connection pointer to new connection instance */ -static void add_new_connection_to_map(map ®ion_conn_map, RGWRegion ®ion, RGWRESTConn *new_connection) +static void add_new_connection_to_map(map &zonegroup_conn_map, RGWZoneGroup &zonegroup, RGWRESTConn *new_connection) { // Delete if connection is already exists - map::iterator iterRegion = region_conn_map.find(region.name); - if (iterRegion != region_conn_map.end()) { - delete iterRegion->second; + map::iterator iterZoneGroup = zonegroup_conn_map.find(zonegroup.name); + if (iterZoneGroup != zonegroup_conn_map.end()) { + delete iterZoneGroup->second; } // Add new connection to connections map - region_conn_map[region.name] = new_connection; + zonegroup_conn_map[zonegroup.name] = new_connection; } /** @@ -2095,43 +2095,43 @@ int RGWRados::init_complete() return ret; } - ret = region.init(cct, this); + ret = zonegroup.init(cct, this); if (ret < 0) return ret; - ret = zone.init(cct, this, region); + ret = zone.init(cct, this, zonegroup); if (ret < 0) return ret; init_unique_trans_id_deps(); - ret = region_map.read(cct, this); + ret = zonegroup_map.read(cct, this); if (ret < 0) { if (ret != -ENOENT) { - ldout(cct, 0) << "WARNING: cannot read region map" << dendl; + ldout(cct, 0) << "WARNING: cannot read zonegroup map" << dendl; } - ret = region_map.update(region); + ret = zonegroup_map.update(zonegroup); if (ret < 0) { - ldout(cct, 0) << "ERROR: failed to update regionmap with local region info" << dendl; + ldout(cct, 0) << "ERROR: failed to update zonegroupmap with local zonegroup info" << dendl; return -EIO; } } else { - string master_region = region_map.master_region; - if (master_region.empty()) { - lderr(cct) << "ERROR: region map does not specify master region" << dendl; + string master_zonegroup = zonegroup_map.master_zonegroup; + if (master_zonegroup.empty()) { + lderr(cct) << "ERROR: zonegroup map does not specify master zonegroup" << dendl; return -EINVAL; } - map::iterator iter = region_map.regions.find(master_region); - if (iter == region_map.regions.end()) { - lderr(cct) << "ERROR: bad region map: inconsistent master region" << dendl; + map::iterator iter = zonegroup_map.zonegroups.find(master_zonegroup); + if (iter == zonegroup_map.zonegroups.end()) { + lderr(cct) << "ERROR: bad zonegroup map: inconsistent master zonegroup" << dendl; return -EINVAL; } - RGWRegion& region = iter->second; - rest_master_conn = new RGWRESTConn(cct, this, region.endpoints); + RGWZoneGroup& zonegroup = iter->second; + rest_master_conn = new RGWRESTConn(cct, this, zonegroup.endpoints); - for (iter = region_map.regions.begin(); iter != region_map.regions.end(); ++iter) { - RGWRegion& region = iter->second; - add_new_connection_to_map(region_conn_map, region, new RGWRESTConn(cct, this, region.endpoints)); + for (iter = zonegroup_map.zonegroups.begin(); iter != zonegroup_map.zonegroups.end(); ++iter) { + RGWZoneGroup& zonegroup = iter->second; + add_new_connection_to_map(zonegroup_conn_map, zonegroup, new RGWRESTConn(cct, this, zonegroup.endpoints)); } } @@ -2147,7 +2147,7 @@ int RGWRados::init_complete() } map::iterator ziter; - for (ziter = region.zones.begin(); ziter != region.zones.end(); ++ziter) { + for (ziter = zonegroup.zones.begin(); ziter != zonegroup.zones.end(); ++ziter) { const string& name = ziter->first; RGWZone& z = ziter->second; if (name != zone.name) { @@ -2254,14 +2254,14 @@ int RGWRados::list_raw_prefixed_objs(string pool_name, const string& prefix, lis return 0; } -int RGWRados::list_regions(list& regions) +int RGWRados::list_zonegroups(list& zonegroups) { string pool_name; - int ret = RGWRegion::get_pool_name(cct, &pool_name); + int ret = RGWZoneGroup::get_pool_name(cct, &pool_name); if (ret < 0) return ret; - return list_raw_prefixed_objs(pool_name, region_info_oid_prefix, regions); + return list_raw_prefixed_objs(pool_name, region_info_oid_prefix, zonegroups); } int RGWRados::list_zones(list& zones) @@ -3353,7 +3353,7 @@ int RGWRados::init_bucket_index(rgw_bucket& bucket, int num_shards) * returns 0 on success, -ERR# otherwise. */ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, - const string& region_name, + const string& zonegroup_name, const string& placement_rule, map& attrs, RGWBucketInfo& info, @@ -3367,7 +3367,7 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, string selected_placement_rule; for (int i = 0; i < MAX_CREATE_RETRIES; i++) { int ret = 0; - ret = select_bucket_placement(owner, region_name, placement_rule, + ret = select_bucket_placement(owner, zonegroup_name, placement_rule, bucket.tenant, bucket.name, bucket, &selected_placement_rule); if (ret < 0) @@ -3410,7 +3410,7 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, info.bucket = bucket; info.owner = owner.user_id; - info.region = region_name; + info.zonegroup = zonegroup_name; info.placement_rule = selected_placement_rule; info.num_shards = bucket_index_max_shards; info.bucket_index_shard_hash_type = RGWBucketInfo::MOD; @@ -3466,24 +3466,24 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, return -ENOENT; } -int RGWRados::select_new_bucket_location(RGWUserInfo& user_info, const string& region_name, const string& request_rule, +int RGWRados::select_new_bucket_location(RGWUserInfo& user_info, const string& zonegroup_name, const string& request_rule, const string& tenant_name, const string& bucket_name, rgw_bucket& bucket, string *pselected_rule) { - /* first check that rule exists within the specific region */ - map::iterator riter = region_map.regions.find(region_name); - if (riter == region_map.regions.end()) { - ldout(cct, 0) << "could not find region " << region_name << " in region map" << dendl; + /* first check that rule exists within the specific zonegroup */ + map::iterator riter = zonegroup_map.zonegroups.find(zonegroup_name); + if (riter == zonegroup_map.zonegroups.end()) { + ldout(cct, 0) << "could not find zonegroup " << zonegroup_name << " in zonegroup map" << dendl; return -EINVAL; } - /* now check that tag exists within region */ - RGWRegion& region = riter->second; + /* now check that tag exists within zonegroup */ + RGWZoneGroup& zonegroup = riter->second; - /* find placement rule. Hierarchy: request rule > user default rule > region default rule */ + /* find placement rule. Hierarchy: request rule > user default rule > zonegroup default rule */ string rule = request_rule; if (rule.empty()) { rule = user_info.default_placement; if (rule.empty()) - rule = region.default_placement; + rule = zonegroup.default_placement; } if (rule.empty()) { @@ -3492,14 +3492,14 @@ int RGWRados::select_new_bucket_location(RGWUserInfo& user_info, const string& r } if (!rule.empty()) { - map::iterator titer = region.placement_targets.find(rule); - if (titer == region.placement_targets.end()) { - ldout(cct, 0) << "could not find placement rule " << rule << " within region " << dendl; + map::iterator titer = zonegroup.placement_targets.find(rule); + if (titer == zonegroup.placement_targets.end()) { + ldout(cct, 0) << "could not find placement rule " << rule << " within zonegroup " << dendl; return -EINVAL; } /* now check tag for the rule, whether user is permitted to use rule */ - RGWRegionPlacementTarget& target_rule = titer->second; + RGWZoneGroupPlacementTarget& target_rule = titer->second; if (!target_rule.user_permitted(user_info.placement_tags)) { ldout(cct, 0) << "user not permitted to use placement rule" << dendl; return -EPERM; @@ -3532,9 +3532,9 @@ int RGWRados::set_bucket_location_by_rule(const string& location_rule, const str map::iterator piter = zone.placement_pools.find(location_rule); if (piter == zone.placement_pools.end()) { /* couldn't find, means we cannot really place data for this bucket in this zone */ - if (region.equals(region_name)) { + if (zonegroup.equals(zonegroup_name)) { /* that's a configuration error, zone should have that rule, as we're within the requested - * region */ + * zonegroup */ return -EINVAL; } else { /* oh, well, data is not going to be placed here, bucket object is just a placeholder */ @@ -3551,12 +3551,12 @@ int RGWRados::set_bucket_location_by_rule(const string& location_rule, const str return 0; } -int RGWRados::select_bucket_placement(RGWUserInfo& user_info, const string& region_name, const string& placement_rule, +int RGWRados::select_bucket_placement(RGWUserInfo& user_info, const string& zonegroup_name, const string& placement_rule, const string& tenant_name, const string& bucket_name, rgw_bucket& bucket, string *pselected_rule) { if (!zone.placement_pools.empty()) { - return select_new_bucket_location(user_info, region_name, placement_rule, + return select_new_bucket_location(user_info, zonegroup_name, placement_rule, tenant_name, bucket_name, bucket, pselected_rule); } @@ -4581,7 +4581,7 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx, void (*progress_cb)(off_t, void *), void *progress_data) { - /* source is in a different region, copy from there */ + /* source is in a different zonegroup, copy from there */ RGWRESTStreamReadRequest *in_stream_req; string tag; @@ -4598,13 +4598,13 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx, RGWRESTConn *conn; if (source_zone.empty()) { - if (dest_bucket_info.region.empty()) { - /* source is in the master region */ + if (dest_bucket_info.zonegroup.empty()) { + /* source is in the master zonegroup */ conn = rest_master_conn; } else { - map::iterator iter = region_conn_map.find(src_bucket_info.region); - if (iter == region_conn_map.end()) { - ldout(cct, 0) << "could not find region connection to region: " << source_zone << dendl; + map::iterator iter = zonegroup_conn_map.find(src_bucket_info.zonegroup); + if (iter == zonegroup_conn_map.end()) { + ldout(cct, 0) << "could not find zonegroup connection to zonegroup: " << source_zone << dendl; return -ENOENT; } conn = iter->second; @@ -4791,8 +4791,8 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx, append_rand_alpha(cct, dest_obj.get_object(), shadow_oid, 32); shadow_obj.init_ns(dest_obj.bucket, shadow_oid, shadow_ns); - remote_dest = !region.equals(dest_bucket_info.region); - remote_src = !region.equals(src_bucket_info.region); + remote_dest = !zonegroup.equals(dest_bucket_info.zonegroup); + remote_src = !zonegroup.equals(src_bucket_info.zonegroup); if (remote_src && remote_dest) { ldout(cct, 0) << "ERROR: can't copy object when both src and dest buckets are remote" << dendl; @@ -4845,7 +4845,7 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx, vector ref_objs; if (remote_dest) { - /* dest is in a different region, copy it there */ + /* dest is in a different zonegroup, copy it there */ return copy_obj_to_remote_dest(astate, attrs, read_op, user_id, dest_obj, mtime); } uint64_t max_chunk_size; @@ -5084,11 +5084,11 @@ int RGWRados::copy_obj_data(RGWObjectCtx& obj_ctx, bool RGWRados::is_meta_master() { - if (!region.is_master) { + if (!zonegroup.is_master) { return false; } - return (region.master_zone == zone_public_config.name); + return (zonegroup.master_zone == zone_public_config.name); } /** @@ -5098,18 +5098,18 @@ bool RGWRados::is_meta_master() */ bool RGWRados::is_syncing_bucket_meta(rgw_bucket& bucket) { - /* region is not master region */ - if (!region.is_master) { + /* zonegroup is not master zonegroup */ + if (!zonegroup.is_master) { return false; } - /* single region and a single zone */ - if (region_map.regions.size() == 1 && region.zones.size() == 1) { + /* single zonegroup and a single zone */ + if (zonegroup_map.zonegroups.size() == 1 && zonegroup.zones.size() == 1) { return false; } /* zone is not master */ - if (region.master_zone.compare(zone_public_config.name) != 0) { + if (zonegroup.master_zone.compare(zone_public_config.name) != 0) { return false; } diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 495e59cb01745..4ccf5ac83cc8a 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -792,7 +792,7 @@ public: }; WRITE_CLASS_ENCODER(RGWSystemMetaObj) -struct RGWRegion; +struct RGWZoneGroup; struct RGWZonePlacementInfo { string index_pool; @@ -851,10 +851,10 @@ struct RGWZoneParams { RGWZoneParams() : is_master(false) {} static int get_pool_name(CephContext *cct, string *pool_name); - void init_name(CephContext *cct, RGWRegion& region); - int init(CephContext *cct, RGWRados *store, RGWRegion& region); + void init_name(CephContext *cct, RGWZoneGroup& zonegroup); + int init(CephContext *cct, RGWRados *store, RGWZoneGroup& zonegroup); void init_default(RGWRados *store); - int store_info(CephContext *cct, RGWRados *store, RGWRegion& region); + int store_info(CephContext *cct, RGWRados *store, RGWZoneGroup& zonegroup); void encode(bufferlist& bl) const { ENCODE_START(5, 1, bl); @@ -949,27 +949,27 @@ struct RGWZone { }; WRITE_CLASS_ENCODER(RGWZone) -struct RGWDefaultRegionInfo { - string default_region; +struct RGWDefaultZoneGroupInfo { + string default_zonegroup; void encode(bufferlist& bl) const { ENCODE_START(1, 1, bl); - ::encode(default_region, bl); + ::encode(default_zonegroup, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator& bl) { DECODE_START(1, bl); - ::decode(default_region, bl); + ::decode(default_zonegroup, bl); DECODE_FINISH(bl); } void dump(Formatter *f) const; void decode_json(JSONObj *obj); //todo: implement ceph-dencoder }; -WRITE_CLASS_ENCODER(RGWDefaultRegionInfo) +WRITE_CLASS_ENCODER(RGWDefaultZoneGroupInfo) -struct RGWRegionPlacementTarget { +struct RGWZoneGroupPlacementTarget { string name; list tags; @@ -1004,10 +1004,10 @@ struct RGWRegionPlacementTarget { void dump(Formatter *f) const; void decode_json(JSONObj *obj); }; -WRITE_CLASS_ENCODER(RGWRegionPlacementTarget) +WRITE_CLASS_ENCODER(RGWZoneGroupPlacementTarget) -struct RGWRegion { +struct RGWZoneGroup { string name; string api_name; list endpoints; @@ -1016,7 +1016,7 @@ struct RGWRegion { string master_zone; map zones; - map placement_targets; + map placement_targets; string default_placement; list hostnames; @@ -1041,7 +1041,7 @@ struct RGWRegion { CephContext *cct; RGWRados *store; - RGWRegion() : is_master(false), cct(NULL), store(NULL) {} + RGWZoneGroup() : is_master(false), cct(NULL), store(NULL) {} void encode(bufferlist& bl) const { ENCODE_START(3, 1, bl); @@ -1077,33 +1077,33 @@ struct RGWRegion { DECODE_FINISH(bl); } - int init(CephContext *_cct, RGWRados *_store, bool setup_region = true); + int init(CephContext *_cct, RGWRados *_store, bool setup_zonegroup = true); int create_default(); int store_info(bool exclusive); - int read_info(const string& region_name); - int read_default(RGWDefaultRegionInfo& default_region); + int read_info(const string& zonegroup_name); + int read_default(RGWDefaultZoneGroupInfo& default_zonegroup); int set_as_default(); - int equals(const string& other_region); + int equals(const string& other_zonegroup); static int get_pool_name(CephContext *cct, string *pool_name); void dump(Formatter *f) const; void decode_json(JSONObj *obj); - static void generate_test_instances(list& o); + static void generate_test_instances(list& o); }; -WRITE_CLASS_ENCODER(RGWRegion) +WRITE_CLASS_ENCODER(RGWZoneGroup) -struct RGWRegionMap { +struct RGWZoneGroupMap { Mutex lock; - map regions; - map regions_by_api; + map zonegroups; + map zonegroups_by_api; - string master_region; + string master_zonegroup; RGWQuotaInfo bucket_quota; RGWQuotaInfo user_quota; - RGWRegionMap() : lock("RGWRegionMap") {} + RGWZoneGroupMap() : lock("RGWZoneGroupMap") {} void encode(bufferlist& bl) const; void decode(bufferlist::iterator& bl); @@ -1112,12 +1112,12 @@ struct RGWRegionMap { int read(CephContext *cct, RGWRados *store); int store(CephContext *cct, RGWRados *store); - int update(RGWRegion& region); + int update(RGWZoneGroup& zonegroup); void dump(Formatter *f) const; void decode_json(JSONObj *obj); }; -WRITE_CLASS_ENCODER(RGWRegionMap) +WRITE_CLASS_ENCODER(RGWZoneGroupMap) struct objexp_hint_entry { string tenant; @@ -1156,7 +1156,7 @@ WRITE_CLASS_ENCODER(objexp_hint_entry) class RGWRealm : public RGWSystemMetaObj { string master_zonegroup; - map zonegroups; + map zonegroups; public: RGWRealm() {} @@ -1220,7 +1220,7 @@ class RGWPeriod string predecessor_uuid; map versions; string master_zonegroup; - map zonegroups; + map zonegroups; string master_zone; CephContext *cct; @@ -1555,7 +1555,7 @@ protected: bool pools_initialized; - string region_name; + string zonegroup_name; string zone_name; string trans_id_suffix; @@ -1587,8 +1587,8 @@ public: cct = _cct; } - void set_region(const string& name) { - region_name = name; + void set_zonegroup(const string& name) { + zonegroup_name = name; } void set_zone(const string& name) { @@ -1598,12 +1598,12 @@ public: /** * AmazonS3 errors contain a HostId string, but is an opaque base64 blob; we - * try to be more transparent. This has a wrapper so we can update it when region/zone are changed. + * try to be more transparent. This has a wrapper so we can update it when zonegroup/zone are changed. */ void init_host_id() { /* uint64_t needs 16, two '-' separators and a trailing null */ - char charbuf[16 + zone.name.size() + region.name.size() + 2 + 1]; - snprintf(charbuf, sizeof(charbuf), "%llx-%s-%s", (unsigned long long)instance_id(), zone.name.c_str(), region.name.c_str()); + char charbuf[16 + zone.name.size() + zonegroup.name.size() + 2 + 1]; + snprintf(charbuf, sizeof(charbuf), "%llx-%s-%s", (unsigned long long)instance_id(), zone.name.c_str(), zonegroup.name.c_str()); string s(charbuf); host_id = s; } @@ -1611,13 +1611,13 @@ public: string host_id; RGWRealm realm; - RGWRegion region; + RGWZoneGroup zonegroup; RGWZoneParams zone; /* internal zone params, e.g., rados pools */ RGWZone zone_public_config; /* external zone params, e.g., entrypoints, log flags, etc. */ - RGWRegionMap region_map; + RGWZoneGroupMap zonegroup_map; RGWRESTConn *rest_master_conn; map zone_conn_map; - map region_conn_map; + map zonegroup_conn_map; RGWZoneParams& get_zone_params() { return zone; } @@ -1645,7 +1645,7 @@ public: bool *is_truncated); int list_raw_prefixed_objs(string pool_name, const string& prefix, list& result); - int list_regions(list& regions); + int list_zonegroups(list& zonegroups); int list_zones(list& zones); int list_realms(list& realms); @@ -1699,14 +1699,14 @@ public: * returns 0 on success, -ERR# otherwise. */ virtual int init_bucket_index(rgw_bucket& bucket, int num_shards); - int select_bucket_placement(RGWUserInfo& user_info, const string& region_name, const string& rule, + int select_bucket_placement(RGWUserInfo& user_info, const string& zonegroup_name, const string& rule, const string& tenant_name, const string& bucket_name, rgw_bucket& bucket, string *pselected_rule); int select_legacy_bucket_placement(const string& tenant_name, const string& bucket_name, rgw_bucket& bucket); - int select_new_bucket_location(RGWUserInfo& user_info, const string& region_name, const string& rule, + int select_new_bucket_location(RGWUserInfo& user_info, const string& zonegroup_name, const string& rule, const string& tenant_name, const string& bucket_name, rgw_bucket& bucket, string *pselected_rule); int set_bucket_location_by_rule(const string& location_rule, const string& tenant_name, const string& bucket_name, rgw_bucket& bucket); virtual int create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, - const string& region_name, + const string& zonegroup_name, const string& placement_rule, map& attrs, RGWBucketInfo& bucket_info, diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index ba7d429d75e6c..411c57a0b2865 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -172,9 +172,9 @@ string camelcase_dash_http_attr(const string& orig) static set hostnames_set; static set hostnames_s3website_set; -void rgw_rest_init(CephContext *cct, RGWRegion& region) +void rgw_rest_init(CephContext *cct, RGWZoneGroup& zone_group) { - region.store->init_host_id(); + zone_group.store->init_host_id(); for (const auto& rgw2http : base_rgw_to_http_attrs) { rgw_to_http_attrs[rgw2http.rgw_attr] = rgw2http.http_attr; @@ -207,7 +207,7 @@ void rgw_rest_init(CephContext *cct, RGWRegion& region) if (!cct->_conf->rgw_dns_name.empty()) { hostnames_set.insert(cct->_conf->rgw_dns_name); } - hostnames_set.insert(region.hostnames.begin(), region.hostnames.end()); + hostnames_set.insert(zone_group.hostnames.begin(), zone_group.hostnames.end()); string s; ldout(cct, 20) << "RGW hostnames: " << std::accumulate(hostnames_set.begin(), hostnames_set.end(), s) << dendl; /* TODO: We should have a sanity check that no hostname matches the end of @@ -223,7 +223,7 @@ void rgw_rest_init(CephContext *cct, RGWRegion& region) if (!cct->_conf->rgw_dns_s3website_name.empty()) { hostnames_s3website_set.insert(cct->_conf->rgw_dns_s3website_name); } - hostnames_s3website_set.insert(region.hostnames_s3website.begin(), region.hostnames_s3website.end()); + hostnames_s3website_set.insert(zone_group.hostnames_s3website.begin(), zone_group.hostnames_s3website.end()); s.clear(); ldout(cct, 20) << "RGW S3website hostnames: " << std::accumulate(hostnames_s3website_set.begin(), hostnames_s3website_set.end(), s) << dendl; /* TODO: we should repeat the hostnames_set sanity check here @@ -681,8 +681,8 @@ void abort_early(struct req_state *s, RGWOp *op, int err_no, RGWHandler* handler string dest_uri; if (!s->redirect.empty()) { dest_uri = s->redirect; - } else if (!s->region_endpoint.empty()) { - string dest_uri = s->region_endpoint; + } else if (!s->zonegroup_endpoint.empty()) { + string dest_uri = s->zonegroup_endpoint; /* * reqest_uri is always start with slash, so we need to remove * the unnecessary slash at the end of dest_uri. diff --git a/src/rgw/rgw_rest.h b/src/rgw/rgw_rest.h index 8f1c4edf361a6..7d89e777d7686 100644 --- a/src/rgw/rgw_rest.h +++ b/src/rgw/rgw_rest.h @@ -15,7 +15,7 @@ extern std::map rgw_to_http_attrs; extern string lowercase_dash_http_attr(const string& orig); -extern void rgw_rest_init(CephContext *cct, RGWRegion& region); +extern void rgw_rest_init(CephContext *cct, RGWZoneGroup& zone_group); extern void rgw_flush_formatter_and_reset(struct req_state *s, ceph::Formatter *formatter); diff --git a/src/rgw/rgw_rest_config.cc b/src/rgw/rgw_rest_config.cc index c0a3fa70c1f6e..d70c6f07a93d4 100644 --- a/src/rgw/rgw_rest_config.cc +++ b/src/rgw/rgw_rest_config.cc @@ -23,14 +23,14 @@ #define dout_subsys ceph_subsys_rgw -void RGWOp_RegionMap_Get::execute() { - http_ret = regionmap.read(g_ceph_context, store); +void RGWOp_ZoneGroupMap_Get::execute() { + http_ret = zone_group_map.read(g_ceph_context, store); if (http_ret < 0) { - dout(5) << "failed to read region map" << dendl; + dout(5) << "failed to read zone_group map" << dendl; } } -void RGWOp_RegionMap_Get::send_response() { +void RGWOp_ZoneGroupMap_Get::send_response() { set_req_state_err(s, http_ret); dump_errno(s); end_header(s); @@ -38,7 +38,7 @@ void RGWOp_RegionMap_Get::send_response() { if (http_ret < 0) return; - encode_json("region-map", regionmap, s->formatter); + encode_json("region-map", zone_group_map, s->formatter); flusher.flush(); } @@ -99,7 +99,7 @@ RGWOp* RGWHandler_Config::op_get() { if (type.compare("period") == 0) { return new RGWOp_Period_Get; } else { - return new RGWOp_RegionMap_Get; + return new RGWOp_ZoneGroupMap_Get; } } diff --git a/src/rgw/rgw_rest_config.h b/src/rgw/rgw_rest_config.h index 2507d1a223ccd..64325e18d0f7d 100644 --- a/src/rgw/rgw_rest_config.h +++ b/src/rgw/rgw_rest_config.h @@ -14,11 +14,11 @@ #ifndef CEPH_RGW_REST_CONFIG_H #define CEPH_RGW_REST_CONFIG_H -class RGWOp_RegionMap_Get : public RGWRESTOp { - RGWRegionMap regionmap; +class RGWOp_ZoneGroupMap_Get : public RGWRESTOp { + RGWZoneGroupMap zone_group_map; public: - RGWOp_RegionMap_Get() {} - ~RGWOp_RegionMap_Get() {} + RGWOp_ZoneGroupMap_Get() {} + ~RGWOp_ZoneGroupMap_Get() {} int verify_permission() { return 0; diff --git a/src/rgw/rgw_rest_conn.cc b/src/rgw/rgw_rest_conn.cc index 8b0f2de9b02f1..9b984885d1af1 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; - region = store->region.name; + zone_group = store->zonegroup.name; } int RGWRESTConn::get_url(string& endpoint) @@ -53,7 +53,7 @@ int RGWRESTConn::forward(const rgw_user& uid, req_info& info, obj_version *objv, string uid_str = uid.to_str(); list > params; params.push_back(pair(RGW_SYS_PARAM_PREFIX "uid", uid_str)); - params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", region)); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", zone_group)); if (objv) { params.push_back(pair(RGW_SYS_PARAM_PREFIX "tag", objv->tag)); char buf[16]; @@ -81,7 +81,7 @@ int RGWRESTConn::put_obj_init(const rgw_user& uid, rgw_obj& obj, uint64_t obj_si string uid_str = uid.to_str(); list > params; params.push_back(pair(RGW_SYS_PARAM_PREFIX "uid", uid_str)); - params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", region)); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", zone_group)); *req = new RGWRESTStreamWriteRequest(cct, url, NULL, ¶ms); return (*req)->put_obj_init(key, obj, obj_size, attrs); } @@ -105,9 +105,9 @@ int RGWRESTConn::get_obj(const rgw_user& uid, req_info *info /* optional */, rgw string uid_str = uid.to_str(); list > params; params.push_back(pair(RGW_SYS_PARAM_PREFIX "uid", uid_str)); - params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", region)); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", zone_group)); if (prepend_metadata) { - params.push_back(pair(RGW_SYS_PARAM_PREFIX "prepend-metadata", region)); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "prepend-metadata", zone_group)); } *req = new RGWRESTStreamReadRequest(cct, url, cb, NULL, ¶ms); map extra_headers; @@ -156,7 +156,7 @@ int RGWRESTConn::get_resource(const string& resource, } } - params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", region)); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "zonegroup", zone_group)); RGWStreamIntoBufferlist cb(bl); @@ -194,7 +194,7 @@ RGWRESTReadResource::RGWRESTReadResource(RGWRESTConn *_conn, ++pp; } - params.push_back(pair(RGW_SYS_PARAM_PREFIX "region", conn->get_region())); + params.push_back(pair(RGW_SYS_PARAM_PREFIX "zonegroup", conn->get_zonegroup())); if (extra_headers) { for (list >::iterator iter = extra_headers->begin(); diff --git a/src/rgw/rgw_rest_conn.h b/src/rgw/rgw_rest_conn.h index af21a38705ede..c8b88b9667f67 100644 --- a/src/rgw/rgw_rest_conn.h +++ b/src/rgw/rgw_rest_conn.h @@ -41,7 +41,7 @@ class RGWRESTConn CephContext *cct; map endpoints; RGWAccessKey key; - string region; + string zone_group; atomic_t counter; public: @@ -49,8 +49,8 @@ public: RGWRESTConn(CephContext *_cct, RGWRados *store, list& endpoints); int get_url(string& endpoint); string get_url(); - const string& get_region() { - return region; + const string& get_zonegroup() { + return zone_group; } RGWAccessKey& get_key() { return key; diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 95721937e04d8..12663e084783d 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -431,15 +431,15 @@ void RGWGetBucketLocation_ObjStore_S3::send_response() end_header(s, this); dump_start(s); - string region = s->bucket_info.region; + string zonegroup = s->bucket_info.zonegroup; string api_name; - map::iterator iter = store->region_map.regions.find(region); - if (iter != store->region_map.regions.end()) { + map::iterator iter = store->zonegroup_map.zonegroups.find(zonegroup); + if (iter != store->zonegroup_map.zonegroups.end()) { api_name = iter->second.api_name; } else { - if (region != "default") { - api_name = region; + if (zonegroup != "default") { + api_name = zonegroup; } } @@ -680,7 +680,7 @@ public: RGWCreateBucketParser() {} ~RGWCreateBucketParser() {} - bool get_location_constraint(string& region) { + bool get_location_constraint(string& zone_group) { XMLObj *config = find_first("CreateBucketConfiguration"); if (!config) return false; @@ -689,7 +689,7 @@ public: if (!constraint) return false; - region = constraint->get_data(); + zone_group = constraint->get_data(); return true; } @@ -1620,7 +1620,7 @@ int RGWCopyObj_ObjStore_S3::get_params() op_id = s->info.args.get(RGW_SYS_PARAM_PREFIX "op-id"); if (client_id.empty() || op_id.empty()) { - ldout(s->cct, 0) << RGW_SYS_PARAM_PREFIX "client-id or " RGW_SYS_PARAM_PREFIX "op-id were not provided, required for intra-region copy" << dendl; + ldout(s->cct, 0) << RGW_SYS_PARAM_PREFIX "client-id or " RGW_SYS_PARAM_PREFIX "op-id were not provided, required for intra-zone_group copy" << dendl; return -EINVAL; } } @@ -1633,7 +1633,7 @@ int RGWCopyObj_ObjStore_S3::get_params() } else if (strcasecmp(md_directive, "REPLACE") == 0) { attrs_mod = RGWRados::ATTRSMOD_REPLACE; } else if (!source_zone.empty()) { - attrs_mod = RGWRados::ATTRSMOD_NONE; // default for intra-region copy + attrs_mod = RGWRados::ATTRSMOD_NONE; // default for intra-zone_group copy } else { ldout(s->cct, 0) << "invalid metadata directive" << dendl; return -EINVAL; diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index 94d44d697dd6c..545d1660a3fc0 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -459,7 +459,7 @@ int RGWCreateBucket_ObjStore_SWIFT::get_params() policy.create_default(s->user.user_id, s->user.display_name); } - location_constraint = store->region.api_name; + location_constraint = store->zonegroup.api_name; placement_rule = s->info.env->get("HTTP_X_STORAGE_POLICY", ""); return 0; diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 41796f4f70bc7..0abef6070eee9 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -258,7 +258,7 @@ TYPE(rbd_replay::action::ActionEntry); TYPE(RGWObjManifestPart) TYPE(RGWObjManifest) TYPE(RGWOLHInfo) -TYPE(RGWRegion) +TYPE(RGWZoneGroup) TYPE(RGWZone) TYPE(RGWZoneParams) -- 2.39.5