<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def fetch_page(session, host):
 """ Perform the page fetch from an individual host. `session` - An aiohttp [client session](http://aiohttp.readthedocs.io/en/stable/client_reference.html#client-session) `host` - URL to fetch `return` tuple with the following: * The host parameter * A vague status string * Text response or an exception depending on status above """

    await asyncio.sleep(random.randint(0, 25) * 0.1)
    start = time.time()
    logger.info('Fetch from {}'.format(host))

    try:
        response = await session.get(host, allow_redirects=False)
    except aiohttp.ClientResponseError as err:
        # likely a 404 implying HTTP but no page
        # likely a 401 implying HTTP but no access
        # FIXME: for instance, a gateway
        # headers are available via err.headers()
        # https://multidict.readthedocs.io/en/stable/multidict.html#multidict.CIMultiDict
        results_tuple = (host, 'no page', err)
    except aiohttp.ClientConnectorError as err:
        # likely device at IP but no HTTP server
        results_tuple = (host, 'no http', err)
    except aiohttp.ServerConnectionError as err:
        # likely ServerTimeoutError implying no device at IP
        results_tuple = (host, 'no dev', err)
    except aiohttp.InvalidURL as err:
        # likely a malformed URL
        results_tuple = (host, 'no URL', err)
    # except Exception as err:
    #     # Generic trap for debug
    #     results_tuple = (host, 'unknown', err)
    else:
        try:
            text_response = await response.text()
        except aiohttp.ClientPayloadError as err:
            # trouble reading page TODO: anyway to recover?
            results_tuple = (host, 'no read', err)
        else:
            results_tuple = (host, 'found', text_response)
        response.close()

    logger.info('Recvd from {} after {:.2f}s'.format(host, time.time() - start))
    return results_tuple