2010-02-17 13 views
13

Czy istnieje sposób na uruchomienie serwera deweloperskiego aparatu aplikacji w trybie tylko do odczytu w celu symulacji zaplanowanej konserwacji przez Google, która umieszcza magazyn danych w trybie tylko do odczytu?App Engine SDK DevServer Tryb tylko do odczytu?

Gracefully Degrading During Scheduled Maintenance

+2

+1: ciekawe pytanie! Może zgłosisz "problem" do narzędzia do śledzenia problemów z GAE? – jldupont

+0

Bardzo wnikliwa obserwacja. Być może Nick Johnson zauważy to i pomoże w szybkim śledzeniu? Proszę? –

+2

Istnieje problem GAE # 1811: Zezwalaj administratorom użytkowników na wyłączanie możliwości testowania, co jest bardzo ważne z tego samego powodu i nie wygląda na to, że istnieje jeszcze rozwiązanie. Mamy nadzieję, że Google uczyni to priorytetem. –

Odpowiedz

2

Szkoda, że ​​nie było wyboru, które sprawiają, że magazyn danych tylko do odczytu. Ten hack wydaje się robić to, czego potrzebuję. Umieść następujący w głównym obsługi:

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

Stwierdzono tutaj: http://groups.google.com/group/google-appengine/msg/51db9d51401715ca

+0

Wygląda na to dobre rozwiązanie, ale jeszcze go nie testowałem. Ostatnio Nick Johnson opublikował post na ten temat: http://blog.notdot.net/2010/03/Handling-downtime-The-capabilities-API-and-testing Wchodzi głębiej w możliwości API Capabilities dla haków. –