]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: remove replace_region_with_zonegroup()
authorCasey Bodley <cbodley@redhat.com>
Thu, 18 Aug 2022 22:03:37 +0000 (18:03 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 22 Aug 2022 21:50:09 +0000 (17:50 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/services/svc_zone.cc
src/rgw/services/svc_zone.h

index f3df23012bf2c96f612967db0cfad8c8d9bded03..e11b3b6eff1d667a91b3e05496d3db01859fa7b0 100644 (file)
@@ -241,12 +241,6 @@ int RGWSI_Zone::do_start(optional_yield y, const DoutPrefixProvider *dpp)
 
   /* we have zone now */
 
-  ret = replace_region_with_zonegroup(dpp, y);
-  if (ret < 0) {
-    ldpp_dout(dpp, -1) << "failed converting region to zonegroup : ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
-  }
-
   auto zone_iter = zonegroup->zones.find(zone_params->get_id());
   if (zone_iter == zonegroup->zones.end()) {
     /* shouldn't happen if relying on period config */
@@ -463,264 +457,6 @@ int RGWSI_Zone::list_periods(const DoutPrefixProvider *dpp, const string& curren
   return ret;
 }
 
-/** 
- * Replace all region configuration with zonegroup for
- * backward compatability
- * Returns 0 on success, -ERR# on failure.
- */
-int RGWSI_Zone::replace_region_with_zonegroup(const DoutPrefixProvider *dpp, optional_yield y)
-{
-  /* copy default region */
-  /* convert default region to default zonegroup */
-  string default_oid = cct->_conf->rgw_default_region_info_oid;
-  if (default_oid.empty()) {
-    default_oid = default_region_info_oid;
-  }
-
-  RGWZoneGroup default_zonegroup;
-  rgw_pool pool{default_zonegroup.get_pool(cct)};
-  string oid  = "converted";
-  bufferlist bl;
-
-  RGWSysObj sysobj = sysobj_svc->get_obj(rgw_raw_obj(pool, oid));
-
-  int ret = sysobj.rop().read(dpp, &bl, y);
-  if (ret < 0 && ret !=  -ENOENT) {
-    ldpp_dout(dpp, 0) << __func__ << " failed to read converted: ret "<< ret << " " << cpp_strerror(-ret)
-                 << dendl;
-    return ret;
-  } else if (ret != -ENOENT) {
-    ldpp_dout(dpp, 20) << "System already converted " << dendl;
-    return 0;
-  }
-
-  string default_region;
-  ret = default_zonegroup.init(dpp, cct, sysobj_svc, y, false, true);
-  if (ret < 0) {
-    ldpp_dout(dpp, 0) <<  __func__ << " failed init default region: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
-  }
-  ret  = default_zonegroup.read_default_id(dpp, default_region, y, true);
-  if (ret < 0 && ret != -ENOENT) {
-    ldpp_dout(dpp, 0) <<  __func__ << " failed reading old default region: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
-  }
-
-  /* convert regions to zonegroups */
-  list<string> regions;
-  ret = list_regions(dpp, regions);
-  if (ret < 0 && ret != -ENOENT) {
-    ldpp_dout(dpp, 0) <<  __func__ << " failed to list regions: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
-  } else if (ret == -ENOENT || regions.empty()) {
-    RGWZoneParams zoneparams(default_zone_name);
-    int ret = zoneparams.init(dpp, cct, sysobj_svc, y);
-    if (ret < 0 && ret != -ENOENT) {
-      ldpp_dout(dpp, 0) << __func__ << ": error initializing default zone params: " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    /* update master zone */
-    RGWZoneGroup default_zg(default_zonegroup_name);
-    ret = default_zg.init(dpp, cct, sysobj_svc, y);
-    if (ret < 0 && ret != -ENOENT) {
-      ldpp_dout(dpp, 0) << __func__ << ": error in initializing default zonegroup: " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    if (ret != -ENOENT && default_zg.master_zone.empty()) {
-      default_zg.master_zone = zoneparams.get_id();
-      return default_zg.update(dpp, y);
-    }
-    return 0;
-  }
-
-  string master_region;
-  rgw_zone_id master_zone;
-  for (list<string>::iterator iter = regions.begin(); iter != regions.end(); ++iter) {
-    if (*iter != default_zonegroup_name){
-      RGWZoneGroup region(*iter);
-      int ret = region.init(dpp, cct, sysobj_svc, y, true, true);
-      if (ret < 0) {
-         ldpp_dout(dpp, 0) <<  __func__ << " failed init region "<< *iter << ": " << cpp_strerror(-ret) << dendl;
-         return ret;
-      }
-      if (region.is_master_zonegroup()) {
-       master_region = region.get_id();
-       master_zone = region.master_zone;
-      }
-    }
-  }
-
-  /* create realm if there is none.
-     The realm name will be the region and zone concatenated
-     realm id will be mds of its name */
-  if (realm->get_id().empty() && !master_region.empty() && !master_zone.empty()) {
-    string new_realm_name = master_region + "." + master_zone.id;
-    unsigned char md5[CEPH_CRYPTO_MD5_DIGESTSIZE];
-    char md5_str[CEPH_CRYPTO_MD5_DIGESTSIZE * 2 + 1];
-    MD5 hash;
-    // Allow use of MD5 digest in FIPS mode for non-cryptographic purposes
-    hash.SetFlags(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
-    hash.Update((const unsigned char *)new_realm_name.c_str(), new_realm_name.length());
-    hash.Final(md5);
-    buf_to_hex(md5, CEPH_CRYPTO_MD5_DIGESTSIZE, md5_str);
-    string new_realm_id(md5_str);
-    RGWRealm new_realm(new_realm_id,new_realm_name);
-    ret = new_realm.init(dpp, cct, sysobj_svc, y, false);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) <<  __func__ << " Error initing new realm: " << cpp_strerror(-ret)  << dendl;
-      return ret;
-    }
-    ret = new_realm.create(dpp, y);
-    if (ret < 0 && ret != -EEXIST) {
-      ldpp_dout(dpp, 0) <<  __func__ << " Error creating new realm: " << cpp_strerror(-ret)  << dendl;
-      return ret;
-    }
-    ret = new_realm.set_as_default(dpp, y);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " Error setting realm as default: " << cpp_strerror(-ret)  << dendl;
-      return ret;
-    }
-    ret = realm->init(dpp, cct, sysobj_svc, y);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " Error initing realm: " << cpp_strerror(-ret)  << dendl;
-      return ret;
-    }
-    ret = current_period->init(dpp, cct, sysobj_svc, realm->get_id(), y,
-                              realm->get_name());
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " Error initing current period: " << cpp_strerror(-ret)  << dendl;
-      return ret;
-    }
-  }
-
-  list<string>::iterator iter;
-  /* create zonegroups */
-  for (iter = regions.begin(); iter != regions.end(); ++iter)
-  {
-    ldpp_dout(dpp, 0) << __func__ << " Converting  " << *iter << dendl;
-    /* check to see if we don't have already a zonegroup with this name */
-    RGWZoneGroup new_zonegroup(*iter);
-    ret = new_zonegroup.init(dpp, cct , sysobj_svc, y);
-    if (ret == 0 && new_zonegroup.get_id() != *iter) {
-      ldpp_dout(dpp, 0) << __func__ << " zonegroup  "<< *iter << " already exists id " << new_zonegroup.get_id () <<
-       " skipping conversion " << dendl;
-      continue;
-    }
-    RGWZoneGroup zonegroup(*iter);
-    zonegroup.set_id(*iter);
-    int ret = zonegroup.init(dpp, cct, sysobj_svc, y, true, true);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " failed init zonegroup: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    zonegroup.realm_id = realm->get_id();
-    /* fix default region master zone */
-    if (*iter == default_zonegroup_name && zonegroup.master_zone.empty()) {
-      ldpp_dout(dpp, 0) << __func__ << " Setting default zone as master for default region" << dendl;
-      zonegroup.master_zone = default_zone_name;
-    }
-    ret = zonegroup.update(dpp, y);
-    if (ret < 0 && ret != -EEXIST) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to update zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
-        << dendl;
-      return ret;
-    }
-    ret = zonegroup.update_name(dpp, y);
-    if (ret < 0 && ret != -EEXIST) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to update_name for zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
-        << dendl;
-      return ret;
-    }
-    if (zonegroup.get_name() == default_region) {
-      ret = zonegroup.set_as_default(dpp, y);
-      if (ret < 0) {
-        ldpp_dout(dpp, 0) << __func__ << " failed to set_as_default " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
-          << dendl;
-        return ret;
-      }
-    }
-    for (auto iter = zonegroup.zones.begin(); iter != zonegroup.zones.end();
-         ++iter) {
-      ldpp_dout(dpp, 0) << __func__ << " Converting zone" << iter->first << dendl;
-      RGWZoneParams zoneparams(iter->first, iter->second.name);
-      zoneparams.set_id(iter->first.id);
-      zoneparams.realm_id = realm->get_id();
-      ret = zoneparams.init(dpp, cct, sysobj_svc, y);
-      if (ret < 0 && ret != -ENOENT) {
-        ldpp_dout(dpp, 0) << __func__ << " failed to init zoneparams  " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
-        return ret;
-      } else if (ret == -ENOENT) {
-        ldpp_dout(dpp, 0) << __func__ << " zone is part of another cluster " << iter->first <<  " skipping " << dendl;
-        continue;
-      }
-      zonegroup.realm_id = realm->get_id();
-      ret = zoneparams.update(dpp, y);
-      if (ret < 0 && ret != -EEXIST) {
-        ldpp_dout(dpp, 0) << __func__ << " failed to update zoneparams " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
-        return ret;
-      }
-      ret = zoneparams.update_name(dpp, y);
-      if (ret < 0 && ret != -EEXIST) {
-        ldpp_dout(dpp, 0) << __func__ << " failed to init zoneparams " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
-        return ret;
-      }
-    }
-
-    if (!current_period->get_id().empty()) {
-      ret = current_period->add_zonegroup(dpp, zonegroup, y);
-      if (ret < 0) {
-        ldpp_dout(dpp, 0) << __func__ << " failed to add zonegroup to current_period: " << cpp_strerror(-ret) << dendl;
-        return ret;
-      }
-    }
-  }
-
-  if (!current_period->get_id().empty()) {
-    ret = current_period->update(dpp, y);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to update new period: " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    ret = current_period->store_info(dpp, false, y);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to store new period: " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    ret = current_period->reflect(dpp, y);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to update local objects: " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-  }
-
-  for (auto const& iter : regions) {
-    RGWZoneGroup zonegroup(iter);
-    int ret = zonegroup.init(dpp, cct, sysobj_svc, y, true, true);
-    if (ret < 0) {
-      ldpp_dout(dpp, 0) << __func__ << " failed init zonegroup" << iter << ": ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-      return ret;
-    }
-    ret = zonegroup.delete_obj(dpp, y, true);
-    if (ret < 0 && ret != -ENOENT) {
-      ldpp_dout(dpp, 0) << __func__ << " failed to delete region " << iter << ": ret "<< ret << " " << cpp_strerror(-ret)
-        << dendl;
-      return ret;
-    }
-  }
-
-  /* mark as converted */
-  ret = sysobj.wop()
-              .set_exclusive(true)
-              .write(dpp, bl, y);
-  if (ret < 0 ) {
-    ldpp_dout(dpp, 0) << __func__ << " failed to mark cluster as converted: ret "<< ret << " " << cpp_strerror(-ret)
-                 << dendl;
-    return ret;
-  }
-
-  return 0;
-}
-
 /**
  * Add new connection to connections map
  * @param zonegroup_conn_map map which new connection will be added to
index 1863fe2e078e98c1f4a543015df2c7f7ba5e6a56..a03cdc48b0faafecf718aa38faa84217998669eb 100644 (file)
@@ -64,7 +64,6 @@ class RGWSI_Zone : public RGWServiceInstance
   int do_start(optional_yield y, const DoutPrefixProvider *dpp) override;
   void shutdown() override;
 
-  int replace_region_with_zonegroup(const DoutPrefixProvider *dpp, optional_yield y);
   int init_zg_from_period(const DoutPrefixProvider *dpp, optional_yield y);
   int init_zg_from_local(const DoutPrefixProvider *dpp, optional_yield y);