"osd", "pool", "delete", pool_name, pool_name,
"--yes-i-really-really-mean-it")
-
def test_selftest_run(self):
self._load_module("selftest")
self.mgr_cluster.mon_manager.raw_cluster_cmd("mgr", "self-test", "run")
def get_value():
return self.mgr_cluster.mon_manager.raw_cluster_cmd(
- "mgr", "self-test", "config", "get", "testkey").strip()
+ "mgr", "self-test", "config", "get", "testkey").strip()
self.assertEqual(get_value(), "None")
-
- self.mgr_cluster.mon_manager.raw_cluster_cmd("config", "set",
- "mgr", "mgr/selftest/testkey", "testvalue")
-
- self.wait_until_equal(get_value, "testvalue",timeout=10)
-
- active_id = self.mgr_cluster.get_active_id()
+ self.mgr_cluster.mon_manager.raw_cluster_cmd(
+ "config", "set", "mgr", "mgr/selftest/testkey", "foo")
+ self.wait_until_equal(get_value, "foo", timeout=10)
def get_localized_value():
return self.mgr_cluster.mon_manager.raw_cluster_cmd(
- "mgr", "self-test", "config", "get_localized", "testlkey").strip()
+ "mgr", "self-test", "config", "get_localized", "testkey").strip()
- self.mgr_cluster.mon_manager.raw_cluster_cmd("config", "set",
- "mgr", "mgr/selftest/{0}/testlkey".format(active_id),
- "test localized value")
-
- self.wait_until_equal(get_localized_value, "test localized value",
- timeout=10)
+ self.assertEqual(get_localized_value(), "None")
+ self.mgr_cluster.mon_manager.raw_cluster_cmd(
+ "config", "set", "mgr", "mgr/selftest/{}/testkey".format(
+ self.mgr_cluster.get_active_id()),
+ "bar")
+ self.wait_until_equal(get_localized_value, "bar", timeout=10)
def test_selftest_config_upgrade(self):
"""
-
import ceph_module # noqa
import logging
def CLIWriteCommand(prefix, args="", desc=""):
return CLICommand(prefix, args, desc, "w")
+
class Option(dict):
"""
Helper class to declare options for MODULE_OPTIONS list.
TODO: type validation.
"""
+
def __init__(
self, name,
default=None,
"""
return self._ceph_get_store_prefix(key_prefix)
- def _get_localized(self, key, default, getter):
- r = getter(self.get_mgr_id() + '/' + key, None)
- if r is None:
- r = getter(key, default)
-
- return r
-
def _set_localized(self, key, val, setter):
return setter(self.get_mgr_id() + '/' + key, val)
:return: str
"""
self._validate_module_option(key)
- return self._get_localized(key, default, self._get_module_option)
+ r = self._ceph_get_module_option(
+ self.module_name, '{}/{}'.format(self.get_mgr_id(), key))
+ if r is None:
+ r = self._ceph_get_module_option(self.module_name, key)
+ if r is None:
+ final_key = key.split('/')[-1]
+ r = self.MODULE_OPTION_DEFAULTS.get(final_key, default)
+ return r
def _set_module_option(self, key, val):
return self._ceph_set_module_option(self.module_name, key, str(val))
return r
def get_localized_store(self, key, default=None):
- return self._get_localized(key, default, self.get_store)
+ r = self._ceph_get_store('{}/{}'.format(self.get_mgr_id(), key))
+ if r is None:
+ r = self._ceph_get_store(key)
+ if r is None:
+ r = default
+ return r
def set_localized_store(self, key, val):
return self._set_localized(key, val, self.set_store)
{'name': 'rwoption2', 'type': 'int'},
{'name': 'rwoption3', 'type': 'float'},
{'name': 'rwoption4', 'type': 'str'},
- {'name': 'rwoption5', 'type': 'bool'}
+ {'name': 'rwoption5', 'type': 'bool'},
+ {'name': 'rwoption6', 'type': 'bool', 'default': True}
]
COMMANDS = [
self.set_module_option("testkey", "testvalue")
assert self.get_module_option("testkey") == "testvalue"
- self.set_localized_module_option("testkey", "testvalue")
- assert self.get_localized_module_option("testkey") == "testvalue"
+ self.set_localized_module_option("testkey", "foo")
+ assert self.get_localized_module_option("testkey") == "foo"
+
+ # Must return the default value defined in MODULE_OPTIONS.
+ value = self.get_localized_module_option("rwoption6")
+ assert isinstance(value, bool)
+ assert value is True
# Use default value.
assert self.get_module_option("roption1") is None