<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def atlas_peer_ping( peer_hostport, timeout=None, peer_table=None ):
 """ Ping a host Return True if alive Return False if not """

    
    if timeout is None:
        timeout = atlas_ping_timeout()

    assert not atlas_peer_table_is_locked_by_me()

    host, port = url_to_host_port( peer_hostport )
    RPC = get_rpc_client_class()
    rpc = RPC( host, port, timeout=timeout )

    log.debug("Ping %s" % peer_hostport)

    ret = False
    try:
        res = blockstack_ping( proxy=rpc ) 
        if 'error' not in res:
            ret = True

    except (socket.timeout, socket.gaierror, socket.herror, socket.error), se:
        atlas_log_socket_error( "ping(%s)" % peer_hostport, peer_hostport, se )
        pass

    except Exception, e:
        log.exception(e)
        pass

    # update health
    with AtlasPeerTableLocked(peer_table) as ptbl:
        atlas_peer_update_health( peer_hostport, ret, peer_table=ptbl )

    return ret