From bb5b83bf7b30df876e0175cdc449ebbefe369321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Sun, 2 Jul 2017 09:34:08 +0300 Subject: [PATCH] MXS-1300: Add enable/disable command The enable/disable commands allow logging options and UNIX admin accounts to be enabled and disabled. --- client/maxctrl/lib/disable.js | 48 +++++++++++++++++++++++++++++++ client/maxctrl/lib/enable.js | 54 +++++++++++++++++++++++++++++++++++ client/maxctrl/maxctrl.js | 2 ++ 3 files changed, 104 insertions(+) create mode 100644 client/maxctrl/lib/disable.js create mode 100644 client/maxctrl/lib/enable.js diff --git a/client/maxctrl/lib/disable.js b/client/maxctrl/lib/disable.js new file mode 100644 index 000000000..79a4657a9 --- /dev/null +++ b/client/maxctrl/lib/disable.js @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016 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: 2020-01-01 + * + * 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')() + +const log_levels = [ + 'debug', + 'info', + 'notice', + 'warning' +] + +exports.command = 'disable ' +exports.desc = 'Disable functionality' +exports.handler = function() {} +exports.builder = function(yargs) { + yargs + .command('log-priority ', 'Disable log priority [warning|notice|info|debug]', {}, function(argv) { + if (log_levels.indexOf(argv.log) != -1) { + updateValue('maxscale/logs', 'data.attributes.parameters.log_' + argv.log, false) + } else { + logError('Invalid log priority: ' + argv.log); + } + }) + .command('maxlog', 'Disable MaxScale logging', {}, function(argv) { + updateValue('maxscale/logs', 'data.attributes.parameters.maxlog', false) + }) + .command('syslog', 'Disable syslog logging', {}, function(argv) { + updateValue('maxscale/logs', 'data.attributes.parameters.syslog', false) + }) + .command('account ', 'Disable a Linux user account from administrative use', {}, function(argv) { + doRequest('users/unix/' + argv.name, null, { method: 'DELETE'}) + }) + .usage('Usage: disable ') + .help() + .command('*', 'the default command', {}, () => { + console.log('Unknown command. See output of `help disable` for a list of commands.') + }) +} diff --git a/client/maxctrl/lib/enable.js b/client/maxctrl/lib/enable.js new file mode 100644 index 000000000..c6bcf8a92 --- /dev/null +++ b/client/maxctrl/lib/enable.js @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016 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: 2020-01-01 + * + * 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')() + +const log_levels = [ + 'debug', + 'info', + 'notice', + 'warning' +] + +exports.command = 'enable ' +exports.desc = 'Enable functionality' +exports.handler = function() {} +exports.builder = function(yargs) { + yargs + .command('log-priority ', 'Enable log priority [warning|notice|info|debug]', {}, function(argv) { + if (log_levels.indexOf(argv.log) != -1) { + updateValue('maxscale/logs', 'data.attributes.parameters.log_' + argv.log, true) + } else { + logError('Invalid log priority: ' + argv.log); + } + }) + .command('maxlog', 'Enable MaxScale logging', {}, function(argv) { + updateValue('maxscale/logs', 'data.attributes.parameters.maxlog', true) + }) + .command('syslog', 'Enable syslog logging', {}, function(argv) { + updateValue('maxscale/logs', 'data.attributes.parameters.syslog', true) + }) + .command('account ', 'Activate a Linux user account for administrative use', {}, function(argv) { + var req_body = { + data: { + id: argv.name, + type: 'unix' + } + } + doRequest('users/unix', null, { method: 'POST', body: req_body}) + }) + .usage('Usage: enable ') + .help() + .command('*', 'the default command', {}, () => { + console.log('Unknown command. See output of `help enable` for a list of commands.') + }) +} diff --git a/client/maxctrl/maxctrl.js b/client/maxctrl/maxctrl.js index 3290337bc..10306973d 100644 --- a/client/maxctrl/maxctrl.js +++ b/client/maxctrl/maxctrl.js @@ -54,6 +54,8 @@ program .command(require('./lib/show.js')) .command(require('./lib/set.js')) .command(require('./lib/clear.js')) + .command(require('./lib/enable.js')) + .command(require('./lib/disable.js')) .help() .demandCommand(1, 'At least one command is required') .command('*', 'the default command', {}, () => {