MXS-2349: Add socket support for maxctrl

A server can now be created with a socket.
This commit is contained in:
Markus Mäkelä 2019-04-12 12:59:12 +03:00
parent ddf004b733
commit 0cd00e888e
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
2 changed files with 15 additions and 4 deletions

View File

@ -83,12 +83,12 @@ exports.builder = function(yargs) {
describe: 'Link the created server to these monitors',
type: 'array'
})
.command('server <name> <host> <port>', 'Create a new server', function(yargs) {
.command('server <name> <host|socket> [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 <name> <host> <port>')
.usage('Usage: create server <name> <host|socket> [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'})

View File

@ -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')