]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: configure log_client properly
authorSage Weil <sage@redhat.com>
Mon, 3 Nov 2014 09:55:25 +0000 (01:55 -0800)
committerSage Weil <sage@redhat.com>
Wed, 5 Nov 2014 09:06:02 +0000 (01:06 -0800)
This broke when the channel refactor happened--we weren't configuring
the LogClient settings at all.  Fix it by using the generic helpers to
make this reasonably painless.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h

index 5747257c22893fec14a1c2dd453bff6fe37f15d5..836de3f3a35d65f395009f573e69c7e833ac3611 100644 (file)
@@ -2012,6 +2012,7 @@ int OSD::init()
 
   // tell monc about log_client so it will know about mon session resets
   monc->set_log_client(&log_client);
+  update_log_config();
 
   osd_tp.start();
   osd_op_tp.start();
@@ -8513,6 +8514,11 @@ const char** OSD::get_tracked_conf_keys() const
     "osd_pg_epoch_persisted_max_stale",
     "osd_disk_thread_ioprio_class",
     "osd_disk_thread_ioprio_priority",
+    // clog & admin clog
+    "clog_to_monitors",
+    "clog_to_syslog",
+    "clog_to_syslog_facility",
+    "clog_to_syslog_level",
     NULL
   };
   return KEYS;
@@ -8548,10 +8554,29 @@ void OSD::handle_conf_change(const struct md_config_t *conf,
     service.map_bl_cache.set_size(cct->_conf->osd_map_cache_size);
     service.map_bl_inc_cache.set_size(cct->_conf->osd_map_cache_size);
   }
+  if (changed.count("clog_to_monitors") ||
+      changed.count("clog_to_syslog") ||
+      changed.count("clog_to_syslog_level") ||
+      changed.count("clog_to_syslog_facility")) {
+    update_log_config();
+  }
 
   check_config();
 }
 
+void OSD::update_log_config()
+{
+  map<string,string> log_to_monitors;
+  map<string,string> log_to_syslog;
+  map<string,string> log_channel;
+  map<string,string> log_prio;
+  if (parse_log_client_options(g_ceph_context, log_to_monitors, log_to_syslog,
+                              log_channel, log_prio) == 0)
+    clog->update_config(log_to_monitors, log_to_syslog,
+                       log_channel, log_prio);
+  derr << "log_to_monitors " << log_to_monitors << dendl;
+}
+
 void OSD::check_config()
 {
   // some sanity checks
index 426a2b1fab7019e3d91ffc76b5f5b8fd1bb84092..1d32059defa4afbecc99b445887b4496badc0ac8 100644 (file)
@@ -908,6 +908,7 @@ public:
   virtual const char** get_tracked_conf_keys() const;
   virtual void handle_conf_change(const struct md_config_t *conf,
                                  const std::set <std::string> &changed);
+  void update_log_config();
   void check_config();
 
 protected: