]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mgr/cephadm: using service registry pattern for cephadm services
authorRedouane Kachach <rkachach@ibm.com>
Tue, 14 Jan 2025 09:38:13 +0000 (10:38 +0100)
committerRedouane Kachach <rkachach@ibm.com>
Tue, 28 Jan 2025 12:06:45 +0000 (13:06 +0100)
commitd3d6bd6ca1f5eaec6cd1f8ff83e4c2aba51ac0ee
tree9e58a858521ca2ff6883c59a50ba60af5b086102
parentb40036b449f7845cff997254f788c78b7d2a5828
mgr/cephadm: using service registry pattern for cephadm services

This change includes mainly the following enhancements:
- Introduced a centralized `CephadmServiceRegistry` to manage service registration and initialization.
- Added dynamic discovery of service modules in the same directory using `pkgutil` and `importlib`.
- Implemented a decorator `@service_registry_decorator` for automatic registration of service classes.

Fixes: https://tracker.ceph.com/issues/69021
Signed-off-by: Redouane Kachach <rkachach@ibm.com>
19 files changed:
src/pybind/mgr/cephadm/agent.py
src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/serve.py
src/pybind/mgr/cephadm/services/cephadmservice.py
src/pybind/mgr/cephadm/services/container.py
src/pybind/mgr/cephadm/services/ingress.py
src/pybind/mgr/cephadm/services/iscsi.py
src/pybind/mgr/cephadm/services/jaeger.py
src/pybind/mgr/cephadm/services/mgmt_gateway.py
src/pybind/mgr/cephadm/services/monitoring.py
src/pybind/mgr/cephadm/services/nfs.py
src/pybind/mgr/cephadm/services/node_proxy.py
src/pybind/mgr/cephadm/services/nvmeof.py
src/pybind/mgr/cephadm/services/oauth2_proxy.py
src/pybind/mgr/cephadm/services/osd.py
src/pybind/mgr/cephadm/services/service_registry.py [new file with mode: 0644]
src/pybind/mgr/cephadm/services/smb.py
src/pybind/mgr/cephadm/tests/test_services.py
src/pybind/mgr/cephadm/upgrade.py