2010-02-17 3 views
13

Gibt es eine Möglichkeit, den App Engine-Entwicklungsserver im schreibgeschützten Modus auszuführen, um die geplante Wartung durch Google zu simulieren, die den Datenspeicher in den schreibgeschützten Modus versetzt?App Engine SDK DevServer schreibgeschützter Modus?

Gracefully Degrading During Scheduled Maintenance

+2

+1: interessante Frage! Vielleicht ein "Problem" mit dem GAE Issue Tracker? – jldupont

+0

Eine sehr schlaue Beobachtung. Vielleicht wird Nick Johnson dies bemerken und helfen, dies zu beschleunigen? Bitte? –

+2

Es gibt GAE-Problem # 1811: Erlaube Benutzer-Admins, Fähigkeiten für das Testen zu deaktivieren, was ziemlich genau das Gleiche verlangt und es sieht nicht so aus, als ob es eine Lösung gibt. Hoffentlich wird Google dies zu einer Priorität machen. –

Antwort

2

Ich wünschte, es eine Checkbox war, der den Datenspeicher schreibgeschützt machen würde. Dieser Hack scheint zu tun, was ich brauche. Legen Sie die folgenden in Ihrem Haupt-Handler:

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() 

Es wurde hier gefunden: http://groups.google.com/group/google-appengine/msg/51db9d51401715ca

+0

Sieht aus wie eine gute Lösung, aber ich habe es noch nicht getestet. Nick Johnson hat vor kurzem einen Beitrag zu diesem Thema gemacht: http://blog.notdot.net/2010/03/Handling-downtime-The-capabilities-API-and-testing Er geht tiefer in die Capabilities API verwendet das für die Haken. –