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): |