Documentation ¶
Overview ¶
Package rados contains a set of wrappers around Ceph's librados API.
Index ¶
- Variables
- func GetRadosError(err int) error
- func Version() (int, int, int)
- type ClusterStat
- type Conn
- func (c *Conn) Connect() error
- func (c *Conn) DeletePool(name string) error
- func (c *Conn) GetClusterStats() (stat ClusterStat, err error)
- func (c *Conn) GetConfigOption(name string) (value string, err error)
- func (c *Conn) GetFSID() (fsid string, err error)
- func (c *Conn) GetInstanceID() uint64
- func (c *Conn) GetPoolByID(id int64) (string, error)
- func (c *Conn) GetPoolByName(name string) (int64, error)
- func (c *Conn) ListPools() (names []string, err error)
- func (c *Conn) MakePool(name string) error
- func (c *Conn) MonCommand(args []byte) (buffer []byte, info string, err error)
- func (c *Conn) MonCommandWithInputBuffer(args, inputBuffer []byte) (buffer []byte, info string, err error)
- func (c *Conn) OpenIOContext(pool string) (*IOContext, error)
- func (c *Conn) PGCommand(pgid []byte, args [][]byte) (buffer []byte, info string, err error)
- func (c *Conn) PGCommandWithInputBuffer(pgid []byte, args [][]byte, inputBuffer []byte) (buffer []byte, info string, err error)
- func (c *Conn) ParseCmdLineArgs(args []string) error
- func (c *Conn) ParseDefaultConfigEnv() error
- func (c *Conn) PingMonitor(id string) (string, error)
- func (c *Conn) ReadConfigFile(path string) error
- func (c *Conn) ReadDefaultConfigFile() error
- func (c *Conn) SetConfigOption(option, value string) error
- func (c *Conn) Shutdown()
- func (c *Conn) WaitForLatestOSDMap() error
- type IOContext
- func (ioctx *IOContext) Append(oid string, data []byte) error
- func (ioctx *IOContext) BreakLock(oid, name, client, cookie string) (int, error)
- func (ioctx *IOContext) CleanOmap(oid string) error
- func (ioctx *IOContext) Delete(oid string) error
- func (ioctx *IOContext) Destroy()
- func (ioctx *IOContext) GetAllOmapValues(oid string, startAfter string, filterPrefix string, iteratorSize int64) (map[string][]byte, error)
- func (ioctx *IOContext) GetOmapValues(oid string, startAfter string, filterPrefix string, maxReturn int64) (map[string][]byte, error)
- func (ioctx *IOContext) GetPoolName() (name string, err error)
- func (ioctx *IOContext) GetPoolStats() (stat PoolStat, err error)
- func (ioctx *IOContext) GetXattr(object string, name string, data []byte) (int, error)
- func (ioctx *IOContext) Iter() (*Iter, error)
- func (ioctx *IOContext) ListLockers(oid, name string) (*LockInfo, error)
- func (ioctx *IOContext) ListObjects(listFn ObjectListFunc) error
- func (ioctx *IOContext) ListOmapValues(oid string, startAfter string, filterPrefix string, maxReturn int64, ...) error
- func (ioctx *IOContext) ListXattrs(oid string) (map[string][]byte, error)
- func (ioctx *IOContext) LockExclusive(oid, name, cookie, desc string, duration time.Duration, flags *byte) (int, error)
- func (ioctx *IOContext) LockShared(oid, name, cookie, tag, desc string, duration time.Duration, flags *byte) (int, error)
- func (ioctx *IOContext) Pointer() uintptr
- func (ioctx *IOContext) Read(oid string, data []byte, offset uint64) (int, error)
- func (ioctx *IOContext) RmOmapKeys(oid string, keys []string) error
- func (ioctx *IOContext) RmXattr(oid string, name string) error
- func (ioctx *IOContext) SetNamespace(namespace string)
- func (ioctx *IOContext) SetOmap(oid string, pairs map[string][]byte) error
- func (ioctx *IOContext) SetXattr(object string, name string, data []byte) error
- func (ioctx *IOContext) Stat(object string) (stat ObjectStat, err error)
- func (ioctx *IOContext) Truncate(oid string, size uint64) error
- func (ioctx *IOContext) Unlock(oid, name, cookie string) (int, error)
- func (ioctx *IOContext) Write(oid string, data []byte, offset uint64) error
- func (ioctx *IOContext) WriteFull(oid string, data []byte) error
- type Iter
- type IterToken
- type LockInfo
- type ObjectListFunc
- type ObjectStat
- type OmapListFunc
- type PoolStat
- type RadosError
Constants ¶
This section is empty.
Variables ¶
var (
ErrNotConnected = errors.New("RADOS not connected")
)
var RadosAllNamespaces = C.LIBRADOS_ALL_NSPACES
var RadosErrorNotFound = RadosError(-C.ENOENT)
var RadosErrorPermissionDenied = RadosError(-C.EPERM)
Functions ¶
func GetRadosError ¶
Types ¶
type ClusterStat ¶
ClusterStat represents Ceph cluster statistics.
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn is a connection handle to a Ceph cluster.
func NewConn ¶
NewConn creates a new connection object. It returns the connection and an error, if any.
func NewConnWithClusterAndUser ¶
NewConnWithClusterAndUser creates a new connection object for a specific cluster and username. It returns the connection and an error, if any.
func NewConnWithUser ¶
NewConnWithUser creates a new connection object with a custom username. It returns the connection and an error, if any.
func (*Conn) Connect ¶
Connect establishes a connection to a RADOS cluster. It returns an error, if any.
func (*Conn) DeletePool ¶
DeletePool deletes a pool and all the data inside the pool.
func (*Conn) GetClusterStats ¶
func (c *Conn) GetClusterStats() (stat ClusterStat, err error)
GetClusterStats returns statistics about the cluster associated with the connection.
func (*Conn) GetConfigOption ¶
GetConfigOption returns the value of the Ceph configuration option identified by the given name.
func (*Conn) GetFSID ¶
GetFSID returns the fsid of the cluster as a hexadecimal string. The fsid is a unique identifier of an entire Ceph cluster.
func (*Conn) GetInstanceID ¶
GetInstanceID returns a globally unique identifier for the cluster connection instance.
func (*Conn) GetPoolByID ¶
GetPoolByID returns the name of a pool by a given ID.
func (*Conn) GetPoolByName ¶
GetPoolByName returns the ID of the pool with a given name.
func (*Conn) MonCommand ¶
MonCommand sends a command to one of the monitors
func (*Conn) MonCommandWithInputBuffer ¶
func (c *Conn) MonCommandWithInputBuffer(args, inputBuffer []byte) (buffer []byte, info string, err error)
MonCommandWithInputBuffer sends a command to one of the monitors, with an input buffer
func (*Conn) PGCommandWithInputBuffer ¶
func (c *Conn) PGCommandWithInputBuffer(pgid []byte, args [][]byte, inputBuffer []byte) (buffer []byte, info string, err error)
PGCommand sends a command to one of the PGs, with an input buffer
func (*Conn) ParseCmdLineArgs ¶
ParseCmdLineArgs configures the connection from command line arguments.
func (*Conn) ParseDefaultConfigEnv ¶
ParseDefaultConfigEnv configures the connection from the default Ceph environment variable(s).
func (*Conn) PingMonitor ¶
PingMonitor sends a ping to a monitor and returns the reply.
func (*Conn) ReadConfigFile ¶
ReadConfigFile configures the connection using a Ceph configuration file.
func (*Conn) ReadDefaultConfigFile ¶
ReadDefaultConfigFile configures the connection using a Ceph configuration file located at default locations.
func (*Conn) SetConfigOption ¶
SetConfigOption sets the value of the configuration option identified by the given name.
func (*Conn) WaitForLatestOSDMap ¶
WaitForLatestOSDMap blocks the caller until the latest OSD map has been retrieved.
type IOContext ¶
type IOContext struct {
// contains filtered or unexported fields
}
IOContext represents a context for performing I/O within a pool.
func (*IOContext) Append ¶
Append appends len(data) bytes to the object with key oid. The object is appended with the provided data. If the object exists, it is atomically appended to. It returns an error, if any.
func (*IOContext) BreakLock ¶
Releases a shared or exclusive lock on an object, which was taken by the specified client.
func (*IOContext) Destroy ¶
func (ioctx *IOContext) Destroy()
Destroy informs librados that the I/O context is no longer in use. Resources associated with the context may not be freed immediately, and the context should not be used again after calling this method.
func (*IOContext) GetAllOmapValues ¶
func (ioctx *IOContext) GetAllOmapValues(oid string, startAfter string, filterPrefix string, iteratorSize int64) (map[string][]byte, error)
Fetch all the keys and their values from an omap and returns then as a map `startAfter`: retrieve only the keys after this specified one `filterPrefix`: retrieve only the keys beginning with this prefix `iteratorSize`: internal number of keys to fetch during a read operation
func (*IOContext) GetOmapValues ¶
func (ioctx *IOContext) GetOmapValues(oid string, startAfter string, filterPrefix string, maxReturn int64) (map[string][]byte, error)
Fetch a set of keys and their values from an omap and returns then as a map `startAfter`: retrieve only the keys after this specified one `filterPrefix`: retrieve only the keys beginning with this prefix `maxReturn`: retrieve no more than `maxReturn` key/value pairs
func (*IOContext) GetPoolName ¶
GetPoolName returns the name of the pool associated with the I/O context.
func (*IOContext) GetPoolStats ¶
Stat returns a set of statistics about the pool associated with this I/O context.
func (*IOContext) GetXattr ¶
GetXattr gets an xattr with key `name`, it returns the length of the key read or an error if not successful
func (*IOContext) Iter ¶
Iter returns a Iterator object that can be used to list the object names in the current pool
func (*IOContext) ListLockers ¶
List clients that have locked the named object lock and information about the lock. The number of bytes required in each buffer is put in the corresponding size out parameter. If any of the provided buffers are too short, -ERANGE is returned after these sizes are filled in.
func (*IOContext) ListObjects ¶
func (ioctx *IOContext) ListObjects(listFn ObjectListFunc) error
ListObjects lists all of the objects in the pool associated with the I/O context, and called the provided listFn function for each object, passing to the function the name of the object. Call SetNamespace with RadosAllNamespaces before calling this function to return objects from all namespaces
func (*IOContext) ListOmapValues ¶
func (ioctx *IOContext) ListOmapValues(oid string, startAfter string, filterPrefix string, maxReturn int64, listFn OmapListFunc) error
Iterate on a set of keys and their values from an omap `startAfter`: iterate only on the keys after this specified one `filterPrefix`: iterate only on the keys beginning with this prefix `maxReturn`: iterate no more than `maxReturn` key/value pairs `listFn`: the function called at each iteration
func (*IOContext) ListXattrs ¶
function that lists all the xattrs for an object, since xattrs are a k-v pair, this function returns a map of k-v pairs on success, error code on failure
func (*IOContext) LockExclusive ¶
func (ioctx *IOContext) LockExclusive(oid, name, cookie, desc string, duration time.Duration, flags *byte) (int, error)
LockExclusive takes an exclusive lock on an object.
func (*IOContext) LockShared ¶
func (ioctx *IOContext) LockShared(oid, name, cookie, tag, desc string, duration time.Duration, flags *byte) (int, error)
LockShared takes a shared lock on an object.
func (*IOContext) Read ¶
Read reads up to len(data) bytes from the object with key oid starting at byte offset offset. It returns the number of bytes read and an error, if any.
func (*IOContext) RmOmapKeys ¶
RmOmapKeys removes the specified `keys` from the omap `oid`
func (*IOContext) SetNamespace ¶
SetNamespace sets the namespace for objects within this IO context (pool). Setting namespace to a empty or zero length string sets the pool to the default namespace.
func (*IOContext) Stat ¶
func (ioctx *IOContext) Stat(object string) (stat ObjectStat, err error)
Stat returns the size of the object and its last modification time
func (*IOContext) Truncate ¶
Truncate resizes the object with key oid to size size. If the operation enlarges the object, the new area is logically filled with zeroes. If the operation shrinks the object, the excess data is removed. It returns an error, if any.
type Iter ¶
type Iter struct {
// contains filtered or unexported fields
}
func (*Iter) Close ¶
func (iter *Iter) Close()
Closes the iterator cursor on the server. Be aware that iterators are not closed automatically at the end of iteration.
func (*Iter) Namespace ¶
Namespace returns the namespace associated with the current value of the iterator (object name), after a successful call to Next.
func (*Iter) Next ¶
Next retrieves the next object name in the pool/namespace iterator. Upon a successful invocation (return value of true), the Value method should be used to obtain the name of the retrieved object name. When the iterator is exhausted, Next returns false. The Err method should used to verify whether the end of the iterator was reached, or the iterator received an error.
Example:
iter := pool.Iter() defer iter.Close() for iter.Next() { fmt.Printf("%v\n", iter.Value()) } return iter.Err()
type LockInfo ¶
type LockInfo struct { NumLockers int Exclusive bool Tag string Clients []string Cookies []string Addrs []string }
LockInfo represents information on a current Ceph lock
type ObjectListFunc ¶
type ObjectListFunc func(oid string)
ObjectListFunc is the type of the function called for each object visited by ListObjects.
type ObjectStat ¶
type ObjectStat struct { // current length in bytes Size uint64 // last modification time ModTime time.Time }
ObjectStat represents an object stat information
type OmapListFunc ¶
OmapListFunc is the type of the function called for each omap key visited by ListOmapValues
type PoolStat ¶
type PoolStat struct { // space used in bytes Num_bytes uint64 // space used in KB Num_kb uint64 // number of objects in the pool Num_objects uint64 // number of clones of objects Num_object_clones uint64 // num_objects * num_replicas Num_object_copies uint64 Num_objects_missing_on_primary uint64 // number of objects found on no OSDs Num_objects_unfound uint64 // number of objects replicated fewer times than they should be // (but found on at least one OSD) Num_objects_degraded uint64 Num_rd uint64 Num_rd_kb uint64 Num_wr uint64 Num_wr_kb uint64 }
PoolStat represents Ceph pool statistics.