]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/restful/api/crush.py
import quincy beta 17.1.0
[ceph.git] / 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, context
5
6 from restful.decorators import auth
7
8
9 class CrushRule(RestController):
10 @expose(template='json')
11 @auth
12 def get(self, **kwargs):
13 """
14 Show crush rules
15 """
16 crush = context.instance.get('osd_map_crush')
17 rules = crush['rules']
18
19 for rule in rules:
20 rule['osd_count'] = len(common.crush_rule_osds(crush['buckets'], rule))
21
22 return rules
23
24 class Crush(RestController):
25 rule = CrushRule()