2014-05-24 18:13:54 +00:00
|
|
|
# go-rados - Go bindings for RADOS distributed object store
|
|
|
|
|
2014-11-27 19:04:19 +00:00
|
|
|
[![Build Status](https://travis-ci.org/noahdesu/go-rados.svg)](https://travis-ci.org/noahdesu/go-rados)
|
|
|
|
|
2014-11-28 00:44:02 +00:00
|
|
|
This project uses Semantic Versioning (http://semver.org/).
|
|
|
|
|
2014-05-24 18:13:54 +00:00
|
|
|
## 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>.
|
2014-05-26 18:14:12 +00:00
|
|
|
|
2014-08-31 01:36:50 +00:00
|
|
|
### Connecting to a cluster
|
2014-05-26 18:14:12 +00:00
|
|
|
|
2014-08-31 01:36:50 +00:00
|
|
|
Connect to a Ceph cluster using a configuration file located in the default
|
|
|
|
search paths.
|
2014-05-26 18:14:12 +00:00
|
|
|
|
|
|
|
```go
|
|
|
|
conn, _ := rados.NewConn()
|
|
|
|
conn.ReadDefaultConfigFile()
|
|
|
|
conn.Connect()
|
2014-08-31 01:36:50 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
```go
|
|
|
|
conn.SetConfigOption("log_file", "/dev/null")
|
|
|
|
```
|
|
|
|
|
|
|
|
and command line options can also be used using the `ParseCmdLineArgs` method.
|
|
|
|
|
|
|
|
```go
|
|
|
|
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:
|
|
|
|
|
|
|
|
```go
|
2014-05-26 18:14:12 +00:00
|
|
|
pools, _ := conn.ListPools()
|
2014-08-31 01:36:50 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
```go
|
|
|
|
conn.MakePool("new_pool")
|
2014-05-26 18:14:12 +00:00
|
|
|
```
|
|
|
|
|
2014-08-31 01:36:50 +00:00
|
|
|
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.
|
2014-05-26 18:14:12 +00:00
|
|
|
|
2014-08-31 01:36:50 +00:00
|
|
|
```go
|
|
|
|
conn.DeletePool("new_pool")
|
|
|
|
```
|