All, especially in the Ceph Orchestrator world, we're facing an issue where we don't have a place for for Python code that can be imported by the MGR and by tools that deploy Ceph. Having a Library for common Python code would also provide a way to ease some other Python related problems (also orchestrator independent): 1. There is duplicated code in the cython bindings. Especially the Exceptions are duplicated for each binding. 2. There is no good way to share Python code between different tools written in Pyhton 3. There is no way to share common code, like e.g. common data structures between the different layers of the Orchestrator stacks. 4. There is no statically type-checkable Python API for the (mon) command API. 5. The local Ceph version number is hard coded into the ceph cli binary Now, the idea is to build a new Python package that is supposed to be importable by everyone. >From a user's POV, this would look something like > > from ceph.mon_command_api import MonCommandApi > from ceph.deployment_utils import DriveGroupSpec > from ceph.exceptions import Error > > MonCommandApi(...).osd_pool_create(pool='my_pool', ...) > > try: > ... > except OSError: > ... What would be the scope of this library? Basically everything where there is a real benefit for having it included, like sharing common code between things. From the orchestrator, this could include common deployment recipes. Or recipes used by the SSH orchestrator. Some open questions are: What about code that right now lives in the dashboard, like pybind/mgr/dashboard.controllers.rbd.Rbd#_rbd_disk_usage for calculating the RBD disk usage? Where does it live in the ceph git? /src/python-common/ ? How can we package it? Python 2? Thanks, Sebastian -- -- SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany GF: Felix Imendörffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nürnberg)