def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, pooljobs=True): if not status: status = {} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module) except Exception: del pool_dic[db_name] raise cr = db.cursor() try: pool.init_set(cr, False) pool.get('ir.actions.report.xml').register_all(cr) cr.commit() finally: cr.close() if pooljobs: pool.get('ir.cron').restart(db.dbname) return db, pool
def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, pooljobs=True): if not status: status={} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module) except Exception: del pool_dic[db_name] raise cr = db.cursor() try: pool.init_set(cr, False) pool.get('ir.actions.report.xml').register_all(cr) if not updater.do_upgrade(cr, pool): pool_dic.pop(db_name) # please do not change "updater.py" in the message, or change unifield-web/addons/openerp/utils/rpc.py accordingly raise Exception("updater.py told us that OpenERP version doesn't match database version!") cr.commit() finally: cr.close() if pooljobs: pool.get('ir.cron').restart(db.dbname) return db, pool
def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False): if not status: status={} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module) except Exception, e: del pool_dic[db_name] raise cr = db.cursor() try: pool.init_set(cr, False) cr.commit() finally: cr.close() import report report.interface.register_all(db) pool.get('ir.cron')._poolJobs(db.dbname)
def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, pooljobs=True): if not status: status={} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module) except Exception: del pool_dic[db_name] raise cr = db.cursor() try: pool.init_set(cr, False) pool.get('ir.actions.report.xml').register_all(cr) cr.commit() finally: cr.close() if pooljobs: pool.get('ir.cron').restart(db.dbname) return db, pool
def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, pooljobs=True, languages=False): if not status: status = {} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv import logging from tools import config log = logging.getLogger('pooler') allowed_res = config.get_misc('databases', 'allowed') if allowed_res: dbs_allowed = [x.strip() for x in allowed_res.split(' ')] if db_name not in dbs_allowed: log.critical('Illegal database requested: %s', db_name) raise AttributeError('Illegal database: %s' % db_name) log.info("Starting pooler of database: %s" % db_name) pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module, languages=languages) except Exception: del pool_dic[db_name] log.exception("Could not load modules for %s" % db_name) raise cr = db.cursor() try: pool.init_set(cr, False) pool.get('ir.actions.report.xml').register_all(cr) cr.commit() finally: cr.close() if pooljobs: pool.get('ir.cron').restart(db.dbname) log.info('Successfuly loaded database \"%s\"' % db_name) return db, pool
def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, pooljobs=True, threaded=False, upgrade_modules=True): ''' Return the db and pool. :param db_name: database name :param force_demo: load demo data :param status: status dictionary for keeping track of progress :param update_module: update the list of available modules :pooljobs: restart the cron job :upgrade_modules: start the modules upgrade process ('-u base') if needed :rtype: list of two object: (dabase, pool) ''' if not status: status={} db = get_db_only(db_name) if db_name in pool_dic: pool = pool_dic[db_name] else: import addons import osv.osv pool = osv.osv.osv_pool() pool_dic[db_name] = pool try: addons.load_modules(db, force_demo, status, update_module) except Exception: del pool_dic[db_name] raise cr = db.cursor() try: pool.init_set(cr, False) pool.get('ir.actions.report.xml').register_all(cr) if upgrade_modules: if not updater.do_upgrade(cr, pool): pool_dic.pop(db_name) # please do not change "updater.py" in the message, or change unifield-web/addons/openerp/utils/rpc.py accordingly raise Exception("updater.py told us that OpenERP version doesn't match database version!") cr.commit() finally: if threaded: cr.close(True) else: cr.close() if pooljobs: pool.get('ir.cron').restart(db.dbname) return db, pool