server/repository.py
branchstable
changeset 8837 f7f4238ffe3c
parent 8699 864ffd247d70
child 8838 27393e484974
equal deleted inserted replaced
8831:f7e140182df1 8837:f7f4238ffe3c
   880     def call_service(self, sessionid, regid, async, **kwargs):
   880     def call_service(self, sessionid, regid, async, **kwargs):
   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         def task():
   886         def task():
   886             session = self._get_session(sessionid, setcnxset=True)
   887             session.set_cnxset()
   887             service = session.vreg['services'].select(regid, session, **kwargs)
       
   888             try:
   888             try:
       
   889                 service = session.vreg['services'].select(regid, session, **kwargs)
   889                 return service.call(**kwargs)
   890                 return service.call(**kwargs)
   890             finally:
   891             finally:
   891                 session.rollback() # free cnxset
   892                 session.rollback() # free cnxset
   892         if async:
   893         if async:
   893             self.info('calling service %s asynchronously', regid)
   894             self.info('calling service %s asynchronously', regid)