2010-02-17 8 views
13

¿Hay alguna manera de ejecutar el servidor de desarrollo de motores de aplicaciones en modo de solo lectura para simular el mantenimiento programado por Google que pone el almacén de datos en modo de solo lectura?App Engine SDK DevServer Modo de solo lectura?

Gracefully Degrading During Scheduled Maintenance

+2

1: pregunta interesante! ¿Tal vez presentar un "problema" con el rastreador de problemas GAE? – jldupont

+0

Una observación muy astuta. Tal vez Nick Johnson se dará cuenta de esto y ayudará a conseguir esto de manera rápida? ¿Por favor? –

+2

Existe el problema GAE # 1811: Permitir a los administradores de usuarios deshabilitar las capacidades para las pruebas, lo cual es más o menos lo mismo y no parece que haya una solución todavía. Con suerte, Google hará de esto una prioridad. –

Respuesta

2

Me gustaría que hubiera una casilla de verificación que haría que el almacén de datos de sólo lectura. Este truco parece hacer lo que necesito. Ponga la siguiente en el controlador principal:

from google.appengine.runtime.apiproxy_errors import CapabilityDisabledError 
from google.appengine.api import apiproxy_stub_map 

def make_datastore_readonly(): 
    """Throw ReadOnlyError on put and delete operations.""" 
    def hook(service, call, request, response): 
    assert(service == 'datastore_v3') 
    if call in ('Put', 'Delete'): 
     raise CapabilityDisabledError('Datastore is in read-only mode') 
    apiproxy_stub_map.apiproxy.GetPreCallHooks().Push('readonly_datastore', hook, 'datastore_v3') 

def main(): 
    make_datastore_readonly() 

Se encontró aquí: http://groups.google.com/group/google-appengine/msg/51db9d51401715ca

+0

Parece una buena solución pero aún no la he probado. Nick Johnson recientemente hizo una publicación sobre este tema: http://blog.notdot.net/2010/03/Handling-downtime-The-capabilities-API-and-testing Se profundiza en la API de capacidades que utiliza para los ganchos. –