]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'gh/wip-pg-query'
authorSage Weil <sage@newdream.net>
Thu, 23 Feb 2012 22:56:54 +0000 (14:56 -0800)
committerSage Weil <sage@newdream.net>
Thu, 23 Feb 2012 22:56:54 +0000 (14:56 -0800)
Reviewed-by: Josh Durgin <josh.durgin@dreamhost.com>
1  2 
src/osd/OSD.cc
src/osd/ReplicatedPG.cc

diff --cc src/osd/OSD.cc
index 4e49b48d708632672390aa035e791f3690c2cc5e,ce65ccdda78c861d28a1a18eeb753c641d6b6c4e..57e372fe54ab8962ff0c42c3b3a3389f6ea0d1dd
@@@ -2395,6 -2353,33 +2395,28 @@@ void OSD::do_command(Connection *con, t
      osd_lock.Lock();
    }
  
 -  else if (cmd[0] == "stop") {
 -    ss << "got shutdown";
 -    shutdown();
 -  }
 -
+   else if (cmd[0] == "pg") {
+     pg_t pgid;
+     if (cmd.size() < 2) {
+       ss << "no pgid specified";
+       r = -EINVAL;
+     } else if (!pgid.parse(cmd[1].c_str())) {
+       ss << "couldn't parse pgid '" << cmd[1] << "'";
+       r = -EINVAL;
+     } else {
+       PG *pg = _lookup_lock_pg(pgid);
+       if (!pg) {
+       ss << "i don't have pgid " << pgid;
+       r = -ENOENT;
+       } else {
+       cmd.erase(cmd.begin(), cmd.begin() + 2);
+       r = pg->do_command(cmd, ss, odata);
+       }
+       pg->unlock();
+     }
+   }
    else if (cmd[0] == "bench") {
      uint64_t count = 1 << 30;  // 1gb
      uint64_t bsize = 4 << 20;
Simple merge