Skip to content

endticket/node-rados

This branch is 10 commits ahead of, 1 commit behind ksperis/node-rados:master.

Folders and files

NameName
Last commit message
Last commit date
Mar 15, 2015
Nov 24, 2014
Aug 23, 2014
Nov 21, 2014
Feb 16, 2015
Nov 21, 2014
Dec 31, 2014
Mar 1, 2016
Jul 30, 2014
Oct 25, 2016
Oct 25, 2016
Oct 25, 2016

Repository files navigation

node-rados

Ceph rados client for node

Installation

From npm:

sudo apt-get install librados-dev
npm install rados

From source:

sudo apt-get install nodejs node-gyp librados-dev
git clone https://github.com/ksperis/node-rados
cd node-rados
npm install nan
node-gyp rebuild

Usage

Load module :

var rados = require('./build/Release/rados');
// or, if installed whith npm in node_modules
var rados = require('rados');

Connect to cluster :

cluster = new rados.Rados(cluster, user, conffile)	// return Rados object
cluster.connect()									// on err, return err code
cluster.shutdown()									// on err, return err code

cluster.get_fsid()									// return String (null on error)
cluster.create_pool(pool_name, [auid], [crush_rule])// on err, return err code
cluster.delete_pool(pool_name)						// on err, return err code
cluster.pool_list()									// return Array (null on error)

Create / Delete Ioctx :

ioctx = new rados.Ioctx(cluster, poolname)			// on error, throw error
ioctx.destroy()
ioctx.pool_set_auid(auid)							// on error, return error
ioctx.pool_get_auid(auid)							// on error, return auid (negative value on error)

Manage snapshots :

ioctx.snap_create(snapname)							// on err, return err code
ioctx.snap_remove(snapname)							// on err, return err code
ioctx.snap_rollback(oid, snapname)					// on err, return err code

Sync Buffered functions :

ioctx.read(oid, [size], [offset])					// return Buffer (null on error)
ioctx.write(oid, buffer, [size], [offset])			// on err, return err code
ioctx.write_full(oid, buffer, [size])				// on err, return err code
ioctx.clone_range(dst, dst_off, src, src_off, size)	// on err, return err code
ioctx.append(oid, buffer, [size])					// on err, return err code
ioctx.trunc(oid, size)								// on err, return err code
ioctx.remove(oid)									// on err, return err code
ioctx.stat(oid)										// return Object with attr psize, pmtime

AIO functions :

ioctx.aio_read(oid, [size], [offset], function (err, data) {})
ioctx.aio_write(oid, buffer, [size], [offset], function (err) {})
ioctx.aio_append(oid, buffer, [size], function (err) {})
ioctx.aio_write_full(oid, buffer, [size], function (err) {})
ioctx.aio_flush()
ioctx.aio_flush_async(function (err) {})

Manage Attr :

ioctx.getxattr(oid, attr, [size])					// return String (null on error)
ioctx.setxattr(oid, attr, value, [size])			// on err, return err code
ioctx.rmxattr(oid, attr)							// on err, return err code
ioctx.getxattrs(oid)								// return object with attributes (null on error)

About

Ceph rados client for node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 70.8%
  • JavaScript 28.7%
  • Python 0.5%