X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fdoc%2Frbd%2Fapi%2Flibrbdpy.rst;fp=src%2Fceph%2Fdoc%2Frbd%2Fapi%2Flibrbdpy.rst;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=fa903312557fea5bc2c0e93fca757fdcb16fa71e;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/doc/rbd/api/librbdpy.rst b/src/ceph/doc/rbd/api/librbdpy.rst deleted file mode 100644 index fa90331..0000000 --- a/src/ceph/doc/rbd/api/librbdpy.rst +++ /dev/null @@ -1,82 +0,0 @@ -================ - Librbd (Python) -================ - -.. highlight:: python - -The `rbd` python module provides file-like access to RBD images. - - -Example: Creating and writing to an image -========================================= - -To use `rbd`, you must first connect to RADOS and open an IO -context:: - - cluster = rados.Rados(conffile='my_ceph.conf') - cluster.connect() - ioctx = cluster.open_ioctx('mypool') - -Then you instantiate an :class:rbd.RBD object, which you use to create the -image:: - - rbd_inst = rbd.RBD() - size = 4 * 1024**3 # 4 GiB - rbd_inst.create(ioctx, 'myimage', size) - -To perform I/O on the image, you instantiate an :class:rbd.Image object:: - - image = rbd.Image(ioctx, 'myimage') - data = 'foo' * 200 - image.write(data, 0) - -This writes 'foo' to the first 600 bytes of the image. Note that data -cannot be :type:unicode - `Librbd` does not know how to deal with -characters wider than a :c:type:char. - -In the end, you will want to close the image, the IO context and the connection to RADOS:: - - image.close() - ioctx.close() - cluster.shutdown() - -To be safe, each of these calls would need to be in a separate :finally -block:: - - cluster = rados.Rados(conffile='my_ceph_conf') - try: - ioctx = cluster.open_ioctx('my_pool') - try: - rbd_inst = rbd.RBD() - size = 4 * 1024**3 # 4 GiB - rbd_inst.create(ioctx, 'myimage', size) - image = rbd.Image(ioctx, 'myimage') - try: - data = 'foo' * 200 - image.write(data, 0) - finally: - image.close() - finally: - ioctx.close() - finally: - cluster.shutdown() - -This can be cumbersome, so the :class:`Rados`, :class:`Ioctx`, and -:class:`Image` classes can be used as context managers that close/shutdown -automatically (see :pep:`343`). Using them as context managers, the -above example becomes:: - - with rados.Rados(conffile='my_ceph.conf') as cluster: - with cluster.open_ioctx('mypool') as ioctx: - rbd_inst = rbd.RBD() - size = 4 * 1024**3 # 4 GiB - rbd_inst.create(ioctx, 'myimage', size) - with rbd.Image(ioctx, 'myimage') as image: - data = 'foo' * 200 - image.write(data, 0) - -API Reference -============= - -.. automodule:: rbd - :members: RBD, Image, SnapIterator