Hi, The approach you describe makes sense to me. And you've done a nice job with the refactor.
I'm not familiar with pyudev though and other Ceph developers may already have an opinion (or answers). When adding new dependencies to Ceph, I think we need to assert how stable / reliable those dependencies are. How well tested do you think it is ? https://github.com/pyudev/pyudev/blob/master/Vagrantfile suggests there are tests with good coverage, https://github.com/pyudev/pyudev/pulls and https://github.com/pyudev/pyudev/issues?q=is%3Aopen+is%3Aissue have few open issues and a number of resolved ones. The timeline is a bit strange : a burst of recent commits and a large gap back to 2012. But maybe it's widely used and this really is not a concern ? Is there a particular reason why you did not re-use the json format for ceph-disk list ? Could you make your new ceph-disk into a pull request so that it can run integration tests ? Cheers On 09/09/2015 08:52, Chaitanya Huilgol wrote: > Hi Loic, > > As discussed in the multipath tracker, please find the port of ceph-disk > which is based on pyudev (https://pyudev.readthedocs.org/en/latest/ python > libudev binding) > > Here is a short summary on the approach: > - Current ceph-disk determines various properties on block device by path > string manipulations and /sys/dev properties > - These are difficult to implement and fragile for device types such as DM > multipath. > - Since different code needs to be added based on the device type, a Block > device class based approach has been used. > - Based on the device type supplied a block device object is instantiated > (currently GenericBlockDev or DMBlockDev). > - Each class implements device specific functionality as an implementation of > the abstract BlockDevBase base class. > a. Get partition device from base device > b. Get base device from partition > c. Get Part UUID and Type > d. Determine if device path is partition > e. Determine if device is referenced > f. Get HW sector size > g. List partitions > > In Prepare/Activate/List code paths, the required device object is > instantiated and hence these code paths remain clean > > This port also support multipath devices with the DMBlockDev Class. > > https://github.com/chaitanyahuilgol/ceph-disk-udev.git > > Let us know your thoughts. > > Regards, > Chaitanya > > > ________________________________ > > PLEASE NOTE: The information contained in this electronic mail message is > intended only for the use of the designated recipient(s) named above. If the > reader of this message is not the intended recipient, you are hereby notified > that you have received this message in error and that any review, > dissemination, distribution, or copying of this message is strictly > prohibited. If you have received this communication in error, please notify > the sender by telephone or e-mail (as shown above) immediately and destroy > any and all copies of this message in your possession (whether hard copies or > electronically stored copies). > -- Loïc Dachary, Artisan Logiciel Libre
signature.asc
Description: OpenPGP digital signature