]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw-admin: get rid of lazy remove option, other fixes
authorYehuda Sadeh <yehuda@inktank.com>
Tue, 21 Aug 2012 22:44:30 +0000 (15:44 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Mon, 27 Aug 2012 19:41:27 +0000 (12:41 -0700)
was mishandling parsing of binary flag arguments.
also, fix argument parsing and update radosgw-admin
cli test reference.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_admin.cc
src/test/cli/radosgw-admin/help.t

index 7894b6429ba208ab18f701818d51982949779fd7..36eddaf49ac917b2c8e7dbf51b9e96fa500c6b6c 100644 (file)
@@ -91,8 +91,6 @@ void _usage()
   cerr << "                             subuser keys\n";
   cerr << "   --purge-objects           remove a bucket's objects before deleting it\n";
   cerr << "                             (NOTE: required to delete a non-empty bucket)\n";
-  cerr << "   --lazy-remove             defer the removal of the tail of an object until the intent\n";
-  cerr << "                             log is processed.\n";
   cerr << "   --show-log-entries=<flag> enable/disable dump of log entries on log show\n";
   cerr << "   --show-log-sum=<flag>     enable/disable dump of log summation on log show\n";
   cerr << "   --skip-zero-entries       log show only dumps entries that don't have zero value\n";
@@ -572,37 +570,18 @@ static void parse_date(string& date, uint64_t *epoch, string *out_date = NULL, s
   }
 }
 
-static int remove_shadow_file_now(void *user_ctx, rgw_obj& obj, RGWIntentEvent intent)
-{
-  int r = rgwstore->delete_obj(NULL,obj);
-  return r;
-}
-
-static int remove_shadow_file_eventually(void *user_ctx, rgw_obj& obj, RGWIntentEvent intent)
-{
-  int r = rgw_log_intent(obj, DEL_OBJ, ceph_clock_now(g_ceph_context),
-                         g_conf->rgw_intent_log_object_name_utc);
-
-  return r;
-}
-
-static int remove_object(rgw_bucket& bucket, std::string& object, bool delete_object_tail_later)
+static int remove_object(rgw_bucket& bucket, std::string& object)
 {
   int ret = -EINVAL;
   RGWRadosCtx *rctx = new RGWRadosCtx();
   rgw_obj obj(bucket,object);
 
-  if (delete_object_tail_later)
-    rgwstore->set_intent_cb(rctx, remove_shadow_file_eventually);
-  else
-    rgwstore->set_intent_cb(rctx, remove_shadow_file_now);
-
   ret = rgwstore->delete_obj(rctx, obj);
 
   return ret;
 }
 
-static int remove_bucket(rgw_bucket& bucket, bool delete_children, bool delete_object_tail_later)
+static int remove_bucket(rgw_bucket& bucket, bool delete_children)
 {
   int ret;
   map<RGWObjCategory, RGWBucketStats> stats;
@@ -640,7 +619,7 @@ static int remove_bucket(rgw_bucket& bucket, bool delete_children, bool delete_o
     while (objs.size() > 0) {
       std::vector<RGWObjEnt>::iterator it = objs.begin();
       for (it = objs.begin(); it != objs.end(); it++) {
-        ret = remove_object(bucket, (*it).name, delete_object_tail_later);
+        ret = remove_object(bucket, (*it).name);
         if (ret < 0)
           return ret;
       }
@@ -709,7 +688,6 @@ int main(int argc, char **argv)
   int purge_keys = false;
   int yes_i_really_mean_it = false;
   int delete_child_objects = false;
-  int delete_object_tail_later = false;
   int max_buckets = -1;
 
   std::string val;
@@ -788,14 +766,11 @@ int main(int argc, char **argv)
     } else if (ceph_argparse_witharg(args, i, &val, "--format", (char*)NULL)) {
       format = val;
     } else if (ceph_argparse_binary_flag(args, i, &delete_child_objects, NULL, "--purge-objects", (char*)NULL)) {
-      delete_child_objects = true;
-    } else if (ceph_argparse_binary_flag(args, i, &delete_object_tail_later, NULL, "--lazy-remove", (char*)NULL)) {
-      delete_object_tail_later = true;
+      // do nothing
     } else if (ceph_argparse_binary_flag(args, i, &pretty_format, NULL, "--pretty-format", (char*)NULL)) {
       // do nothing
     } else if (ceph_argparse_binary_flag(args, i, &purge_data, NULL, "--purge-data", (char*)NULL)) {
-      delete_child_objects = true;
-      purge_data = true;
+      delete_child_objects = purge_data;
     } else if (ceph_argparse_binary_flag(args, i, &purge_keys, NULL, "--purge-keys", (char*)NULL)) {
       // do nothing
     } else if (ceph_argparse_binary_flag(args, i, &yes_i_really_mean_it, NULL, "--yes-i-really-mean-it", (char*)NULL)) {
@@ -1399,7 +1374,7 @@ next:
 
       if (m.size() > 0 && purge_data) {
         for (std::map<string, RGWBucketEnt>::iterator it = m.begin(); it != m.end(); it++) {
-          ret = remove_bucket(((*it).second).bucket, true, delete_object_tail_later);
+          ret = remove_bucket(((*it).second).bucket, true);
 
           if (ret < 0)
             return ret;
@@ -1641,7 +1616,7 @@ next:
   }
 
   if (opt_cmd == OPT_OBJECT_RM) {
-    int ret = remove_object(bucket, object, delete_object_tail_later);
+    int ret = remove_object(bucket, object);
 
     if (ret < 0) {
       cerr << "ERROR: object remove returned: " << cpp_strerror(-ret) << std::endl;
@@ -1650,7 +1625,7 @@ next:
   }
 
   if (opt_cmd == OPT_BUCKET_RM) {
-    int ret = remove_bucket(bucket, delete_child_objects, delete_object_tail_later);
+    int ret = remove_bucket(bucket, delete_child_objects);
 
     if (ret < 0) {
       cerr << "ERROR: bucket remove returned: " << cpp_strerror(-ret) << std::endl;
index 586e421c50b6cb24868f722c1b6e5ccab99b8068..265cb016780f205b55ad141d2670bb6bfb616be8 100644 (file)
@@ -31,6 +31,8 @@
     usage trim                 trim usage (by user, date range)
     temp remove                remove temporary objects that were created up to
                                specified date (and optional time)
+    gc list                    dump expired garbage collection objects
+    gc process                 manually process garbage
   options:
      --uid=<id>                user id
      --auth-uid=<auid>         librados uid
@@ -59,8 +61,6 @@
                                subuser keys
      --purge-objects           remove a bucket's objects before deleting it
                                (NOTE: required to delete a non-empty bucket)
-     --lazy-remove             defer the removal of the tail of an object until the intent
-                               log is processed.
      --show-log-entries=<flag> enable/disable dump of log entries on log show
      --show-log-sum=<flag>     enable/disable dump of log summation on log show
      --skip-zero-entries       log show only dumps entries that don't have zero value