summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/restful/api/mon.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/pybind/mgr/restful/api/mon.py
parentInitial commit. (diff)
downloadceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz
ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/pybind/mgr/restful/api/mon.py')
-rw-r--r--src/pybind/mgr/restful/api/mon.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/pybind/mgr/restful/api/mon.py b/src/pybind/mgr/restful/api/mon.py
new file mode 100644
index 00000000..20d03360
--- /dev/null
+++ b/src/pybind/mgr/restful/api/mon.py
@@ -0,0 +1,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