]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: include host, container info for 'osd find' command 25382/head
authorSage Weil <sage@redhat.com>
Mon, 3 Dec 2018 22:34:34 +0000 (16:34 -0600)
committerSage Weil <sage@redhat.com>
Mon, 3 Dec 2018 22:34:34 +0000 (16:34 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index c38d03324a6eadd3f9b8303de7b59db69924c068..5992e37434501c0bd520f77d9c62ba2dffcf4f5e 100644 (file)
@@ -4766,6 +4766,23 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op)
     f->open_object_section("osd_location");
     f->dump_int("osd", osd);
     f->dump_object("addrs", osdmap.get_addrs(osd));
+
+    // try to identify host, pod/container name, etc.
+    map<string,string> m;
+    load_metadata(osd, m, nullptr);
+    if (auto p = m.find("hostname"); p != m.end()) {
+      f->dump_string("host", p->second);
+    }
+    for (auto& k : {
+       "pod_name", "pod_namespace", // set by rook
+       "container_name"             // set by ceph-ansible
+       }) {
+      if (auto p = m.find(k); p != m.end()) {
+       f->dump_string(k, p->second);
+      }
+    }
+
+    // crush is helpful too
     f->open_object_section("crush_location");
     map<string,string> loc = osdmap.crush->get_full_location(osd);
     for (map<string,string>::iterator p = loc.begin(); p != loc.end(); ++p)