mirror of
https://github.com/ceph/ceph
synced 2024-12-23 11:54:11 +00:00
b7215b025a
Creates an installable version of "src/include/rados/objclass.h" that allows object classes to be built outside of the Ceph tree. cls_sdk is an example of such an object class. Signed-off-by: Neha Ojha <nojha@redhat.com>
38 lines
1.7 KiB
ReStructuredText
38 lines
1.7 KiB
ReStructuredText
===========================
|
|
SDK for Ceph Object Classes
|
|
===========================
|
|
|
|
`Ceph` can be extended by creating shared object classes called `Ceph Object
|
|
Classes`. The existing framework to build these object classes has dependencies
|
|
on the internal functionality of `Ceph`, which restricts users to build object
|
|
classes within the tree. The aim of this project is to create an independent
|
|
object class interface, which can be used to build object classes outside the
|
|
`Ceph` tree. This allows us to have two types of object classes, 1) those that
|
|
have in-tree dependencies and reside in the tree and 2) those that can make use
|
|
of the `Ceph Object Class SDK framework` and can be built outside of the `Ceph`
|
|
tree because they do not depend on any internal implementation of `Ceph`. This
|
|
project decouples object class development from Ceph and encourages creation
|
|
and distribution of object classes as packages.
|
|
|
|
In order to demonstrate the use of this framework, we have provided an example
|
|
called ``cls_sdk``, which is a very simple object class that makes use of the
|
|
SDK framework. This object class resides in the ``src/cls`` directory.
|
|
|
|
Installing objclass.h
|
|
---------------------
|
|
|
|
The object class interface that enables out-of-tree development of object
|
|
classes resides in ``src/include/rados/`` and gets installed with `Ceph`
|
|
installation. After running ``make install``, you should be able to see it
|
|
in ``<prefix>/include/rados``. ::
|
|
|
|
ls /usr/local/include/rados
|
|
|
|
Using the SDK example
|
|
---------------------
|
|
|
|
The ``cls_sdk`` object class resides in ``src/cls/sdk/``. This gets built and
|
|
loaded into Ceph, with the Ceph build process. You can run the
|
|
``ceph_test_cls_sdk`` unittest, which resides in ``src/test/cls_sdk/``,
|
|
to test this class.
|