def get_state(user): s = deserialize_entities(memcache.get("state-%s" % user.key().name())) if s is None: query = State.all() query.ancestor(user) query.filter("finished =", None) query.filter("started >", datetime.now() - STATE_AGE) s = query.get() return s
def deletestate(): try: user_key = request.headers.get("X-SecondLife-Owner-Key") user = get_user(user_key) query = State.all() query.ancestor(user) query.filter("finished =", None) for s in query: s.finished = datetime.now() if s.state == "SAIL": s.course.finished += 1 s.course.put() elif s.state == "EDIT": s.course.version += 1 s.course.put() s.put() memcache.delete("state-" + user_key) return Response() except db.Timeout: msg = "\nState was not deleted. The database timed out." logging.error(msg) return Response(msg, status=500) except CapabilityDisabledError: msg = "\nState was not deleted. Database could not be written to." logging.error(msg) return Response(msg, status=500) except TransactionFailedError: msg = "\nState was not deleted. 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 deleted. %s." % e, status=500)