summaryrefslogtreecommitdiff
path: root/addons/document/ftpserver/abstracted_fs.py
diff options
context:
space:
mode:
authorChristophe Simonis <christophe@tinyerp.com>2008-11-25 14:35:16 +0100
committerChristophe Simonis <christophe@tinyerp.com>2008-11-25 14:35:16 +0100
commitfac5d5213a2550d6c48c4e12d6fa166062f2f4da (patch)
tree1cc818d5dc1c8e65216d33f990ec2ce10d1fea25 /addons/document/ftpserver/abstracted_fs.py
parent1a96871e290faf1f3dd5b0706dfe7804fbfd8eab (diff)
[FIX] document module: avoid exception when check non openerp databases
lp bug: https://launchpad.net/bugs/301004 fixed bzr revid: christophe@tinyerp.com-20081125133516-78ivqrebot9pezuh
Diffstat (limited to 'addons/document/ftpserver/abstracted_fs.py')
-rw-r--r--addons/document/ftpserver/abstracted_fs.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/addons/document/ftpserver/abstracted_fs.py b/addons/document/ftpserver/abstracted_fs.py
index fe624da7de4..6892a5f729d 100644
--- a/addons/document/ftpserver/abstracted_fs.py
+++ b/addons/document/ftpserver/abstracted_fs.py
@@ -68,15 +68,25 @@ class abstracted_fs:
def db_list(self):
s = netsvc.LocalService('db')
result = s.list()
- self.db_name_list=[]
+ self.db_name_list = []
for db_name in result:
- db = pooler.get_db_only(db_name)
- cr = db.cursor()
- cr.execute("select id from ir_module_module where name like 'document%' and state='installed' ")
- res=cr.fetchone()
- if res and len(res):
- self.db_name_list.append(db_name)
- cr.close()
+ db, cr = None, None
+ try:
+ db = pooler.get_db_only(db_name)
+ cr = db.cursor()
+ cr.execute("SELECT 1 FROM pg_class WHERE relkind = 'r' AND relname = 'ir_module_module'")
+ if not cr.fetchone():
+ continue
+
+ cr.execute("select id from ir_module_module where name like 'document%' and state='installed' ")
+ res = cr.fetchone()
+ if res and len(res):
+ self.db_name_list.append(db_name)
+ finally:
+ if cr is not None:
+ cr.close()
+ if db is not None:
+ pooler.close_db(db_name)
return self.db_name_list
# Ok