- openerp.pooler no longer provides get_db_only, which is a provided by sql_db
- openerp.sql_db does not rely anymore on netsvc, which is goog as it was
making a circular import. The downside is that db_close callers have to clean
also the Agent themselves.
bzr revid: vmt@openerp.com-
20110420141407-au0oanwjc0t15vy5
import orm
import openerp.netsvc as netsvc
import openerp.pooler as pooler
+import openerp.sql_db as sql_db
import copy
import logging
from psycopg2 import IntegrityError, errorcodes
ids = args[3]
else:
ids = []
- cr = pooler.get_db_only(dbname).cursor()
+ cr = sql_db.db_connect(db_name).cursor()
return src(obj, cr, uid, ids, context=(ctx or {}))
except Exception:
pass
# be returned, it is the best we have.
try:
- cr = pooler.get_db_only(dbname).cursor()
+ cr = sql_db.db_connect(db_name).cursor()
res = translate(cr, name=False, source_type=ttype,
lang=lang, source=src)
if res:
#
##############################################################################
+import sql_db
+
pool_dic = {}
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)
+ db = sql_db.db_connect(db_name)
if db_name in pool_dic:
pool = pool_dic[db_name]
return get_db_and_pool(db_name, force_demo, status, update_module=update_module)
-def get_db_only(db_name):
- """Return a database connection."""
- # ATTENTION:
- # do not put this import outside this function
- # sql_db must not be loaded before the logger is initialized.
- # sql_db import psycopg2.tool which create a default logger if there is not.
- # this resulting of having the logs outputed twice...
- import openerp.sql_db as sql_db
- db = sql_db.db_connect(db_name)
- return db
-
-
def get_db(db_name):
"""Return a database connection. The corresponding osv_pool is initialize."""
return get_db_and_pool(db_name)[0]
def exp_drop(self, db_name):
sql_db.close_db(db_name)
+ openerp.netsvc.Agent.cancel(db_name)
logger = netsvc.Logger()
db = sql_db.db_connect('template1')
def exp_rename(self, old_name, new_name):
sql_db.close_db(old_name)
+ openerp.netsvc.Agent.cancel(db_name)
logger = netsvc.Logger()
db = sql_db.db_connect('template1')
import tools
from tools.func import wraps, frame_codeinfo
-from netsvc import Agent
from datetime import datetime as mdt
from datetime import timedelta
import threading
return Connection(_Pool, db_name)
def close_db(db_name):
+ """ You might want to call openerp.netsvc.Agent.cancel(db_name) along this function."""
_Pool.close_all(dsn(db_name))
- Agent.cancel(db_name)
tools.cache.clean_caches_for_db(db_name)
ct = currentThread()
if hasattr(ct, 'dbname'):
import locale
import os
import openerp.pooler as pooler
+import openerp.sql_db as sql_db
import re
import logging
import tarfile
# find current DB based on thread/worker db name (see netsvc)
db_name = getattr(threading.currentThread(), 'dbname', None)
if db_name:
- return pooler.get_db_only(db_name)
+ return sql_db.db_connect(db_name)
def _get_cr(self, frame):
is_new_cr = False