From e345e91365f2ab3c9130a3903715b1e1db5a477d Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 1 Dec 2009 14:32:14 +0100 Subject: [PATCH] [FIX] db_exist method works as expected bzr revid: chs@tinyerp.com-20091201133214-8c6i1ohk5t5u79dz --- bin/service/web_services.py | 7 ++----- bin/sql_db.py | 9 +++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/bin/service/web_services.py b/bin/service/web_services.py index a3280719f2c..ebd7f063d39 100644 --- a/bin/service/web_services.py +++ b/bin/service/web_services.py @@ -286,11 +286,8 @@ class db(netsvc.Service): return True def db_exist(self, db_name): - try: - db = sql_db.db_connect(db_name) - return True - except: - return False + ## Not True: in fact, check if connection to database is possible. The database may exists + return bool(sql_db.db_connect(db_name)) def list(self): db = sql_db.db_connect('template1') diff --git a/bin/sql_db.py b/bin/sql_db.py index 6d2d8b779ef..59d7bcaac1f 100644 --- a/bin/sql_db.py +++ b/bin/sql_db.py @@ -310,6 +310,15 @@ class Connection(object): def serialized_cursor(self): return self.cursor(True) + def __nonzero__(self): + """Check if connection is possible""" + try: + cr = self.cursor() + cr.close() + return True + except: + return False + _dsn = '' for p in ('host', 'port', 'user', 'password'):