server/repository.py
changeset 5447 f29dafba250a
parent 5442 3ed8afbbdf70
child 5556 9ab2b4c74baf
equal deleted inserted replaced
5446:b018324198d4 5447:f29dafba250a
   150             usercls = self.vreg['etypes'].etype_class('CWUser')
   150             usercls = self.vreg['etypes'].etype_class('CWUser')
   151             for session in self._sessions.values():
   151             for session in self._sessions.values():
   152                 if not isinstance(session.user, InternalManager):
   152                 if not isinstance(session.user, InternalManager):
   153                     session.user.__class__ = usercls
   153                     session.user.__class__ = usercls
   154 
   154 
   155     def _bootstrap_hook_registry(self):
       
   156         """called during bootstrap since we need the metadata hooks"""
       
   157         hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks')
       
   158         self.vreg.init_registration([hooksdirectory])
       
   159         self.vreg.load_file(join(hooksdirectory, 'metadata.py'),
       
   160                             'cubicweb.hooks.metadata')
       
   161 
       
   162     def open_connections_pools(self):
   155     def open_connections_pools(self):
   163         config = self.config
   156         config = self.config
   164         self._available_pools = Queue.Queue()
   157         self._available_pools = Queue.Queue()
   165         self._available_pools.put_nowait(pool.ConnectionsPool(self.sources))
   158         self._available_pools.put_nowait(pool.ConnectionsPool(self.sources))
   166         if config.quick_start:
   159         if config.quick_start:
   182             etdirectory = join(CW_SOFTWARE_ROOT, 'entities')
   175             etdirectory = join(CW_SOFTWARE_ROOT, 'entities')
   183             self.vreg.init_registration([etdirectory])
   176             self.vreg.init_registration([etdirectory])
   184             for modname in ('__init__', 'authobjs', 'wfobjs'):
   177             for modname in ('__init__', 'authobjs', 'wfobjs'):
   185                 self.vreg.load_file(join(etdirectory, '%s.py' % modname),
   178                 self.vreg.load_file(join(etdirectory, '%s.py' % modname),
   186                                     'cubicweb.entities.%s' % modname)
   179                                     'cubicweb.entities.%s' % modname)
   187             self._bootstrap_hook_registry()
   180             hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks')
       
   181             self.vreg.load_file(join(hooksdirectory, 'metadata.py'),
       
   182                                 'cubicweb.hooks.metadata')
   188         elif config.read_instance_schema:
   183         elif config.read_instance_schema:
   189             # normal start: load the instance schema from the database
   184             # normal start: load the instance schema from the database
   190             self.fill_schema()
   185             self.fill_schema()
   191         else:
   186         else:
   192             # test start: use the file system schema (quicker)
   187             # test start: use the file system schema (quicker)
   231             schema.rebuild_infered_relations()
   226             schema.rebuild_infered_relations()
   232         self.info('set schema %s %#x', schema.name, id(schema))
   227         self.info('set schema %s %#x', schema.name, id(schema))
   233         if resetvreg:
   228         if resetvreg:
   234             if self.config._cubes is None:
   229             if self.config._cubes is None:
   235                 self.config.init_cubes(self.get_cubes())
   230                 self.config.init_cubes(self.get_cubes())
   236             # full reload of all appobjects
   231             # trigger full reload of all appobjects
   237             self.vreg.reset()
       
   238             self.vreg.set_schema(schema)
   232             self.vreg.set_schema(schema)
   239         else:
   233         else:
   240             self.vreg._set_schema(schema)
   234             self.vreg._set_schema(schema)
   241         self.querier.set_schema(schema)
   235         self.querier.set_schema(schema)
   242         for source in self.sources:
   236         for source in self.sources: