]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add_zone_to_group() sets first zone as master
authorCasey Bodley <cbodley@redhat.com>
Wed, 14 Dec 2022 20:44:37 +0000 (15:44 -0500)
committerCasey Bodley <cbodley@redhat.com>
Tue, 3 Jan 2023 16:01:18 +0000 (11:01 -0500)
this logic from RGWZoneGroup::post_process_params() was missing

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_zone.cc

index 20449c1b9b3e6ab15cbfa2a40da3bbde82cd39f4..a45862fca37e5bdb5704de54eb711b37939c6de0 100644 (file)
@@ -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