Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / pybind / mgr / restful / api / crush.py
1 from pecan import expose
2 from pecan.rest import RestController
3
4 from restful import common, module
5 from collections import defaultdict
6
7 from restful.decorators import auth
8
9
10 class CrushRule(RestController):
11     @expose(template='json')
12     @auth
13     def get(self, **kwargs):
14         """
15         Show crush rules
16         """
17         rules = module.instance.get('osd_map_crush')['rules']
18         nodes = module.instance.get('osd_map_tree')['nodes']
19
20         for rule in rules:
21             rule['osd_count'] = len(common.crush_rule_osds(nodes, rule))
22
23         return rules
24
25 class Crush(RestController):
26     rule = CrushRule()