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)
    # fetch data
    if args.TEST is None:
        # build parameters for ipmitool
        cmd = 'ipmitool sensor list '
        if args.HOSTNAME:
            # use ipmi with remote parameters
            cmd += '-A {} '.format(args.V15AUTHTYPE) if args.INTERFACE == 'lan' else ''
            cmd += '-H {} '.format(args.HOSTNAME) if args.HOSTNAME else ''
            cmd += '-I {} '.format(args.INTERFACE) if args.INTERFACE else ''
            cmd += '-L {} '.format(args.PRIVLEVEL) if args.PRIVLEVEL else ''
            cmd += '-p {} '.format(args.PORT) if args.PORT else ''
            cmd += '-P {} '.format(args.PASSWORD) if args.PASSWORD else ''
            cmd += '-U {} '.format(args.USERNAME) if args.USERNAME else ''
        # execute the shell command and return its result and exit code
        stdout, stderr, retc = lib.base.coe(lib.shell.shell_exec(cmd))
    else:
        # do not call the command, put in test data
        stdout, stderr, retc = lib.test.test(args.TEST)
    if stderr or retc != 0:
        lib.base.cu(stderr)
    # init some vars
    msg = ''
    perfdata = ''
    state = STATE_OK
    sensor_counter = 0
    for sensor in stdout.splitlines():
        # split by '|'' and trim each column
        cols = [col.strip() for col in sensor.split('|')]
        if cols[COL_UOM] == 'discrete':
            # for now we support only 'Threshold' sensors - maybe enhance this in future
            # ['Chassis Intru', '0x0', 'discrete', '0x0000', 'na', 'na', 'na', 'na', 'na', 'na']
            continue
        # na - Not Available, ns - Not Specified
        if cols[COL_STATE] == 'na' or cols[COL_STATE] == 'ns':
            continue
        perfuom  = None
        perfwarn = None if cols[COL_UPPERNC] == 'na' else cols[COL_UPPERNC]
        perfcrit = None if cols[COL_UPPERCT] == 'na' else cols[COL_UPPERCT]
        perfmin  = None if cols[COL_LOWERNR] == 'na' else cols[COL_LOWERNR]
        perfmin  = 0    if perfmin and float(perfmin) > 0 else perfmin
        perfmax  = 100  if cols[COL_UOM] == 'percent' else None if cols[COL_UPPERNR] == 'na' else cols[COL_UPPERNR]
        perfdata += lib.base.get_perfdata(
            cols[COL_SENSOR].replace(' ', '_'),
            cols[COL_VALUE],
            perfuom,
            perfwarn,
            perfcrit,
            perfmin,
            perfmax,
        )
        sensor_counter += 1
        # ok
        if cols[COL_STATE] == 'ok':
            continue
        # nr - Non Recoverable
        if cols[COL_STATE] == 'nr':
            msg += '\n* {} ({} {}) is NON-RECOVERABLE. Hardware might be DAMAGED.'.format(cols[COL_SENSOR], cols[COL_VALUE], shorten_uom(cols[COL_UOM]))
            sensor_state = STATE_CRIT
        # cr - Critical
        if cols[COL_STATE] == 'cr':
            msg += '\n* {} ({} {}) is above/below a critical threshold.'.format(cols[COL_SENSOR], cols[COL_VALUE], shorten_uom(cols[COL_UOM]))
            sensor_state = STATE_CRIT
        # nc - Non Critical
        if cols[COL_STATE] == 'nc':
            msg += '\n* {} ({} {}) is above/below a non-critical threshold.'.format(cols[COL_SENSOR], cols[COL_VALUE], shorten_uom(cols[COL_UOM]))
            sensor_state = STATE_WARN
        state = lib.base.get_worst(sensor_state, state)
    if state == STATE_CRIT:
        msg = 'Checked {} {}. There are critical errors.'.format(sensor_counter, lib.txt.pluralize('sensor', sensor_counter)) + msg
    elif state == STATE_WARN:
        msg = 'Checked {} {}. There are warnings.'.format(sensor_counter, lib.txt.pluralize('sensor', sensor_counter)) + msg
    else:
        msg = 'Everything is ok, checked {} {}.'.format(sensor_counter, lib.txt.pluralize('sensor', sensor_counter)) + msg
    # over and out
    lib.base.oao(msg, state, perfdata)