server/repository.py
branchstable
changeset 6801 33952695295b
parent 6722 3341521d857b
child 6822 47f4950ff815
child 6889 37668bf302f5
equal deleted inserted replaced
6800:3f3d576b87d9 6801:33952695295b
  1348                                eidfrom=subject, rtype=rtype, eidto=object)
  1348                                eidfrom=subject, rtype=rtype, eidto=object)
  1349 
  1349 
  1350 
  1350 
  1351     # pyro handling ###########################################################
  1351     # pyro handling ###########################################################
  1352 
  1352 
  1353     def pyro_register(self, host=''):
  1353     @property
  1354         """register the repository as a pyro object"""
  1354     @cached
       
  1355     def pyro_appid(self):
  1355         from logilab.common import pyro_ext as pyro
  1356         from logilab.common import pyro_ext as pyro
  1356         config = self.config
  1357         config = self.config
  1357         appid = '%s.%s' % pyro.ns_group_and_id(
  1358         appid = '%s.%s' % pyro.ns_group_and_id(
  1358             config['pyro-instance-id'] or config.appid,
  1359             config['pyro-instance-id'] or config.appid,
  1359             config['pyro-ns-group'])
  1360             config['pyro-ns-group'])
  1360         # ensure config['pyro-instance-id'] is a full qualified pyro name
  1361         # ensure config['pyro-instance-id'] is a full qualified pyro name
  1361         config['pyro-instance-id'] = appid
  1362         config['pyro-instance-id'] = appid
  1362         daemon = pyro.register_object(self, appid,
  1363         return appid
  1363                                       daemonhost=config['pyro-host'],
  1364 
  1364                                       nshost=config['pyro-ns-host'])
  1365     def pyro_register(self, host=''):
  1365         self.info('repository registered as a pyro object %s', appid)
  1366         """register the repository as a pyro object"""
       
  1367         from logilab.common import pyro_ext as pyro
       
  1368         daemon = pyro.register_object(self, self.pyro_appid,
       
  1369                                       daemonhost=self.config['pyro-host'],
       
  1370                                       nshost=self.config['pyro-ns-host'])
       
  1371         self.info('repository registered as a pyro object %s', self.pyro_appid)
  1366         self.pyro_registered = True
  1372         self.pyro_registered = True
       
  1373         # register a looping task to regularly ensure we're still registered
       
  1374         # into the pyro name server
       
  1375         self.looping_task(60*10, self._ensure_pyro_ns)
  1367         return daemon
  1376         return daemon
       
  1377 
       
  1378     def _ensure_pyro_ns(self):
       
  1379         from logilab.common import pyro_ext as pyro
       
  1380         pyro.ns_reregister(self.pyro_appid, nshost=self.config['pyro-ns-host'])
       
  1381         self.info('repository re-registered as a pyro object %s',
       
  1382                   self.pyro_appid)
  1368 
  1383 
  1369     # multi-sources planner helpers ###########################################
  1384     # multi-sources planner helpers ###########################################
  1370 
  1385 
  1371     @cached
  1386     @cached
  1372     def rel_type_sources(self, rtype):
  1387     def rel_type_sources(self, rtype):