]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/ConfigMonitor: handle renamed config options
authorSage Weil <sage@newdream.net>
Fri, 26 Jun 2020 22:05:31 +0000 (17:05 -0500)
committerNeha Ojha <nojha@redhat.com>
Mon, 24 Aug 2020 19:53:08 +0000 (19:53 +0000)
Signed-off-by: Sage Weil <sage@newdream.net>
src/mon/ConfigMonitor.cc

index 6cddc3bfc51c5be9034fcbe8e8bf5ac35fcb0721..d7fe933c8b3ccd69b2b64874cc601ba9ded2b989 100644 (file)
@@ -753,6 +753,16 @@ void ConfigMonitor::on_active()
 
 void ConfigMonitor::load_config()
 {
+  std::map<std::string,std::string> renamed_pacific = {
+    { "mon_osd_blacklist_default_expire", "mon_osd_blocklist_default_expire" },
+    { "mon_mds_blacklist_interval", "mon_mds_blocklist_interval" },
+    { "mon_mgr_blacklist_interval", "mon_mgr_blocklist_interval" },
+    { "rbd_blacklist_on_break_lock", "rbd_blocklist_on_break_lock" },
+    { "rbd_blacklist_expire_seconds", "rbd_blocklist_expire_seconds" },
+    { "mds_session_blacklist_on_timeout", "mds_session_blocklist_on_timeout" },
+    { "mds_session_blacklist_on_evict", "mds_session_blocklist_on_evict" },
+  };
+
   unsigned num = 0;
   KeyValueDB::Iterator it = mon->store->get_iterator(CONFIG_PREFIX);
   it->lower_bound(KEY_PREFIX);
@@ -779,6 +789,20 @@ void ConfigMonitor::load_config()
       who = key.substr(0, last_slash);
     }
 
+    // has this option been renamed?
+    {
+      auto p = renamed_pacific.find(name);
+      if (p != renamed_pacific.end()) {
+       if (mon->monmap->min_mon_release >= ceph_release_t::pacific) {
+         // schedule a cleanup
+         pending_cleanup[key] = boost::none;
+         pending_cleanup[who + "/" + p->second] = it->value();
+       }
+       // continue loading under the new name
+       name = p->second;
+      }
+    }
+
     const Option *opt = g_conf().find_option(name);
     if (!opt) {
       opt = mon->mgrmon()->find_module_option(name);