From d9fdf3adc11a16f0c08455d364250fa3cb0d9252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 29 May 2020 09:27:13 +0300 Subject: [PATCH] MXS-3013: Add reload service MaxCtrl command The command currently reloads the users of a service but it can be used to reload other parts of it as well (e.g. encryption keys). --- maxctrl/lib/core.js | 1 + maxctrl/lib/reload.js | 34 ++++++++++++++++++++++++++++++++++ maxctrl/test/reload.js | 12 ++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 maxctrl/lib/reload.js create mode 100644 maxctrl/test/reload.js diff --git a/maxctrl/lib/core.js b/maxctrl/lib/core.js index 47b76b9f8..08721a208 100644 --- a/maxctrl/lib/core.js +++ b/maxctrl/lib/core.js @@ -110,6 +110,7 @@ program .command(require('./stop.js')) .command(require('./alter.js')) .command(require('./rotate.js')) + .command(require('./reload.js')) .command(require('./call.js')) .command(require('./cluster.js')) .command(require('./api.js')) diff --git a/maxctrl/lib/reload.js b/maxctrl/lib/reload.js new file mode 100644 index 000000000..c9034845e --- /dev/null +++ b/maxctrl/lib/reload.js @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020 MariaDB Corporation Ab + * + * Use of this software is governed by the Business Source License included + * in the LICENSE.TXT file and at www.mariadb.com/bsl11. + * + * Change Date: 2024-04-23 + * + * On the date above, in accordance with the Business Source License, use + * of this software will be governed by version 2 or later of the General + * Public License. + */ +require('./common.js')() + +exports.command = 'reload ' +exports.desc = 'Reload objects' +exports.handler = function() {} +exports.builder = function(yargs) { + yargs + .command('service ', 'Reloads the database users of this service', function(yargs) { + return yargs.usage('Usage: reload service ') + }, function(argv) { + maxctrl(argv, function(host){ + return doRequest(host, 'services/' + argv.service + '/reload', null, {method: 'POST'}) + }) + }) + .usage('Usage: reload ') + .help() + .command('*', 'the default command', {}, function(argv) { + maxctrl(argv, function(host) { + return error('Unknown command. See output of `help reload` for a list of commands.') + }) + }) +} diff --git a/maxctrl/test/reload.js b/maxctrl/test/reload.js new file mode 100644 index 000000000..23a8e86dd --- /dev/null +++ b/maxctrl/test/reload.js @@ -0,0 +1,12 @@ +require('../test_utils.js')() + +describe("Reload Commands", function() { + before(startMaxScale) + + it('reload service', function() { + return doCommand('reload service RW-Split-Router') + .should.be.fulfilled + }); + + after(stopMaxScale) +});