------------------------------------------------------------ revno: 309 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell <[EMAIL PROTECTED]> branch nick: tridge timestamp: Thu 2007-05-17 10:48:43 +1000 message: merge shutdown control from ronnie modified: common/ctdb_client.c ctdb_client.c-20070411010216-3kd8v37k61steeya-1 common/ctdb_control.c ctdb_control.c-20070426122724-j6gkpiofhbwdin63-1 include/ctdb.h ctdb.h-20061117234101-o3qt14umlg9en8z0-11 include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13 tools/ctdb_control.c ctdb_control.c-20070426122705-9ehj1l5lu2gn9kuj-1 ------------------------------------------------------------ revno: 197.1.115 merged: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Ronnie Sahlberg <[EMAIL PROTECTED]> branch nick: ctdb timestamp: Thu 2007-05-17 10:45:31 +1000 message: add a control to shutdown/kill a node ------------------------------------------------------------ revno: 197.1.114 merged: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Ronnie Sahlberg <[EMAIL PROTECTED]> branch nick: ctdb timestamp: Wed 2007-05-16 18:44:51 +1000 message: merge from tridge ------------------------------------------------------------ revno: 197.1.113 merged: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Ronnie Sahlberg <[EMAIL PROTECTED]> branch nick: ctdb timestamp: Wed 2007-05-16 14:45:43 +1000 message: remove a prototype we no longer need === modified file 'common/ctdb_client.c' --- a/common/ctdb_client.c 2007-05-16 08:10:26 +0000 +++ b/common/ctdb_client.c 2007-05-17 00:45:31 +0000 @@ -840,6 +840,27 @@ } /* + shutdown a remote ctdb node + */ +int ctdb_ctrl_shutdown(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode) +{ + int ret; + TDB_DATA data; + int32_t res; + + ZERO_STRUCT(data); + ret = ctdb_control(ctdb, destnode, 0, + CTDB_CONTROL_SHUTDOWN, CTDB_CTRL_FLAG_NOREPLY, data, + ctdb, &data, &res, &timeout, NULL); + if (ret != 0) { + DEBUG(0,(__location__ " ctdb_control for shutdown failed\n")); + return -1; + } + + return 0; +} + +/* get vnn map from a remote node */ int ctdb_ctrl_getvnnmap(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, TALLOC_CTX *mem_ctx, struct ctdb_vnn_map **vnnmap)
=== modified file 'common/ctdb_control.c' --- a/common/ctdb_control.c 2007-05-16 02:34:30 +0000 +++ b/common/ctdb_control.c 2007-05-17 00:45:31 +0000 @@ -240,6 +240,9 @@ CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t)); return ctdb_control_set_recmode(ctdb, indata, errormsg); + case CTDB_CONTROL_SHUTDOWN: + exit(10); + default: DEBUG(0,(__location__ " Unknown CTDB control opcode %u\n", opcode)); return -1; === modified file 'include/ctdb.h' --- a/include/ctdb.h 2007-05-16 01:12:28 +0000 +++ b/include/ctdb.h 2007-05-17 00:45:31 +0000 @@ -203,6 +203,8 @@ struct ctdb_status; int ctdb_ctrl_status(struct ctdb_context *ctdb, uint32_t destnode, struct ctdb_status *status); +int ctdb_ctrl_shutdown(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode); + struct ctdb_vnn_map; int ctdb_ctrl_getvnnmap(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, @@ -277,11 +279,6 @@ int ctdb_ctrl_cleardb(struct ctdb_context *ctdb, uint32_t destnode, TALLOC_CTX *mem_ctx, uint32_t dbid); /* - bump the rsn number for al records - */ -int ctdb_ctrl_bumprsn(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, TALLOC_CTX *mem_ctx, uint32_t dbid); - -/* write a record on a specific db (this implicitely updates dmaster of the record to locally be the vnn of the node where the control is executed on) */ int ctdb_ctrl_write_record(struct ctdb_context *ctdb, uint32_t destnode, TALLOC_CTX *mem_ctx, uint32_t dbid, TDB_DATA key, TDB_DATA data); === modified file 'include/ctdb_private.h' --- a/include/ctdb_private.h 2007-05-16 08:10:26 +0000 +++ b/include/ctdb_private.h 2007-05-17 00:45:31 +0000 @@ -353,6 +353,7 @@ CTDB_CONTROL_FREEZE, CTDB_CONTROL_THAW, CTDB_CONTROL_GET_VNN, + CTDB_CONTROL_SHUTDOWN, }; === modified file 'tools/ctdb_control.c' --- a/tools/ctdb_control.c 2007-05-12 11:25:26 +0000 +++ b/tools/ctdb_control.c 2007-05-17 00:45:31 +0000 @@ -57,6 +57,7 @@ " setrecmaster <vnn> <master_vnn> set recovery master\n" " attach <dbname> attach a database\n" " getpid <vnn> get the pid of a ctdb daemon\n" + " shutdown <vnn> shutdown a remote ctdb\n" " freeze <vnn|all> freeze a node\n" " thaw <vnn|all> thaw a node\n" ); @@ -344,6 +345,30 @@ } /* + shutdown a daemon + */ +static int control_shutdown(struct ctdb_context *ctdb, int argc, const char **argv) +{ + uint32_t vnn; + int ret; + + + if (argc < 1) { + usage(); + } + + vnn = strtoul(argv[0], NULL, 0); + + ret = ctdb_ctrl_shutdown(ctdb, timeval_current_ofs(1, 0), vnn); + if (ret != 0) { + printf("Unable to shutdown node %u\n", vnn); + return ret; + } + + return 0; +} + +/* display recovery mode of a remote node */ static int control_getrecmode(struct ctdb_context *ctdb, int argc, const char **argv) @@ -973,6 +998,7 @@ { "attach", control_attach }, { "dumpmemory", control_dumpmemory }, { "getpid", control_getpid }, + { "shutdown", control_shutdown }, { "freeze", control_freeze }, { "thaw", control_thaw }, };