From: Yehuda Sadeh Date: Thu, 22 Sep 2016 23:03:15 +0000 (-0700) Subject: rgw: get_zonegroup() uses "default" zonegroup if empty X-Git-Tag: v10.2.6~36^2~28^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F11863%2Fhead;p=ceph.git 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) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 3f348502d127..4cf8a918bb50 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;