def METHOD_NAME():
    """The main function. Hier spielt die Musik.
    """
    # parse the command line, exit with UNKNOWN if it fails
    try:
        args = parse_args()
    except SystemExit:
        sys.exit(STATE_UNKNOWN)
    if not args.URL.startswith('http'):
        lib.base.cu('--url parameter has to start with "http://" or https://".')
    # fetch data
    if args.TEST is None:
        result = lib.huawei.get_data('controller', args)
    else:
        # do not call the command, put in test data
        stdout, stderr, retc = lib.test.test(args.TEST)
        result = json.loads(stdout)
    # no valuable result?
    if not result:
        lib.base.cu('Got no valuable response from {}.'.format(args.URL))
    if result.get('error').get('code') != 0:
        lib.base.oao('{} {}'.format(
            result.get('error').get('description'),
            result.get('error').get('suggestion'),
        ), STATE_UNKNOWN)
    # init some vars
    msg = ''
    state = STATE_OK
    perfdata = ''
    # analyze the data
    table_data = []
    for controller in result.get('data'):
        health_state = STATE_OK
        if lib.huawei.get_health_status(controller.get('HEALTHSTATUS')) != 'Normal (1)':
            health_state = STATE_CRIT
            state = lib.base.get_worst(state, health_state)
        running_state = STATE_OK
        if lib.huawei.get_running_status(controller.get('RUNNINGSTATUS')) != 'Normal (1)' and \
           lib.huawei.get_running_status(controller.get('RUNNINGSTATUS')) != 'Running (2)' and \
           lib.huawei.get_running_status(controller.get('RUNNINGSTATUS')) != 'Online (27)':
            running_state = STATE_WARN
            state = lib.base.get_worst(state, running_state)
        controller['UUID'] = lib.huawei.get_uuid(controller)
        controller['TEMPERATURE'] = int(controller['TEMPERATURE'])
        perfdata += lib.base.get_perfdata('{}_HEALTHSTATUS'.format(controller['UUID']), controller['HEALTHSTATUS'], None, None, 2, 0, 2)
        perfdata += lib.base.get_perfdata('{}_RUNNINGSTATUS'.format(controller['UUID']), controller['RUNNINGSTATUS'], None, None, None, 0, None)
        perfdata += lib.base.get_perfdata('{}_CPUUSAGE'.format(controller['UUID']), controller['CPUUSAGE'], '%', None, None, 0, 100)
        perfdata += lib.base.get_perfdata('{}_DIRTYDATARATE'.format(controller['UUID']), controller['DIRTYDATARATE'], '%', None, None, 0, 100)
        perfdata += lib.base.get_perfdata('{}_LIGHT_STATUS'.format(controller['UUID']), controller['LIGHT_STATUS'], None, None, None, 0, 2)
        perfdata += lib.base.get_perfdata('{}_MEMORYUSAGE'.format(controller['UUID']), controller['MEMORYUSAGE'], '%', None, None, 0, 100)
        perfdata += lib.base.get_perfdata('{}_TEMPERATURE'.format(controller['UUID']), controller['TEMPERATURE'], None, None, None, 0, None) if controller['TEMPERATURE'] > 0 else ''
        perfdata += lib.base.get_perfdata('{}_VOLTAGE'.format(controller['UUID']), controller['VOLTAGE'], None, None, None, 0, None)
        controller['health_state'] = lib.base.state2str(health_state, empty_ok=False)
        controller['running_state'] = lib.base.state2str(running_state, empty_ok=False)
        controller['ISMASTER'] = 'x' if controller['ISMASTER'] == 'true' else '-'
        controller['MODEL'] = lib.huawei.get_controller_model(controller['MODEL'])
        controller['ROLE'] = lib.huawei.get_role(controller['ROLE'])
        table_data.append(controller)
    if table_data:
        keys = ['UUID', 'LOCATION', 'MODEL', 'ROLE', 'ISMASTER', 'CPUUSAGE', 'MEMORYUSAGE', 'VOLTAGE', 'health_state', 'running_state']
        headers = ['UUID', 'Location', 'Model', 'Role', 'Master', 'CPU (%)', 'Mem (%)', 'Volt', 'Health', 'Running']
        msg += lib.base.get_table(table_data, keys, header=headers)
    msg += '\nFetched API {} {}'.format(
        result.get('counter', 0),
        lib.txt.pluralize('time', result.get('counter', 0),),
    )
    if state == STATE_CRIT:
        msg = 'There are critical errors.\n\n' + msg
    elif state == STATE_WARN:
        msg = 'There are warnings.\n\n' + msg
    else:
        msg = 'Everything is ok.\n\n' + msg
    # over and out
    lib.base.oao(msg, state, perfdata, always_ok=args.ALWAYS_OK)