mirror of https://github.com/ceph/go-ceph
rados: implement rados_getaddrs
This commit implements binding for rados_getaddrs. Includes a unit test. Signed-off-by: Robert Vasek <robert.vasek@clyso.com>
This commit is contained in:
parent
df3b6a95ad
commit
da1e31354b
|
@ -1159,6 +1159,12 @@
|
||||||
"comment": "Exec executes an OSD class method on an object.\nSee rados_exec() in the RADOS C api documentation for a general description.\n\nImplements:\n\n\tvoid rados_write_op_exec(rados_write_op_t write_op,\n\t const char *cls,\n\t const char *method,\n\t const char *in_buf,\n\t size_t in_len,\n\t int *prval)\n",
|
"comment": "Exec executes an OSD class method on an object.\nSee rados_exec() in the RADOS C api documentation for a general description.\n\nImplements:\n\n\tvoid rados_write_op_exec(rados_write_op_t write_op,\n\t const char *cls,\n\t const char *method,\n\t const char *in_buf,\n\t size_t in_len,\n\t int *prval)\n",
|
||||||
"added_in_version": "v0.29.0",
|
"added_in_version": "v0.29.0",
|
||||||
"expected_stable_version": "v0.31.0"
|
"expected_stable_version": "v0.31.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Conn.GetAddrs",
|
||||||
|
"comment": "GetAddrs returns the addresses of the RADOS session,\nsuitable for blocklisting.\n\nImplements:\n\n\tint rados_getaddrs(rados_t cluster, char **addrs)\n",
|
||||||
|
"added_in_version": "$NEXT_RELEASE",
|
||||||
|
"expected_stable_version": "$NEXT_RELEASE_STABLE"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,6 +19,7 @@ Name | Added in Version | Expected Stable Version |
|
||||||
ReadOpExecStep.Bytes | v0.29.0 | v0.31.0 |
|
ReadOpExecStep.Bytes | v0.29.0 | v0.31.0 |
|
||||||
ReadOp.Exec | v0.29.0 | v0.31.0 |
|
ReadOp.Exec | v0.29.0 | v0.31.0 |
|
||||||
WriteOp.Exec | v0.29.0 | v0.31.0 |
|
WriteOp.Exec | v0.29.0 | v0.31.0 |
|
||||||
|
Conn.GetAddrs | $NEXT_RELEASE | $NEXT_RELEASE_STABLE |
|
||||||
|
|
||||||
## Package: rbd
|
## Package: rbd
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
//go:build ceph_preview
|
||||||
|
|
||||||
|
package rados
|
||||||
|
|
||||||
|
// #cgo LDFLAGS: -lrados
|
||||||
|
// #include <stdlib.h>
|
||||||
|
// #include <rados/librados.h>
|
||||||
|
import "C"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetAddrs returns the addresses of the RADOS session,
|
||||||
|
// suitable for blocklisting.
|
||||||
|
//
|
||||||
|
// Implements:
|
||||||
|
//
|
||||||
|
// int rados_getaddrs(rados_t cluster, char **addrs)
|
||||||
|
func (c *Conn) GetAddrs() (string, error) {
|
||||||
|
var cAddrs *C.char
|
||||||
|
defer C.free(unsafe.Pointer(cAddrs))
|
||||||
|
|
||||||
|
ret := C.rados_getaddrs(c.cluster, &cAddrs)
|
||||||
|
if ret < 0 {
|
||||||
|
return "", getError(ret)
|
||||||
|
}
|
||||||
|
|
||||||
|
return C.GoString(cAddrs), nil
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
//go:build ceph_preview
|
||||||
|
|
||||||
|
package rados
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (suite *RadosTestSuite) TestGetAddrs() {
|
||||||
|
suite.SetupConnection()
|
||||||
|
|
||||||
|
addrs, err := suite.conn.GetAddrs()
|
||||||
|
assert.NoError(suite.T(), err)
|
||||||
|
assert.NotEmpty(suite.T(), addrs, "rados_getaddrs")
|
||||||
|
}
|
Loading…
Reference in New Issue