1 # copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
1 # copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
3 # |
3 # |
4 # This file is part of CubicWeb. |
4 # This file is part of CubicWeb. |
5 # |
5 # |
6 # CubicWeb is free software: you can redistribute it and/or modify it under the |
6 # CubicWeb is free software: you can redistribute it and/or modify it under the |
875 # during `session_close` hooks |
875 # during `session_close` hooks |
876 session.commit() |
876 session.commit() |
877 session.close() |
877 session.close() |
878 del self._sessions[sessionid] |
878 del self._sessions[sessionid] |
879 self.info('closed session %s for user %s', sessionid, session.user.login) |
879 self.info('closed session %s for user %s', sessionid, session.user.login) |
|
880 |
|
881 def call_service(self, sessionid, regid, async, **kwargs): |
|
882 """ |
|
883 See :class:`cubicweb.dbapi.Connection.call_service` |
|
884 and :class:`cubicweb.server.Service` |
|
885 """ |
|
886 def task(): |
|
887 session = self._get_session(sessionid) |
|
888 service = session.vreg['services'].select(regid, session, **kwargs) |
|
889 return service.call(session, **kwargs) |
|
890 if async: |
|
891 self.info('calling service %s asynchronously', regid) |
|
892 self.threaded_task(task) |
|
893 else: |
|
894 self.info('calling service %s synchronously', regid) |
|
895 return task() |
880 |
896 |
881 def user_info(self, sessionid, props=None): |
897 def user_info(self, sessionid, props=None): |
882 """this method should be used by client to: |
898 """this method should be used by client to: |
883 * check session id validity |
899 * check session id validity |
884 * update user information on each user's request (i.e. groups and |
900 * update user information on each user's request (i.e. groups and |
1669 |
1685 |
1670 # these are overridden by set_log_methods below |
1686 # these are overridden by set_log_methods below |
1671 # only defining here to prevent pylint from complaining |
1687 # only defining here to prevent pylint from complaining |
1672 info = warning = error = critical = exception = debug = lambda msg,*a,**kw: None |
1688 info = warning = error = critical = exception = debug = lambda msg,*a,**kw: None |
1673 |
1689 |
|
1690 |
1674 def pyro_unregister(config): |
1691 def pyro_unregister(config): |
1675 """unregister the repository from the pyro name server""" |
1692 """unregister the repository from the pyro name server""" |
1676 from logilab.common.pyro_ext import ns_unregister |
1693 from logilab.common.pyro_ext import ns_unregister |
1677 appid = config['pyro-instance-id'] or config.appid |
1694 appid = config['pyro-instance-id'] or config.appid |
1678 ns_unregister(appid, config['pyro-ns-group'], config['pyro-ns-host']) |
1695 ns_unregister(appid, config['pyro-ns-group'], config['pyro-ns-host']) |