server/repository.py
branchstable
changeset 8838 27393e484974
parent 8837 f7f4238ffe3c
child 8839 49eb84b80b96
equal deleted inserted replaced
8837:f7f4238ffe3c 8838:27393e484974
   881         """
   881         """
   882         See :class:`cubicweb.dbapi.Connection.call_service`
   882         See :class:`cubicweb.dbapi.Connection.call_service`
   883         and :class:`cubicweb.server.Service`
   883         and :class:`cubicweb.server.Service`
   884         """
   884         """
   885         session = self._get_session(sessionid)
   885         session = self._get_session(sessionid)
   886         def task():
       
   887             session.set_cnxset()
       
   888             try:
       
   889                 service = session.vreg['services'].select(regid, session, **kwargs)
       
   890                 return service.call(**kwargs)
       
   891             finally:
       
   892                 session.rollback() # free cnxset
       
   893         if async:
   886         if async:
   894             self.info('calling service %s asynchronously', regid)
   887             self.info('calling service %s asynchronously', regid)
       
   888             def task():
       
   889                 session.set_cnxset()
       
   890                 try:
       
   891                     service = session.vreg['services'].select(regid, session, **kwargs)
       
   892                     return service.call(**kwargs)
       
   893                 finally:
       
   894                     session.rollback() # free cnxset
   895             self.threaded_task(task)
   895             self.threaded_task(task)
   896         else:
   896         else:
   897             self.info('calling service %s synchronously', regid)
   897             self.info('calling service %s synchronously', regid)
   898             return task()
   898             service = session.vreg['services'].select(regid, session, **kwargs)
       
   899             return service.call(**kwargs)
   899 
   900 
   900     def user_info(self, sessionid, props=None):
   901     def user_info(self, sessionid, props=None):
   901         """this method should be used by client to:
   902         """this method should be used by client to:
   902         * check session id validity
   903         * check session id validity
   903         * update user information on each user's request (i.e. groups and
   904         * update user information on each user's request (i.e. groups and