Go bindings for Ceph
Go to file
Noah Watkins 802930e9e5 test: check for any stat change
The memstore doesn't seem to refresh kb_used, so we wait for anything to
change. It looks like num_objects changes for memstore.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-11-27 16:27:23 -08:00
.travis.yml travis: install ceph in ci environment 2014-09-03 07:15:36 -07:00
conn.go lib: updating comments 2014-08-30 18:03:23 -07:00
LICENSE license: add MIT license 2014-11-27 10:53:04 -08:00
pool.go doc: update method docs 2014-05-24 11:28:19 -07:00
rados_test.go test: check for any stat change 2014-11-27 16:27:23 -08:00
rados.go lib: rename Open to NewConn 2014-05-24 11:42:18 -07:00
README.md doc: update README with examples 2014-09-03 07:16:18 -07:00

go-rados - Go bindings for RADOS distributed object store

Installation

go get github.com/noahdesu/go-rados

The native RADOS library and development headers are expected to be installed.

Documentation

Detailed documentation is available at http://godoc.org/github.com/noahdesu/go-rados.

Connecting to a cluster

Connect to a Ceph cluster using a configuration file located in the default search paths.

conn, _ := rados.NewConn()
conn.ReadDefaultConfigFile()
conn.Connect()

A connection can be shutdown by calling the Shutdown method on the connection object (e.g. conn.Shutdown()). There are also other methods for configuring the connection. Specific configuration options can be set:

conn.SetConfigOption("log_file", "/dev/null")

and command line options can also be used using the ParseCmdLineArgs method.

args := []string{ "--mon-host", "1.1.1.1" }
err := conn.ParseCmdLineArgs(args)

For other configuration options see the full documentation.

Pool maintenance

The list of pools in a cluster can be retreived using the ListPools method on the connection object. On a new cluster the following code snippet:

pools, _ := conn.ListPools()
fmt.Println(pools)

will produce the output [data metadata rbd], along with any other pools that might exist in your cluster. Pools can also be created and destroyed. The following creates a new, empty pool with default settings.

conn.MakePool("new_pool")

Deleting a pool is also easy. Call DeletePool(name string) on a connection object to delete a pool with the given name. The following will delete the pool named new_pool and remove all of the pool's data.

conn.DeletePool("new_pool")