]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: read local zonegroup and zone only when needed
authorOrit Wasserman <owasserm@redhat.com>
Mon, 19 Oct 2015 10:19:14 +0000 (12:19 +0200)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:16 +0000 (16:13 -0800)
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
src/rgw/rgw_rados.cc

index 933ef014397f50b0ead2d5ca13586ad8ba150657..3b0c1e797b4774b734670a7160fd466fbd550912 100644 (file)
@@ -3093,29 +3093,33 @@ int RGWRados::init_complete()
     }
   }
 
-  ret = zonegroup.init(cct, this);
-  if (ret < 0 && ret != -ENOENT) {
-    lderr(cct) << "failed reading zonegroup info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
-  } else if (ret == -ENOENT) {
-    ret = zonegroup.create_default();
-    if (ret < 0) {
-      lderr(cct) << "failure in zonegroup create_default: ret "<< ret << " " << cpp_strerror(-ret)
-                << dendl;
-      return ret;
-    }
+  if (!has_period_zonegroup) {
     ret = zonegroup.init(cct, this);
-    if (ret < 0) {
-      lderr(cct) << "failure in zonegroup create_default: ret "<< ret << " " << cpp_strerror(-ret)
-                << dendl;
+    if (ret < 0 && ret != -ENOENT) {
+      lderr(cct) << "failed reading zonegroup info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
       return ret;
+    } else if (ret == -ENOENT) {
+      ret = zonegroup.create_default();
+      if (ret < 0) {
+       lderr(cct) << "failure in zonegroup create_default: ret "<< ret << " " << cpp_strerror(-ret)
+                  << dendl;
+       return ret;
+      }
+      ret = zonegroup.init(cct, this);
+      if (ret < 0) {
+       lderr(cct) << "failure in zonegroup create_default: ret "<< ret << " " << cpp_strerror(-ret)
+                  << dendl;
+       return ret;
+      }
     }
   }
 
-  ret = zone.init(cct, this);
-  if (ret < 0 && ret != -ENOENT) {
-    lderr(cct) << "failed reading zone info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
-    return ret;
+  if (!has_period_zone) {
+    ret = zone.init(cct, this);
+    if (ret < 0 && ret != -ENOENT) {
+      lderr(cct) << "failed reading zone info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
+      return ret;
+    }
   }
 
   init_unique_trans_id_deps();