X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fgeneric%2F__init__.py;fp=sfa%2Fgeneric%2F__init__.py;h=a4e7bdf99984fbf168284dc66d8a80536382ebce;hb=431a6bf78c6232a44b178e2092451e733a71bba3;hp=843cd7b049fa7aa15f20444fed65a96b2f5f1631;hpb=07fcf3cbd55e243bed442271a7557178a92559bf;p=sfa.git diff --git a/sfa/generic/__init__.py b/sfa/generic/__init__.py index 843cd7b0..a4e7bdf9 100644 --- a/sfa/generic/__init__.py +++ b/sfa/generic/__init__.py @@ -58,12 +58,18 @@ class Generic: def make_api (self, *args, **kwargs): # interface is a required arg if not 'interface' in kwargs: - logger.fatal("Generic.make_api: no interface found") + logger.critical("Generic.make_api: no interface found") api = self.api_class()(*args, **kwargs) - interface=kwargs['interface'] - # or simpler, interface=api.interface - manager = self.make_manager(interface) - api.manager = ManagerWrapper(manager,interface) + manager = self.make_manager(api.interface) + driver = self.make_driver (api.config) + ### arrange stuff together + # add a manager wrapper + manager = ManagerWrapper(manager,api.interface) + api.manager=manager + # insert driver in manager + manager.driver=driver + # add it in api as well for convenience + api.driver=driver return api def make_manager (self, interface): @@ -80,25 +86,18 @@ class Generic: logger.info("%s : %s"%(message,module)) return module except: - logger.log_exc(message) - logger.fatal("Aborting") + logger.log_exc_critical(message) + + def make_driver (self, config): + flavour = self.flavour + message="Generic.make_driver for flavour=%s"%(flavour) + + classname = "driver_class" + try: + class_obj = getattr(self,classname)() + logger.info("%s : %s"%(message,class_obj)) + return class_obj(config) + except: + logger.log_exc_critical(message) -# former logic was -# basepath = 'sfa.managers' -# qualified = "%s.%s_manager_%s"%(basepath,interface,flavour) -# generic = "%s.%s_manager"%(basepath,interface) -# -# try: -# manager = __import__(qualified, fromlist=[basepath]) -# logger.info ("%s: loaded %s"%(message,qualified)) -# except: -# try: -# manager = __import__ (generic, fromlist=[basepath]) -# if flavour != 'pl' : -# logger.warn ("%s: using generic with flavour!='pl'"%(message)) -# logger.info("%s: loaded %s"%(message,generic)) -# except: -# logger.log_exc("%s: unable to import either %s or %s"%(message,qualified,generic)) -# logger.fatal("Aborted") -# return manager