diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-12-02 12:51:37 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-12-16 08:08:32 +0100 |
commit | 0e436b46c6051fed5a4d854f993bb635919700f1 (patch) | |
tree | d5275e1b773e7df6b8d95dd1d1065bb4ec5ccce4 /ctdb/client | |
parent | f1f0af2b670fba2a02802266183d3b0136cbf72b (diff) | |
download | samba-0e436b46c6051fed5a4d854f993bb635919700f1.tar.gz samba-0e436b46c6051fed5a4d854f993bb635919700f1.tar.xz samba-0e436b46c6051fed5a4d854f993bb635919700f1.zip |
client: add ctdb_ctrl_getdbhealth()
metze
(This used to be ctdb commit 5abe44d0113839d3a45c9a31d30856aa70c2ea1f)
Diffstat (limited to 'ctdb/client')
-rw-r--r-- | ctdb/client/ctdb_client.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c index b623bfe352..6158fe2410 100644 --- a/ctdb/client/ctdb_client.c +++ b/ctdb/client/ctdb_client.c @@ -1498,6 +1498,44 @@ int ctdb_ctrl_getdbname(struct ctdb_context *ctdb, struct timeval timeout, uint3 } /* + get the health status of a db + */ +int ctdb_ctrl_getdbhealth(struct ctdb_context *ctdb, + struct timeval timeout, + uint32_t destnode, + uint32_t dbid, TALLOC_CTX *mem_ctx, + const char **reason) +{ + int ret; + int32_t res; + TDB_DATA data; + + data.dptr = (uint8_t *)&dbid; + data.dsize = sizeof(dbid); + + ret = ctdb_control(ctdb, destnode, 0, + CTDB_CONTROL_DB_GET_HEALTH, 0, data, + mem_ctx, &data, &res, &timeout, NULL); + if (ret != 0 || res != 0) { + return -1; + } + + if (data.dsize == 0) { + (*reason) = NULL; + return 0; + } + + (*reason) = talloc_strndup(mem_ctx, (const char *)data.dptr, data.dsize); + if ((*reason) == NULL) { + return -1; + } + + talloc_free(data.dptr); + + return 0; +} + +/* create a database */ int ctdb_ctrl_createdb(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, |