]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add 'get' command to AuthMon, letting you retrive one entity's keyring data
authorGreg Farnum <gregf@hq.newdream.net>
Tue, 6 Apr 2010 17:44:06 +0000 (10:44 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Fri, 9 Apr 2010 19:35:08 +0000 (12:35 -0700)
src/mon/AuthMonitor.cc

index f770701f6679753bf7e7f6a46e775353f70325f2..9eb745004ebe8c56f8eed54309872ecf9a3b351f 100644 (file)
@@ -493,6 +493,25 @@ bool AuthMonitor::preprocess_command(MMonCommand *m)
        ss << "exported master keyring";
        r = 0;
       }
+    }
+    else if (m->cmd[1] == "get") {
+      KeyRing keyring;
+      EntityName entity;
+      if(!entity.from_str(m->cmd[2])) {
+       ss << "failed to identify entity name from " << m->cmd[2];
+       r = -ENOENT;
+      } else {
+       EntityAuth entity_auth;
+       if(!mon->key_server.get_auth(entity, entity_auth)) {
+         ss << "failed to find " << m->cmd[2] << " in keyring";
+         r = -ENOENT;
+       } else {
+         keyring.add(entity, entity_auth);
+         ::encode(keyring, rdata);
+         ss << "exported keyring for " << m->cmd[2];
+         r = 0;
+       }
+      }
     } else {
       auth_usage(ss);
       r = -EINVAL;