コード例 #1
0
ファイル: pool.py プロジェクト: manalaboutayeb/trytond
    def init(self, update=None, lang=None, installdeps=False):
        '''
        Init pool
        Set update to proceed to update
        lang is a list of language code to be updated
        '''
        # AKE: inter-workers communication
        from trytond import iwc
        with self._lock:
            # AKE: inter-workers communication
            iwc.start()
            if not self._started:
                self.start()

        with self._locks[self.database_name]:
            # Don't reset pool if already init and not to update
            if not update and self._pool.get(self.database_name):
                return
            logger.info('init pool for "%s"', self.database_name)
            self._pool.setdefault(self.database_name, {})
            # Clean the _pool before loading modules
            for type in self.classes.keys():
                self._pool[self.database_name][type] = {}
            self._post_init_calls[self.database_name] = []
            restart = not load_modules(self.database_name,
                                       self,
                                       update=update,
                                       lang=lang,
                                       installdeps=installdeps)
            if restart:
                self.init()
            # AKE: inter-workers communication
            if update:
                iwc.broadcast_init_pool(self.database_name)
コード例 #2
0
ファイル: module.py プロジェクト: jpyung/trytond
 def transition_upgrade(self):
     pool = Pool()
     Module = pool.get('ir.module')
     Lang = pool.get('ir.lang')
     with Transaction().new_transaction():
         modules = Module.search([
             ('state', 'in', ['to upgrade', 'to remove', 'to activate']),
         ])
         update = [m.name for m in modules]
         langs = Lang.search([
             ('translatable', '=', True),
         ])
         lang = [x.code for x in langs]
     if update:
         pool.init(update=update, lang=lang)
         broadcast_init_pool()
     return 'done'
コード例 #3
0
ファイル: module.py プロジェクト: coopengo/trytond
 def transition_upgrade(self):
     pool = Pool()
     Module = pool.get('ir.module')
     Lang = pool.get('ir.lang')
     with Transaction().new_transaction():
         modules = Module.search([
             ('state', 'in', ['to upgrade', 'to remove', 'to install']),
             ])
         update = [m.name for m in modules]
         langs = Lang.search([
             ('translatable', '=', True),
             ])
         lang = [x.code for x in langs]
     if update:
         pool.init(update=update, lang=lang)
         broadcast_init_pool()
     return 'done'