]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/progress: expose API from CLI
authorErnesto Puerta <epuertat@redhat.com>
Fri, 5 Sep 2025 15:40:21 +0000 (17:40 +0200)
committerErnesto Puerta <epuertat@redhat.com>
Mon, 8 Sep 2025 16:52:30 +0000 (18:52 +0200)
Fixes: https://tracker.ceph.com/issues/72893
Through cli-api mgr module, users can invoke ceph-mgr Python API from
the CLI. The progress module API was partially exposed. This change
allows them to create progress event from the CLI.

Example:
```bash
ceph mgr module enable cli_api
ceph mgr cli update_progress_event evid_18 "Upgrading foo..." 0.1 --add-to-ceph-s

{
  "evid_18": {
    "message": "Upgrading foo...",
    "progress": 0.10000000149011612,
    "add_to_ceph_s": true
  }
}
```

Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
src/pybind/mgr/ceph_module.pyi
src/pybind/mgr/mgr_module.py

index 9c9e4c0d339a8c94ae724c9124a55dd7fcf34614..69eb7e863def4357ee1ef8995bd92a458ccdc828 100644 (file)
@@ -107,7 +107,7 @@ class BaseMgrModule(object):
     def _ceph_set_uri(self, uri: str) -> None: ...
     def _ceph_set_device_wear_level(self, devid: str, val: float) -> None: ...
     def _ceph_have_mon_connection(self) -> bool: ...
-    def _ceph_update_progress_event(self, evid: str, desc: str, progress: float, add_to_ceph_s: bool) -> None: ...
+    def _ceph_update_progress_event(self, evid: str, desc: str, progress: float, add_to_ceph_s: bool=False) -> None: ...
     def _ceph_complete_progress_event(self, evid: str) -> None: ...
     def _ceph_clear_all_progress_events(self) -> None: ...
     def _ceph_dispatch_remote(self, module_name: str, method_name: str, *args: Any, **kwargs: Any) -> Any: ...
index 2830a0b162276e5a1bb9d645eb4a16a00df61134..8549e15d8e240d6b624aff0c695d29dd92975f2b 100644 (file)
@@ -2506,11 +2506,13 @@ class MgrModule(ceph_module.BaseMgrModule, MgrModuleLoggingMixin):
 
         return self._ceph_have_mon_connection()
 
+    @API.perm('w')
+    @API.expose
     def update_progress_event(self,
                               evid: str,
                               desc: str,
                               progress: float,
-                              add_to_ceph_s: bool) -> None:
+                              add_to_ceph_s: bool = False) -> None:
         return self._ceph_update_progress_event(evid, desc, progress, add_to_ceph_s)
 
     @API.perm('w')