From 3c5689254e0e3f7f4298c01fe17763335038f402 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 22 Sep 2016 16:03:15 -0700 Subject: [PATCH] rgw: get_zonegroup() uses "default" zonegroup if empty Fixes: http://tracker.ceph.com/issues/17372 An empty zonegroup should be replaced with the "default" zonegroup. This is needed when dealing with zonegroup set in old bucket info, that predated setting the buckets' region. Signed-off-by: Yehuda Sadeh (cherry picked from commit 3d7169af3f5eeb6bc8a89ee873ec43f57f206f3a) --- src/rgw/rgw_rados.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 3f348502d127b..4cf8a918bb507 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -902,7 +902,12 @@ int RGWPeriod::init(CephContext *_cct, RGWRados *_store, bool setup_obj) int RGWPeriod::get_zonegroup(RGWZoneGroup& zonegroup, const string& zonegroup_id) { - map::const_iterator iter = period_map.zonegroups.find(zonegroup_id); + map::const_iterator iter; + if (!zonegroup_id.empty()) { + iter = period_map.zonegroups.find(zonegroup_id); + } else { + iter = period_map.zonegroups.find("default"); + } if (iter != period_map.zonegroups.end()) { zonegroup = iter->second; return 0; -- 2.39.5