]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_filestore_dump: Add rm-omap object command
authorDavid Zafman <david.zafman@inktank.com>
Tue, 20 May 2014 03:55:47 +0000 (20:55 -0700)
committerDavid Zafman <dzafman@redhat.com>
Tue, 3 Mar 2015 17:51:30 +0000 (09:51 -0800)
Signed-off-by: David Zafman <david.zafman@inktank.com>
(cherry picked from commit 0fc6bd2777edf24a044f454beacf1647cc52f9fe)

src/tools/ceph_filestore_dump.cc

index 0666163e22a8d7a03588e5a618df6348004d878b..4d70799314ab07a7ac3a0c017290154ce8da0639 100644 (file)
@@ -1415,6 +1415,23 @@ int do_set_omap(ObjectStore *store, coll_t coll, ghobject_t &ghobj, string key,
   return 0;
 }
 
+int do_rm_omap(ObjectStore *store, coll_t coll, ghobject_t &ghobj, string key)
+{
+  ObjectStore::Transaction tran;
+  ObjectStore::Transaction *t = &tran;
+  set<string> keys;
+
+  keys.insert(key);
+
+  if (debug)
+    cerr << "Rm_omap " << ghobj << std::endl;
+
+  t->omap_rmkeys(coll, ghobj, keys);
+
+  store->apply_transaction(*t);
+  return 0;
+}
+
 void usage(po::options_description &desc)
 {
     cerr << std::endl;
@@ -1898,6 +1915,13 @@ int main(int argc, char **argv)
        if (r)
          ret = 1;
         goto out;
+      } else if (objcmd == "rm-omap") {
+       if (vm.count("arg1") == 0)
+         usage(desc);
+       r = do_rm_omap(fs, coll, ghobj, arg1);
+       if (r)
+         ret = 1;
+        goto out;
       }
       cerr << "Unknown object command '" << objcmd << "'" << std::endl;
       usage(desc);