X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fmanifoldproxy.py;h=d0636c88fcf8b4fb8ff9c7fea121fbb07aedb555;hb=57c5bcefb1eac66d1db27db28a0c6d3b3b52a407;hp=4bce287e41ec0b9522204b696ba183b4407138d8;hpb=40978b1456a978c7ea8e61ab9f72f368c7b9d53d;p=myslice.git diff --git a/manifold/manifoldproxy.py b/manifold/manifoldproxy.py index 4bce287e..d0636c88 100644 --- a/manifold/manifoldproxy.py +++ b/manifold/manifoldproxy.py @@ -6,10 +6,18 @@ from django.http import HttpResponse, HttpResponseForbidden from manifold.manifoldquery import ManifoldQuery from manifold.manifoldapi import ManifoldAPI +debug=False +debug=True + # add artificial delay in s debug_spin=0 #debug_spin=1 +# turn this on if you want the fastest possible (locally cached) feedback +# beware that this is very rough though... +work_offline=False +#work_offline=True + # this view is what the javascript talks to when it sends a query # see also # myslice/urls.py @@ -32,18 +40,40 @@ with the query passed using POST""" return try: # translate incoming POST request into a query object + if debug: print 'manifoldproxy.proxy: request.POST',request.POST manifold_query = ManifoldQuery() - manifold_query.fill_from_dict(request.POST) + manifold_query.fill_from_POST(request.POST) + offline_filename="offline-%s-%s.json"%(manifold_query.action,manifold_query.subject) # retrieve session for request manifold_api_session_auth = request.session['manifold']['auth'] + ### patch : return the latest one.. + if work_offline: + # if that won't work then we'll try to update anyways + try: + with (file(offline_filename,"r")) as f: + json_answer=f.read() + print "By-passing : using contents from %s"%offline_filename + return HttpResponse (json_answer, mimetype="application/json") + except: + import traceback + traceback.print_exc() + print "PROCEEDING" + pass + # actually forward manifold_api= ManifoldAPI(auth=manifold_api_session_auth) + if debug: print 'manifoldproxy.proxy: sending to backend', manifold_query answer=manifold_api.send_manifold_query (manifold_query) + if debug: print 'manifoldproxy.proxy: received from backend with code', answer['code'] + json_answer=json.dumps(answer) + if (debug): + with (file(offline_filename,"w")) as f: + f.write(json_answer) if debug_spin: import time time.sleep(debug_spin) - # return json-encoded answer - return HttpResponse (json.dumps(answer), mimetype="application/json") + return HttpResponse (json_answer, mimetype="application/json") + except: import traceback traceback.print_exc()