From: Thierry Parmentelat Date: Mon, 25 Jan 2016 15:45:42 +0000 (+0100) Subject: manifoldapi now expects the URL as an argument to its constructor X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=a948414844c79472807c5e66939a912a7b990433;hp=b8108bef77d0feb75134229923ebe2dc1e9a1700 manifoldapi now expects the URL as an argument to its constructor --- diff --git a/localauth/manifoldbackend.py b/localauth/manifoldbackend.py index 3e235151..8c8f0f39 100644 --- a/localauth/manifoldbackend.py +++ b/localauth/manifoldbackend.py @@ -29,7 +29,7 @@ class ManifoldBackend: request = token['request'] auth = {'AuthMethod': 'password', 'Username': email, 'AuthString': password} - api = ManifoldAPI(auth) + api = ManifoldAPI(config.manifold_url(), auth) sessions_result = api.forward(Query.create('local:session').to_dict()) sessions = sessions_result.ok_value() if not sessions: diff --git a/manifoldapi/manifoldapi.py b/manifoldapi/manifoldapi.py index 673970f4..8f27d92a 100644 --- a/manifoldapi/manifoldapi.py +++ b/manifoldapi/manifoldapi.py @@ -22,19 +22,15 @@ except: class ManifoldAPI: - def __init__(self, auth=None, cainfo=None): + def __init__(self, url, auth=None, cainfo=None): + self.url = url self.auth = auth self.cainfo = cainfo self.errors = [] self.trace = [] self.calls = {} self.multicall = False - try: - from myslice.settings import config - self.url = config.manifold_url() - except: - self.url = "https://portal.onelab.eu:7080/" # Manifold uses a self signed certificate # https://www.python.org/dev/peps/pep-0476/ @@ -91,9 +87,9 @@ class ManifoldAPI: return func -def _execute_query(request, query, manifold_api_session_auth): +def _execute_query(url, request, query, manifold_api_session_auth): - manifold_api = ManifoldAPI(auth = manifold_api_session_auth) + manifold_api = ManifoldAPI(url, auth = manifold_api_session_auth) logger.debug("MANIFOLD -> QUERY : {}".format(" ".join(str(query).split()))) result = manifold_api.forward(query.to_dict()) @@ -131,7 +127,9 @@ def execute_query(request, query): manifold_api_session_auth = request.session['manifold']['auth'] - return _execute_query(request, query, manifold_api_session_auth) + from myslice.settings import config + url = config.manifold_url() + return _execute_query(url, request, query, manifold_api_session_auth) def execute_admin_query(request, query): # xxx config @@ -140,4 +138,7 @@ def execute_admin_query(request, query): logger.error("""CONFIG: you need to setup admin_user and admin_password in myslice.ini Some functions won't work properly until you do so""") admin_auth = {'AuthMethod': 'password', 'Username': admin_user, 'AuthString': admin_password} - return _execute_query(request, query, admin_auth) + + from myslice.settings import config + url = config.manifold_url() + return _execute_query(url, request, query, admin_auth) diff --git a/manifoldapi/manifoldproxy.py b/manifoldapi/manifoldproxy.py index 0f700bf7..5268f41e 100644 --- a/manifoldapi/manifoldproxy.py +++ b/manifoldapi/manifoldproxy.py @@ -31,7 +31,12 @@ debug_empty=False # myslice/urls.py # as well as # static/js/manifold.js -def proxy (request,format): +def proxy(request, format): + from myslice.settings import config + url = config.manifold_url() + return _proxy(url, request, format) + +def _proxy(url, request, format): """the view associated with /manifold/proxy/ with the query passed using POST""" # expecting a POST @@ -71,7 +76,7 @@ def proxy (request,format): return HttpResponse (json.dumps({'code':0,'value':[]}), content_type="application/json") # actually forward - manifold_api= ManifoldAPI(auth=manifold_api_session_auth) + manifold_api= ManifoldAPI(url, auth=manifold_api_session_auth) # 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 diff --git a/manifoldapi/metadata.py b/manifoldapi/metadata.py index f8e9b348..3272241d 100644 --- a/manifoldapi/metadata.py +++ b/manifoldapi/metadata.py @@ -13,12 +13,13 @@ debug=False class MetaData: - def __init__ (self, auth): + def __init__ (self, url, auth): + self.url = url self.auth=auth self.hash_by_object={} def fetch (self, request): - manifold_api = ManifoldAPI(self.auth) + manifold_api = ManifoldAPI(self.url, self.auth) fields = ['table', 'column.name', 'column.qualifier', 'column.type', 'column.is_array', 'column.description', 'column.default', 'key', 'capability'] #fields = ['table', 'column.column', diff --git a/unfold/page.py b/unfold/page.py index a9228ecc..0ac131bb 100644 --- a/unfold/page.py +++ b/unfold/page.py @@ -117,7 +117,9 @@ class Page: metadata_auth = {'AuthMethod':'anonymous'} - metadata = MetaData (metadata_auth) + from myslice.settings import config + url = config.manifold_url() + metadata = MetaData (url, metadata_auth) metadata.fetch(self.request) # store it for next time manifold['metadata']=metadata