+from pecan import expose, response
+from pecan.rest import RestController
+
+from restful import module
+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 = filter(
+ lambda x: x['name'] == self.name,
+ module.instance.get_mons()
+ )
+
+ if len(mon) != 1:
+ response.status = 500
+ return {'message': 'Failed to identify the monitor node "%s"' % self.name}
+
+ return mon[0]
+
+
+
+class Mon(RestController):
+ @expose(template='json')
+ @auth
+ def get(self, **kwargs):
+ """
+ Show the information for all the monitors
+ """
+ return module.instance.get_mons()
+
+
+ @expose()
+ def _lookup(self, name, *remainder):
+ return MonName(name), remainder