예제 #1
0
 def __init__(self, version, router):
     # TODO(RS) this had to be hardcoded, to match the murano
     # factory method.  Perhaps there is a better way to get it to
     # work using the factory?
     self.version = version
     self.api = paste_util.lookup_object(router)(routes.Mapper())
     super(DocSpecController, self).__init__()
예제 #2
0
    def factory(config):
        """
        :type config: pyramid.config.Configurator
        """
        global DBSession
        settings = config.get_settings()
        dbsession_path = settings.get('pyramid_backend.sqlalchemy.dbsession')
        if not dbsession_path:
            logger.warn('You have not configured dbsession for pyramid_backend '
                        'sqlalchemy adapter at '
                        '"pyramid_backend.sqlalchemy.dbsession"')
            return lambda m: None

        DBSession = lookup_object(dbsession_path)

        def _create_manager(model):
            # verify model is an ORM class of SQLAlchemy or not
            # if not, just return None
            try:
                mapper = class_mapper(model)
            except UnmappedClassError:
                return None
            return SQLAlchemyManager(model)

        return _create_manager
예제 #3
0
 def get_context(self, object_type, name=None, global_conf=None):
     obj = lookup_object(self.spec)
     return LoaderContext(
         obj,
         object_type,
         None, # determine protocol from section type
         global_conf or {},
         {},
         self,
         )
예제 #4
0
 def get_context(self, object_type, name=None, global_conf=None):
     obj = lookup_object(self.spec)
     return LoaderContext(
         obj,
         object_type,
         None, # determine protocol from section type
         global_conf or {},
         {},
         self,
         )
예제 #5
0
 def __init__(self, settings):
     maxrows = settings.get('groups_maxrows', 100)
     self.maxrows = maxrows
     self.log = LogWrapper('groups.GroupsController')
     self.timer = settings.get('timer')
     self.backends = {}
     self.pool = GreenPool()
     self.timeout = int(settings.get('groups_timeout_backend', '3000')) / 1000
     for key, value in settings.items():
         if key.startswith(BACKEND_CONFIG_KEY):
             grouptype = key[len(BACKEND_CONFIG_KEY):]
             prefix = ID_PREFIX + ':' + grouptype
             self.backends[grouptype] = lookup_object(value)(prefix, maxrows, settings)
     self.id_handlers = {}
     for backend in self.backends.values():
         self.id_handlers.update(backend.get_id_handlers())