183 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
 * 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')()
 | 
						|
 | 
						|
exports.command = 'show <command>'
 | 
						|
exports.desc = 'Show objects'
 | 
						|
exports.handler = function() {}
 | 
						|
exports.builder = function(yargs) {
 | 
						|
    yargs
 | 
						|
        .command('server <server>', 'Show server', function(yargs) {
 | 
						|
            return yargs.epilog('Show detailed information about a server. The `Parameters` ' +
 | 
						|
                                'field contains the currently configured parameters for this ' +
 | 
						|
                                'server. See `help alter server` for more details about altering ' +
 | 
						|
                                'server parameters.')
 | 
						|
                .usage('Usage: show server <server>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'servers/' + argv.server, [
 | 
						|
                    {'Server': 'id'},
 | 
						|
                    {'Address': 'attributes.parameters.address'},
 | 
						|
                    {'Port': 'attributes.parameters.port'},
 | 
						|
                    {'State': 'attributes.state'},
 | 
						|
                    {'Last Event': 'attributes.last_event'},
 | 
						|
                    {'Triggered At': 'attributes.triggered_at'},
 | 
						|
                    {'Services': 'relationships.services.data[].id'},
 | 
						|
                    {'Monitors': 'relationships.monitors.data[].id'},
 | 
						|
                    {'Master ID': 'attributes.master_id'},
 | 
						|
                    {'Node ID': 'attributes.node_id'},
 | 
						|
                    {'Slave Server IDs': 'attributes.slaves'},
 | 
						|
                    {'Statistics': 'attributes.statistics'},
 | 
						|
                    {'Parameters': 'attributes.parameters'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('service <service>', 'Show service', function(yargs) {
 | 
						|
            return yargs.epilog('Show detailed information about a service. The `Parameters` ' +
 | 
						|
                                'field contains the currently configured parameters for this ' +
 | 
						|
                                'service. See `help alter service` for more details about altering ' +
 | 
						|
                                'service parameters.')
 | 
						|
                .usage('Usage: show service <service>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'services/' + argv.service, [
 | 
						|
                    {'Service': 'id'},
 | 
						|
                    {'Router': 'attributes.router'},
 | 
						|
                    {'State': 'attributes.state'},
 | 
						|
                    {'Started At': 'attributes.started'},
 | 
						|
                    {'Current Connections': 'attributes.connections'},
 | 
						|
                    {'Total Connections': 'attributes.total_connections'},
 | 
						|
                    {'Servers': 'relationships.servers.data[].id'},
 | 
						|
                    {'Parameters': 'attributes.parameters'},
 | 
						|
                    {'Router Diagnostics': 'attributes.router_diagnostics'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('monitor <monitor>', 'Show monitor', function(yargs) {
 | 
						|
            return yargs.epilog('Show detailed information about a monitor. The `Parameters` ' +
 | 
						|
                                'field contains the currently configured parameters for this ' +
 | 
						|
                                'monitor. See `help alter monitor` for more details about altering ' +
 | 
						|
                                'monitor parameters.')
 | 
						|
                .usage('Usage: show monitor <monitor>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'monitors/' + argv.monitor, [
 | 
						|
                    {'Monitor': 'id'},
 | 
						|
                    {'State': 'attributes.state'},
 | 
						|
                    {'Servers': 'relationships.servers.data[].id'},
 | 
						|
                    {'Parameters': 'attributes.parameters'},
 | 
						|
                    {'Monitor Diagnostics': 'attributes.monitor_diagnostics'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('session <session>', 'Show session', function(yargs) {
 | 
						|
            return yargs.epilog('Show detailed information about a single session. ' +
 | 
						|
                                'The list of sessions can be retrieved with the ' +
 | 
						|
                                '`list sessions` command. The <session> is the session ' +
 | 
						|
                                'ID of a particular session.')
 | 
						|
                .usage('Usage: show session <session>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'sessions/' + argv.session, [
 | 
						|
                    {'Id': 'id'},
 | 
						|
                    {'Service': 'relationships.services.data[].id'},
 | 
						|
                    {'State': 'attributes.state'},
 | 
						|
                    {'User': 'attributes.user'},
 | 
						|
                    {'Host': 'attributes.remote'},
 | 
						|
                    {'Connected': 'attributes.connected'},
 | 
						|
                    {'Idle': 'attributes.idle'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('filter <filter>', 'Show filter', function(yargs) {
 | 
						|
            return yargs.epilog('The list of services that use this filter is show in the `Services` field.')
 | 
						|
                .usage('Usage: show filter <filter>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'filters/' + argv.filter, [
 | 
						|
                    {'Filter': 'id'},
 | 
						|
                    {'Module': 'attributes.module'},
 | 
						|
                    {'Services': 'relationships.services.data[].id'},
 | 
						|
                    {'Parameters': 'attributes.parameters'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('module <module>', 'Show loaded module', function(yargs) {
 | 
						|
            return yargs.epilog('This command shows all available parameters as well as ' +
 | 
						|
                                'detailed version information of a loaded module.')
 | 
						|
                .usage('Usage: show module <module>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'maxscale/modules/' + argv.module, [
 | 
						|
                    {'Module': 'id'},
 | 
						|
                    {'Type': 'attributes.module_type'},
 | 
						|
                    {'Version': 'attributes.version'},
 | 
						|
                    {'Maturity': 'attributes.maturity'},
 | 
						|
                    {'Description': 'attributes.description'},
 | 
						|
                    {'Parameters': 'attributes.parameters'},
 | 
						|
                    {'Commands': 'attributes.commands'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('maxscale', 'Show MaxScale information', function(yargs) {
 | 
						|
            return yargs.epilog('See `help alter maxscale` for more details about altering ' +
 | 
						|
                                'MaxScale parameters.')
 | 
						|
                .usage('Usage: show maxscale')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'maxscale', [
 | 
						|
                    {'Version': 'attributes.version'},
 | 
						|
                    {'Commit': 'attributes.commit'},
 | 
						|
                    {'Started At': 'attributes.started_at'},
 | 
						|
                    {'Activated At': 'attributes.activated_at'},
 | 
						|
                    {'Uptime': 'attributes.uptime'},
 | 
						|
                    {'Parameters': 'attributes.parameters'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('logging', 'Show MaxScale logging information', function(yargs) {
 | 
						|
            return yargs.epilog('See `help alter logging` for more details about altering ' +
 | 
						|
                                'logging parameters.')
 | 
						|
                .usage('Usage: show logging')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getResource(host, 'maxscale/logs', [
 | 
						|
                    {'Current Log File': 'attributes.log_file'},
 | 
						|
                    {'Enabled Log Levels': 'attributes.log_priorities'},
 | 
						|
                    {'Parameters': 'attributes.parameters'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .command('commands <module>', 'Show module commands of a module', function(yargs) {
 | 
						|
            return yargs.epilog('This command shows the parameters the command expects with ' +
 | 
						|
                                'the parameter descriptions.')
 | 
						|
                .usage('Usage: show commands <module>')
 | 
						|
        }, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return getSubCollection(host, 'maxscale/modules/' + argv.module, 'attributes.commands', [
 | 
						|
                    {'Command': 'id'},
 | 
						|
                    {'Parameters': 'attributes.parameters[].type'},
 | 
						|
                    {'Descriptions': 'attributes.parameters[].description'}
 | 
						|
                ])
 | 
						|
            })
 | 
						|
        })
 | 
						|
        .usage('Usage: show <command>')
 | 
						|
        .help()
 | 
						|
        .command('*', 'the default command', {}, function(argv) {
 | 
						|
            maxctrl(argv, function(host) {
 | 
						|
                return error('Unknown command. See output of `help show` for a list of commands.')
 | 
						|
            })
 | 
						|
        })
 | 
						|
}
 |