From ceac0861434ae761d8866889980dcf95d1f21a93 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 25 Jan 2021 17:19:59 -0600 Subject: [PATCH] mgr: add lookup_release_name(int) to mgr interface Signed-off-by: Sage Weil --- src/mgr/BaseMgrModule.cc | 13 +++++++++++++ src/pybind/mgr/ceph_module.pyi | 1 + src/pybind/mgr/mgr_module.py | 3 +++ 3 files changed, 17 insertions(+) diff --git a/src/mgr/BaseMgrModule.cc b/src/mgr/BaseMgrModule.cc index ccfab8de711..ede9a809b21 100644 --- a/src/mgr/BaseMgrModule.cc +++ b/src/mgr/BaseMgrModule.cc @@ -595,6 +595,16 @@ ceph_get_release_name(BaseMgrModule *self, PyObject *args) return PyUnicode_FromString(ceph_release_to_str()); } +static PyObject * +ceph_lookup_release_name(BaseMgrModule *self, PyObject *args) +{ + int major = 0; + if (!PyArg_ParseTuple(args, "i:ceph_lookup_release_name", &major)) { + return nullptr; + } + return PyUnicode_FromString(ceph_release_name(major)); +} + static PyObject * ceph_get_context(BaseMgrModule *self) { @@ -1415,6 +1425,9 @@ PyMethodDef BaseMgrModule_methods[] = { {"_ceph_get_release_name", (PyCFunction)ceph_get_release_name, METH_NOARGS, "Get the ceph release name of this process"}, + {"_ceph_lookup_release_name", (PyCFunction)ceph_lookup_release_name, METH_VARARGS, + "Get the ceph release name for a given major number"}, + {"_ceph_get_context", (PyCFunction)ceph_get_context, METH_NOARGS, "Get a CephContext* in a python capsule"}, diff --git a/src/pybind/mgr/ceph_module.pyi b/src/pybind/mgr/ceph_module.pyi index c0390908a36..a5622065c79 100644 --- a/src/pybind/mgr/ceph_module.pyi +++ b/src/pybind/mgr/ceph_module.pyi @@ -40,6 +40,7 @@ class BaseMgrModule(object): def __init__(self, py_modules_ptr, this_ptr): pass def _ceph_get_version(self):... def _ceph_get_release_name(self):... + def _ceph_lookup_release_name(self, release):... def _ceph_cluster_log(self, channel, priority, message):... def _ceph_get_context(self):... def _ceph_get(self, data_name):... diff --git a/src/pybind/mgr/mgr_module.py b/src/pybind/mgr/mgr_module.py index dad05277958..37acf88e3a6 100644 --- a/src/pybind/mgr/mgr_module.py +++ b/src/pybind/mgr/mgr_module.py @@ -912,6 +912,9 @@ class MgrModule(ceph_module.BaseMgrModule, MgrModuleLoggingMixin): """ return self._ceph_get_release_name() + def lookup_release_name(self, major: int) -> str: + return self._ceph_lookup_release_name(major) + def get_context(self) -> object: """ :return: a Python capsule containing a C++ CephContext pointer -- 2.39.5