+ def get_interface_manager(self, manager_base = 'sfa.managers'):
+ """
+ Returns the appropriate manager module for this interface.
+ Modules are usually found in sfa/managers/
+ """
+ manager=None
+ if self.interface in ['registry']:
+ manager=import_manager ("registry", self.config.SFA_REGISTRY_TYPE)
+ elif self.interface in ['aggregate']:
+ manager=import_manager ("aggregate", self.config.SFA_AGGREGATE_TYPE)
+ elif self.interface in ['slicemgr', 'sm']:
+ manager=import_manager ("slice", self.config.SFA_SM_TYPE)
+ elif self.interface in ['component', 'cm']:
+ manager=import_manager ("component", self.config.SFA_CM_TYPE)
+ if not manager:
+ raise SfaAPIError("No manager for interface: %s" % self.interface)
+
+ # this isnt necessary but will help to produce better error messages
+ # if someone tries to access an operation this manager doesn't implement
+ manager = ManagerWrapper(manager, self.interface)
+
+ return manager