]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: update stats sync completion
authorYehuda Sadeh <yehuda@inktank.com>
Mon, 13 Jan 2014 21:20:08 +0000 (13:20 -0800)
committerYehuda Sadeh <yehuda@inktank.com>
Fri, 24 Jan 2014 18:28:52 +0000 (10:28 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_admin.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h

index 7470c7d8162752178ba6827ae148ae98d4c3f66f..4c1924e4ce0fb288898f1d6cd30095d4a6a67d67 100644 (file)
@@ -1967,6 +1967,12 @@ next:
           }
           done = (buckets.size() < max_entries);
         } while (!done);
+
+        int ret = store->complete_sync_user_stats(user_id);
+        if (ret < 0) {
+          cerr << "ERROR: failed to complete syncing user stats: " << cpp_strerror(-ret) << std::endl;
+          return -ret;
+        }
       }
     }
 
index f4e7f3999339f2a7bab580e361e3baf38d5db41a..6952eb6d6957fe22ef8c93bee1f545b6b03b3a83 100644 (file)
@@ -5805,6 +5805,14 @@ int RGWRados::cls_user_update_buckets(rgw_obj& obj, list<cls_user_bucket_entry>&
   return 0;
 }
 
+int RGWRados::complete_sync_user_stats(const string& user_id)
+{
+  string buckets_obj_id;
+  rgw_get_buckets_obj(user_id, buckets_obj_id);
+  rgw_obj obj(zone.user_uid_pool, buckets_obj_id);
+  return cls_user_complete_stats_sync(obj);
+}
+
 int RGWRados::cls_user_complete_stats_sync(rgw_obj& obj)
 {
   bufferlist bl;
index b80e5fa673b2b500ea006bfdcf16d2d50c9f3643..d33cd31c6149570e9dcdadbe04733792076f077c 100644 (file)
@@ -1447,6 +1447,7 @@ public:
   int cls_user_add_bucket(rgw_obj& obj, const cls_user_bucket_entry& entry);
   int cls_user_update_buckets(rgw_obj& obj, list<cls_user_bucket_entry>& entries);
   int cls_user_complete_stats_sync(rgw_obj& obj);
+  int complete_sync_user_stats(const string& user_id);
   int cls_user_add_bucket(rgw_obj& obj, list<cls_user_bucket_entry>& entries);
   int cls_user_remove_bucket(rgw_obj& obj, const cls_user_bucket& bucket);