From 0cd00e888efe19b9dca7339619ad31d1b0e89499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 12 Apr 2019 12:59:12 +0300 Subject: [PATCH] MXS-2349: Add socket support for maxctrl A server can now be created with a socket. --- maxctrl/lib/create.js | 13 +++++++++---- maxctrl/test/createdestroy.js | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/maxctrl/lib/create.js b/maxctrl/lib/create.js index 45d869579..b1e1247f5 100644 --- a/maxctrl/lib/create.js +++ b/maxctrl/lib/create.js @@ -83,12 +83,12 @@ exports.builder = function(yargs) { describe: 'Link the created server to these monitors', type: 'array' }) - .command('server ', 'Create a new server', function(yargs) { + .command('server [port]', 'Create a new server', function(yargs) { return yargs.epilog('The created server will not be used by any services or monitors ' + 'unless the --services or --monitors options are given. The list ' + 'of servers a service or a monitor uses can be altered with the ' + '`link` and `unlink` commands.') - .usage('Usage: create server ') + .usage('Usage: create server [port]') }, function(argv) { var server = { 'data': { @@ -96,8 +96,6 @@ exports.builder = function(yargs) { 'type': 'servers', 'attributes': { 'parameters': { - 'address': argv.host, - 'port': argv.port, 'protocol': argv.protocol, 'authenticator': argv.authenticator, 'authenticator_options': argv.auth_options, @@ -111,6 +109,13 @@ exports.builder = function(yargs) { } } + if (argv.host[0] == '/') { + server.data.attributes.parameters.socket = argv.host + } else { + server.data.attributes.parameters.address = argv.host + server.data.attributes.parameters.port = argv.port + } + if (argv.services) { for (i = 0; i < argv.services.length; i++) { _.set(server, 'data.relationships.services.data[' + i + ']', {id: argv.services[i], type: 'services'}) diff --git a/maxctrl/test/createdestroy.js b/maxctrl/test/createdestroy.js index bde20b181..c623f3628 100644 --- a/maxctrl/test/createdestroy.js +++ b/maxctrl/test/createdestroy.js @@ -104,6 +104,12 @@ describe("Create/Destroy Commands", function() { .should.be.rejected }) + it('create and destroy server with socket', function() { + return verifyCommand('create server server7 /tmp/server.sock', 'servers/server7') + .then(() => doCommand('destroy server server7')) + .should.be.fulfilled + }) + it('create listener', function() { return verifyCommand('create listener RW-Split-Router my-listener 4567', 'services/RW-Split-Router/listeners/my-listener')