server/repository.py
changeset 8268 c9babe49c1c1
parent 8239 c6cdd060212e
child 8275 49e105e000ab
equal deleted inserted replaced
8267:486386d9f836 8268:c9babe49c1c1
     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'])