<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_sensors():
 """ collect and check all available sensors """


    all_sensors = walk_data(sess, oid_description, helper)[0]
    all_status = walk_data(sess, oid_status, helper)[0]

    # here we zip all index and descriptions to have a list like
    # [('Fan Sensor', '2'), ('Power Supply Sensor', '4')]
    # we are doomed if the lists do not have the same length ...  but that should never happen ... hopefully
    zipped = zip(all_sensors, all_status)

    for sensor in zipped:
        description = sensor[0]
        status = sensor[1]
        # translate the value to human readable
        try:
            status_string = senor_status_table[status]
        except KeyError:
            # if we receive an invalid value, we don't want to crash... 
            helper.exit(summary="received an undefined value from device: " + status, exit_code=unknown, perfdata='')

        # for each sensor the summary is added like: Fan Sensor: good
        helper.add_summary("%s: %s" % (description, status_string))

        # set the status
        if status == "2":
            helper.status(critical)
        if status == "3":
            helper.status(warning)