git://git.onelab.eu
/
myslice.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab
[myslice.git]
/
manifoldapi
/
manifoldproxy.py
diff --git
a/manifoldapi/manifoldproxy.py
b/manifoldapi/manifoldproxy.py
index
9385bfa
..
0f700bf
100644
(file)
--- a/
manifoldapi/manifoldproxy.py
+++ b/
manifoldapi/manifoldproxy.py
@@
-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.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
# register activity
import activity.slice
@@
-30,23
+32,23
@@
debug_empty=False
# as well as
# static/js/manifold.js
def proxy (request,format):
# 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':
# 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':
# 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},
mime
type="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
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)
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'):
# 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:
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:
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':
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)
# 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
# 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'] ]
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') :
#
# 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,
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)
json_answer=json.dumps(result)
- return HttpResponse (json_answer,
mime
type="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
import traceback
-
traceback.print_exc(
)
- return HttpResponse ({"ret":0},
mime
type="application/json")
+
logger.error(traceback.format_exc()
)
+ return HttpResponse ({"ret":0},
content_
type="application/json")
####################
# see CSRF_FAILURE_VIEW in settings.py
####################
# 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=""):
# 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),
mime
type="application/json")
+ logger.error("CSRF failure with reason '{}'".format(reason))
+ return HttpResponseForbidden (json.dumps (failure_answer),
content_
type="application/json")