Import error for Log
[myslice.git] / manifoldapi / manifoldproxy.py
index 9385bfa..0f700bf 100644 (file)
@@ -10,8 +10,10 @@ from manifold.core.query        import Query
 from manifold.core.result_value import ResultValue
 from manifoldapi                import ManifoldAPI
 from manifoldresult             import ManifoldException
-from manifold.util.log          import Log
-from myslice.configengine       import ConfigEngine
+
+# from unfold.sessioncache import SessionCache
+
+from myslice.settings import config, logger
 
 # register activity
 import activity.slice
@@ -30,23 +32,23 @@ debug_empty=False
 # as well as 
 # static/js/manifold.js
 def proxy (request,format):
-    """the view associated with /manifold/proxy/ 
-with the query passed using POST"""
+    """the view associated with /manifold/proxy/ with the query passed using POST"""
     
     # expecting a POST
     if request.method != 'POST':
-        print "manifoldproxy.api: unexpected method %s -- exiting"%request.method
-        return 
+        logger.error("MANIFOLDPROXY unexpected method {} -- exiting".format(request.method))
+        return HttpResponse ({"ret":0}, content_type="application/json")
     # we only support json for now
     # if needed in the future we should probably cater for
     # format_in : how is the query encoded in POST
     # format_out: how to serve the results
     if format != 'json':
-        print "manifoldproxy.proxy: unexpected format %s -- exiting"%format
-        return HttpResponse ({"ret":0}, mimetype="application/json")
+        logger.error("MANIFOLDPROXY unexpected format {} -- exiting".format(format))
+        return HttpResponse ({"ret":0}, content_type="application/json")
     try:
         # translate incoming POST request into a query object
-        if debug: print 'manifoldproxy.proxy: request.POST',request.POST
+        #logger.debug("MANIFOLDPROXY request.POST {}".format(request.POST))
+
         manifold_query = Query()
         #manifold_query = ManifoldQuery()
         manifold_query.fill_from_POST(request.POST)
@@ -55,24 +57,22 @@ with the query passed using POST"""
         # We allow some requests to use the ADMIN user account
         if (manifold_query.get_from() == 'local:user' and manifold_query.get_action() == 'create') \
                 or (manifold_query.get_from() == 'local:platform' and manifold_query.get_action() == 'get'):
-            admin_user, admin_password = ConfigEngine().manifold_admin_user_password()
+            admin_user, admin_password = config.manifold_admin_user_password()
             manifold_api_session_auth = {'AuthMethod': 'password', 'Username': admin_user, 'AuthString': admin_password}
         else:
             if 'manifold' in request.session:
-                print '===> manifoldproxy.proxy: before auth', manifold_query
                 manifold_api_session_auth = request.session['manifold']['auth']
             else:
-                json_answer=json.dumps({'code':0,'value':[]})
-                return HttpResponse (json_answer, mimetype="application/json")
+            #manifold_api_session_auth = SessionCache().get_auth(request)
+            #if not manifold_api_session_auth:
+                return HttpResponse (json.dumps({'code':0,'value':[]}), content_type="application/json")
                 
         if debug_empty and manifold_query.action.lower()=='get':
-            json_answer=json.dumps({'code':0,'value':[]})
-            print "By-passing : debug_empty & 'get' request : returning a fake empty list"
-            return HttpResponse (json_answer, mimetype="application/json")
+            return HttpResponse (json.dumps({'code':0,'value':[]}), content_type="application/json")
                 
         # actually forward
         manifold_api= ManifoldAPI(auth=manifold_api_session_auth)
-        if debug: print '===> manifoldproxy.proxy: sending to backend', manifold_query
+
         # for the benefit of the python code, manifoldAPI raises an exception if something is wrong
         # however in this case we want to propagate the complete manifold result to the js world
 
@@ -83,13 +83,12 @@ with the query passed using POST"""
                 and isinstance(result['description'], (tuple, list, set, frozenset)):
             result [ 'description' ] = [ ResultValue.to_html (x) for x in result['description'] ]
         
-        print "=> MANIFOLD PROXY executing: " + manifold_query.action.lower() 
         #
         # register activity
         #
         # resource reservation
         if (manifold_query.action.lower() == 'update') :
-            print result['value'][0]
+            logger.debug(result['value'][0])
             if 'resource' in result['value'][0] :
                 for resource in result['value'][0]['resource'] :
                     activity.slice.resource(request, 
@@ -104,13 +103,13 @@ with the query passed using POST"""
         
         json_answer=json.dumps(result)
 
-        return HttpResponse (json_answer, mimetype="application/json")
+        return HttpResponse (json_answer, content_type="application/json")
 
-    except Exception,e:
-        print "** PROXY ERROR **",e
+    except Exception as e:
+        logger.error("MANIFOLDPROXY {}".format(e))
         import traceback
-        traceback.print_exc()
-        return HttpResponse ({"ret":0}, mimetype="application/json")
+        logger.error(traceback.format_exc())
+        return HttpResponse ({"ret":0}, content_type="application/json")
 
 #################### 
 # see CSRF_FAILURE_VIEW in settings.py
@@ -118,5 +117,5 @@ with the query passed using POST"""
 # this however turns out disappointing/not very informative
 failure_answer=[ "csrf_failure" ]
 def csrf_failure(request, reason=""):
-    print "CSRF failure with reason '%s'"%reason
-    return HttpResponseForbidden (json.dumps (failure_answer), mimetype="application/json")
+    logger.error("CSRF failure with reason '{}'".format(reason))
+    return HttpResponseForbidden (json.dumps (failure_answer), content_type="application/json")