Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / doc / rados / api / objclass-sdk.rst
1 ===========================
2 SDK for Ceph Object Classes
3 ===========================
4
5 `Ceph` can be extended by creating shared object classes called `Ceph Object 
6 Classes`. The existing framework to build these object classes has dependencies 
7 on the internal functionality of `Ceph`, which restricts users to build object 
8 classes within the tree. The aim of this project is to create an independent 
9 object class interface, which can be used to build object classes outside the 
10 `Ceph` tree. This allows us to have two types of object classes, 1) those that 
11 have in-tree dependencies and reside in the tree and 2) those that can make use 
12 of the `Ceph Object Class SDK framework` and can be built outside of the `Ceph` 
13 tree because they do not depend on any internal implementation of `Ceph`. This 
14 project decouples object class development from Ceph and encourages creation 
15 and distribution of object classes as packages.
16
17 In order to demonstrate the use of this framework, we have provided an example 
18 called ``cls_sdk``, which is a very simple object class that makes use of the 
19 SDK framework. This object class resides in the ``src/cls`` directory. 
20
21 Installing objclass.h
22 ---------------------
23
24 The object class interface that enables out-of-tree development of object 
25 classes resides in ``src/include/rados/`` and gets installed with `Ceph` 
26 installation. After running ``make install``, you should be able to see it 
27 in ``<prefix>/include/rados``. ::
28
29         ls /usr/local/include/rados
30
31 Using the SDK example
32 ---------------------
33
34 The ``cls_sdk`` object class resides in ``src/cls/sdk/``. This gets built and 
35 loaded into Ceph, with the Ceph build process. You can run the 
36 ``ceph_test_cls_sdk`` unittest, which resides in ``src/test/cls_sdk/``, 
37 to test this class.