# -*- coding: utf-8 -*-
from __future__ import absolute_import
-from . import ApiController, RESTController
+from . import ApiController, RESTController, \
+ allow_empty_body
from .. import mgr
from ..security import Scope
from ..services.ceph_service import CephService
"""
result = []
mgr_map = mgr.get('mgr_map')
+ always_on_modules = mgr_map['always_on_modules'].get(mgr.release_name, [])
for module_config in mgr_map['available_modules']:
- if module_config['name'] not in self.ignore_modules:
+ module_name = module_config['name']
+ if module_name not in self.ignore_modules:
+ always_on = module_name in always_on_modules
+ enabled = module_name in mgr_map['modules'] or always_on
result.append({
- 'name': module_config['name'],
- 'enabled': False,
+ 'name': module_name,
+ 'enabled': enabled,
+ 'always_on': always_on,
'options': self._convert_module_options(
module_config['module_options'])
})
- for name in mgr_map['modules']:
- if name not in self.ignore_modules:
- obj = find_object_in_list('name', name, result)
- obj['enabled'] = True
return result
def get(self, module_name):
@RESTController.Resource('POST')
@handle_send_command_error('mgr_modules')
+ @allow_empty_body
def enable(self, module_name):
"""
Enable the specified Ceph Mgr module.
@RESTController.Resource('POST')
@handle_send_command_error('mgr_modules')
+ @allow_empty_body
def disable(self, module_name):
"""
Disable the specified Ceph Mgr module.
else:
option['default_value'] = str_to_bool(
option['default_value'])
- elif option['type'] == 'float':
+ elif option['type'] in ['float', 'uint', 'int', 'size', 'secs']:
+ cls = {
+ 'float': float
+ }.get(option['type'], int)
for name in ['default_value', 'min', 'max']:
- if option[name]: # Skip empty entries
- option[name] = float(option[name])
- elif option['type'] in ['uint', 'int', 'size', 'secs']:
- for name in ['default_value', 'min', 'max']:
- if option[name]: # Skip empty entries
- option[name] = int(option[name])
+ if option[name] == 'None': # This is Python None
+ option[name] = None
+ elif option[name]: # Skip empty entries
+ option[name] = cls(option[name])
return options