]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: backward compatability update_name for existing zones
authorOrit Wasserman <owasserm@redhat.com>
Thu, 22 Oct 2015 14:56:53 +0000 (16:56 +0200)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:18 +0000 (16:13 -0800)
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
src/rgw/rgw_rados.cc

index 4bc57e3f4f4a216bf77d419cb2e7dc26467af605..061a4ec53f44f34d59740954c0ae544ede026e8b 100644 (file)
@@ -2876,13 +2876,13 @@ int RGWRados::replace_region_with_zonegroup()
       derr << "create zonegroup: name " << *iter << dendl;
       ret = zonegroup.update();
       if (ret < 0 && ret != -EEXIST) {
-       lderr(cct) << "failed to store zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
+       lderr(cct) << "failed to update zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
                   << dendl;
        return ret;
       }
       ret = zonegroup.update_name();
       if (ret < 0 && ret != -EEXIST) {
-       lderr(cct) << "failed to store zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
+       lderr(cct) << "failed to update_name for zonegroup " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
                   << dendl;
        return ret;
       }
@@ -2894,6 +2894,25 @@ int RGWRados::replace_region_with_zonegroup()
          return ret;
        }
       }
+      for (map<string, RGWZone>::const_iterator iter = zonegroup.zones.begin(); iter != zonegroup.zones.end();
+          iter ++) {
+       RGWZoneParams zoneparams(iter->first, iter->first);
+       ret = zoneparams.init(cct, this);
+       if (ret < 0) {
+         lderr(cct) << "failed to init zoneparams  " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
+         return ret;
+       }
+       ret = zoneparams.update();
+       if (ret < 0 && ret != -EEXIST) {
+         lderr(cct) << "failed to update zoneparams " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
+         return ret;
+       }
+       ret = zoneparams.update_name();
+       if (ret < 0 && ret != -EEXIST) {
+         lderr(cct) << "failed to init zoneparams " << iter->first <<  ": " << cpp_strerror(-ret) << dendl;
+         return ret;
+       }
+      }
       derr << "delete region " << *iter << dendl;
       ret = zonegroup.delete_obj(true);
       if (ret < 0 && ret != -ENOENT) {
@@ -2904,7 +2923,6 @@ int RGWRados::replace_region_with_zonegroup()
     }
   }
 
-
   if (!cct->_conf->rgw_region.empty() && cct->_conf->rgw_zonegroup.empty()) {
     ret = cct->_conf->set_val("rgw_zonegroup", cct->_conf->rgw_region.c_str());
     if (ret < 0) {