# see pl.py for an example
# some descendant of SfaApi
def api_class (self) : pass
- # in practical terms these are modules for now
+ # the python classes to use to build up the context
def registry_class (self) : pass
def slicemgr_class (self) : pass
def aggregate_class (self) : pass
logger.critical("Generic.make_api: no interface found")
api = self.api_class()(*args, **kwargs)
manager = self.make_manager(api.interface)
- driver = self.make_driver (api.config)
+ driver = self.make_driver (api.config, api.interface)
### arrange stuff together
# add a manager wrapper
- manager = ManagerWrapper(manager,api.interface)
- api.manager=manager
+ manager_wrap = ManagerWrapper(manager,api.interface)
+ api.manager=manager_wrap
# insert driver in manager
+ logger.info("Setting manager.driver, manager=%s"%manager)
manager.driver=driver
# add it in api as well for convenience
api.driver=driver
flavour = self.flavour
message="Generic.make_manager for interface=%s and flavour=%s"%(interface,flavour)
- classname = "%s_class"%interface
+ classname = "%s_manager_class"%interface
try:
module = getattr(self,classname)()
- logger.info("%s : %s"%(message,module))
+ logger.debug("%s : %s"%(message,module))
return module
except:
logger.log_exc_critical(message)
- def make_driver (self, config):
+ # need interface to select the right driver
+ def make_driver (self, config, interface):
flavour = self.flavour
- message="Generic.make_driver for flavour=%s"%(flavour)
+ message="Generic.make_driver for flavour=%s and interface=%s"%(flavour,interface)
- classname = "driver_class"
+ if interface == "component":
+ classname = "component_driver_class"
+ else:
+ classname = "driver_class"
try:
class_obj = getattr(self,classname)()
- logger.info("%s : %s"%(message,class_obj))
+ logger.debug("%s : %s"%(message,class_obj))
return class_obj(config)
except:
logger.log_exc_critical(message)