def setstate(): try: user_key = request.headers.get("X-SecondLife-Owner-Key") user = get_user(user_key) state = request.args.get("state") course_id = request.args.get("courseid") course = Course.get(Key(course_id)) s = State(parent=user, course=course, state=state, started=datetime.now()) s.put() memcache.set(key="state-%s" % user_key, value=serialize_entities(s), time=CACHE_TIME) return Response() except db.Timeout: msg = "\nState was not saved. The database timed out." logging.error(msg) return Response(msg, status=500) except CapabilityDisabledError: msg = "\nState was not saved. Database could not be written to." logging.error(msg) return Response(msg, status=500) except TransactionFailedError: msg = "\nState was not saved. Transaction failed." logging.error(msg) return Response(msg, status=500) except Exception, e: if DEBUG: print_exc() logging.error(str(e)) return Response("\nState was not saved. %s." % e, status=500)