Make service loading more robust

pull/433/head
Åke Forslund 2017-03-27 21:10:27 +02:00
parent aab65d8178
commit bddccad7b9
1 changed files with 18 additions and 6 deletions

View File

@ -84,15 +84,27 @@ def load_services(config, ws):
service = [] service = []
for descriptor in service_directories: for descriptor in service_directories:
logger.info('Loading ' + descriptor['name']) logger.info('Loading ' + descriptor['name'])
service_module = imp.load_module(descriptor["name"] + MainModule, try:
*descriptor["info"]) service_module = imp.load_module(descriptor["name"] + MainModule,
*descriptor["info"])
except:
logger.error('Failed to import module ' + descriptor['name'],
exc_info=True)
if (hasattr(service_module, 'autodetect') and if (hasattr(service_module, 'autodetect') and
callable(service_module.autodetect)): callable(service_module.autodetect)):
s = service_module.autodetect(config, ws) try:
service += s s = service_module.autodetect(config, ws)
service += s
except:
logger.error('Failed to autodetect...',
exc_info=True)
if (hasattr(service_module, 'load_service')): if (hasattr(service_module, 'load_service')):
s = service_module.load_service(config, ws) try:
service += s s = service_module.load_service(config, ws)
service += s
except:
logger.error('Failed to load service...',
exc_info=True)
return service return service