From: Casey Bodley Date: Wed, 14 Dec 2022 20:44:37 +0000 (-0500) Subject: rgw: add_zone_to_group() sets first zone as master X-Git-Tag: v18.1.0~473^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b10354d8a2a3cb3d0f5b857ed3fe156203929175;p=ceph.git rgw: add_zone_to_group() sets first zone as master this logic from RGWZoneGroup::post_process_params() was missing Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_zone.cc b/src/rgw/rgw_zone.cc index 20449c1b9b3e..a45862fca37e 100644 --- a/src/rgw/rgw_zone.cc +++ b/src/rgw/rgw_zone.cc @@ -1282,8 +1282,8 @@ int add_zone_to_group(const DoutPrefixProvider* dpp, RGWZoneGroup& zonegroup, } } + rgw_zone_id& master_zone = zonegroup.master_zone; if (pis_master) { - rgw_zone_id& master_zone = zonegroup.master_zone; if (*pis_master) { if (!master_zone.empty() && master_zone != zone_id) { ldpp_dout(dpp, 0) << "NOTICE: overriding master zone: " @@ -1293,6 +1293,10 @@ int add_zone_to_group(const DoutPrefixProvider* dpp, RGWZoneGroup& zonegroup, } else if (master_zone == zone_id) { master_zone.clear(); } + } else if (master_zone.empty() && zonegroup.zones.empty()) { + ldpp_dout(dpp, 0) << "NOTICE: promoted " << zone_name + << " as new master_zone of zonegroup " << zonegroup.name << dendl; + master_zone = zone_id; } // make sure the zone's placement targets are named in the zonegroup