From 9dc6de446d87de65cf7a1174e9bf40f047da88e7 Mon Sep 17 00:00:00 2001 From: Volker Theile Date: Tue, 12 Mar 2019 10:06:01 +0100 Subject: [PATCH] mgr: Cleanup get_localized_module_option function Address comments from https://github.com/ceph/ceph/pull/26736. Signed-off-by: Volker Theile --- src/mgr/ActivePyModules.h | 2 +- src/mgr/BaseMgrModule.cc | 2 +- src/mgr/BaseMgrStandbyModule.cc | 4 ++-- src/pybind/mgr/mgr_module.py | 25 +++++++++++++------------ 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/mgr/ActivePyModules.h b/src/mgr/ActivePyModules.h index cf6106c5d4a..758f94f0647 100644 --- a/src/mgr/ActivePyModules.h +++ b/src/mgr/ActivePyModules.h @@ -116,7 +116,7 @@ public: PyObject *get_typed_config(const std::string &module_name, const std::string &key, - const std::string &prefix) const; + const std::string &prefix = "") const; void set_health_checks(const std::string& module_name, health_check_map_t&& checks); diff --git a/src/mgr/BaseMgrModule.cc b/src/mgr/BaseMgrModule.cc index 0e33e0f4b6d..cd3ed56ee73 100644 --- a/src/mgr/BaseMgrModule.cc +++ b/src/mgr/BaseMgrModule.cc @@ -401,7 +401,7 @@ ceph_get_module_option(BaseMgrModule *self, PyObject *args) char *module = nullptr; char *key = nullptr; char *prefix = nullptr; - if (!PyArg_ParseTuple(args, "sss:ceph_get_module_option", &module, &key, + if (!PyArg_ParseTuple(args, "ssz:ceph_get_module_option", &module, &key, &prefix)) { derr << "Invalid args!" << dendl; return nullptr; diff --git a/src/mgr/BaseMgrStandbyModule.cc b/src/mgr/BaseMgrStandbyModule.cc index 4a9c5671b7f..1f587349be2 100644 --- a/src/mgr/BaseMgrStandbyModule.cc +++ b/src/mgr/BaseMgrStandbyModule.cc @@ -65,7 +65,7 @@ ceph_get_module_option(BaseMgrStandbyModule *self, PyObject *args) { char *what = nullptr; char *prefix = nullptr; - if (!PyArg_ParseTuple(args, "ss:ceph_get_module_option", &what, &prefix)) { + if (!PyArg_ParseTuple(args, "sz:ceph_get_module_option", &what, &prefix)) { derr << "Invalid args!" << dendl; return nullptr; } @@ -81,7 +81,7 @@ ceph_get_module_option(BaseMgrStandbyModule *self, PyObject *args) found = self->this_module->get_config(final_key, &value); } if (found) { - dout(10) << __func__ << " " << final_key << " found: " << value.c_str() + dout(10) << __func__ << " " << final_key << " found: " << value << dendl; return self->this_module->py_module->get_typed_option_value(what, value); } else { diff --git a/src/pybind/mgr/mgr_module.py b/src/pybind/mgr/mgr_module.py index 6e82ffef4ef..4c7c2b96dfa 100644 --- a/src/pybind/mgr/mgr_module.py +++ b/src/pybind/mgr/mgr_module.py @@ -352,6 +352,10 @@ def CLIWriteCommand(prefix, args="", desc=""): return CLICommand(prefix, args, desc, "w") +def _get_localized_key(prefix, key): + return '{}/{}'.format(prefix, key) + + class Option(dict): """ Helper class to declare options for MODULE_OPTIONS list. @@ -428,10 +432,9 @@ class MgrStandbyModule(ceph_module.BaseMgrStandbyModule): :param default: the default value of the config if it is not found :return: str """ - r = self._ceph_get_module_option(key, "") + r = self._ceph_get_module_option(key) if r is None: - final_key = key.split('/')[-1] - return self.MODULE_OPTION_DEFAULTS.get(final_key, default) + return self.MODULE_OPTION_DEFAULTS.get(key, default) else: return r @@ -453,8 +456,7 @@ class MgrStandbyModule(ceph_module.BaseMgrStandbyModule): def get_localized_module_option(self, key, default=None): r = self._ceph_get_module_option(key, self.get_mgr_id()) if r is None: - final_key = key.split('/')[-1] - return self.MODULE_OPTION_DEFAULTS.get(final_key, default) + return self.MODULE_OPTION_DEFAULTS.get(key, default) else: return r @@ -908,8 +910,7 @@ class MgrModule(ceph_module.BaseMgrModule): r = self._ceph_get_module_option(self.module_name, key, localized_prefix) if r is None: - final_key = key.split('/')[-1] - return self.MODULE_OPTION_DEFAULTS.get(final_key, default) + return self.MODULE_OPTION_DEFAULTS.get(key, default) else: return r @@ -938,7 +939,7 @@ class MgrModule(ceph_module.BaseMgrModule): """ if module == self.module_name: self._validate_module_option(key) - r = self._ceph_get_module_option(module, key, "") + r = self._ceph_get_module_option(module, key) return default if r is None else r def get_store_prefix(self, key_prefix): @@ -952,7 +953,7 @@ class MgrModule(ceph_module.BaseMgrModule): return self._ceph_get_store_prefix(key_prefix) def _set_localized(self, key, val, setter): - return setter(self.get_mgr_id() + '/' + key, val) + return setter(_get_localized_key(self.get_mgr_id(), key), val) def get_localized_module_option(self, key, default=None): """ @@ -1021,11 +1022,11 @@ class MgrModule(ceph_module.BaseMgrModule): return r def get_localized_store(self, key, default=None): - r = self._ceph_get_store('{}/{}'.format(self.get_mgr_id(), key)) + r = self._ceph_get_store(_get_localized_key(self.get_mgr_id(), key)) if r is None: r = self._ceph_get_store(key) - if r is None: - r = default + if r is None: + r = default return r def set_localized_store(self, key, val): -- 2.39.5