Here is a small snippet of code that I use on applications deployed on Google AppEngine to inform users that the application is in maintenance mode.
It usually happen when the AppEngine team put the datastore in read-only mode for maintenance purpose but other capabilities can be tested as well.
def newview(request, *args, **kwargs):
from google.appengine.api import capabilities
datastore_write_enabled = capabilities.CapabilitySet('datastore_v3', capabilities=['write']).is_enabled()
return view(request, *args, **kwargs)
from django.shortcuts import render_to_response
from django.template import RequestContext
return render_to_response('maintenance.html', context_instance=RequestContext(request))
This is a python decorator and you can use it to decorate views that require write access to the datastore. For example:
# Do something that requires to write in the database
You will need to create a Django template named
maintenance.html to display a warning to your users. Mine looks like this:
<p>The LibraryThing for Facebook application is currently
in maintenance mode and some operations are temporarily unavailable.</p>
<p>Thanks for trying back later. Sorry for the inconvenience.</p>