New central place to put common Python code?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux