}
def _ceph_get_module_option(self, module, key, localized_prefix: None):
- return self._ceph_get_store(f'{module}/{key}')
+ val = self._ceph_get_store(f'{module}/{key}')
+ mo = [o for o in self.MODULE_OPTIONS if o['name'] == key]
+ if len(mo) == 1 and val is not None:
+ cls = {
+ 'str': str,
+ 'secs': int,
+ 'bool': lambda s: bool(s) and s != 'false' and s != 'False',
+ 'int': int,
+ }[mo[0].get('type', 'str')]
+ return cls(val)
+ return val
def _ceph_set_module_option(self, module, key, val):
return self._ceph_set_store(f'{module}/{key}', val)