summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/restful/api/mon.py
blob: 20d0336059afaef521956434558973b6c4a37730 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from pecan import expose, response
from pecan.rest import RestController

from restful import context
from restful.decorators import auth


class MonName(RestController):
    def __init__(self, name):
        self.name = name


    @expose(template='json')
    @auth
    def get(self, **kwargs):
        """
        Show the information for the monitor name
        """
        mon = [x for x in context.instance.get_mons()
               if x['name'] == self.name]
        if len(mon) != 1:
            response.status = 500
            return {'message': 'Failed to identify the monitor node "{}"'.format(self.name)}
        return mon[0]



class Mon(RestController):
    @expose(template='json')
    @auth
    def get(self, **kwargs):
        """
        Show the information for all the monitors
        """
        return context.instance.get_mons()


    @expose()
    def _lookup(self, name, *remainder):
        return MonName(name), remainder