diff options
| author | Christophe Simonis <christophe@tinyerp.com> | 2008-11-25 14:35:16 +0100 |
|---|---|---|
| committer | Christophe Simonis <christophe@tinyerp.com> | 2008-11-25 14:35:16 +0100 |
| commit | fac5d5213a2550d6c48c4e12d6fa166062f2f4da (patch) | |
| tree | 1cc818d5dc1c8e65216d33f990ec2ce10d1fea25 /addons/document/ftpserver/abstracted_fs.py | |
| parent | 1a96871e290faf1f3dd5b0706dfe7804fbfd8eab (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.py | 26 |
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 |
