From 4897f1740eb0e15cf35a54a03860e1e2886fe50d Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Wed, 8 May 2013 12:46:58 +0200 Subject: [PATCH 1/2] [FIX] openerp.modules.migration: do not shadow AttributeError that may occure when executing the migrate() function bzr revid: chs@openerp.com-20130508104658-d2553vdx0etiuhpk --- openerp/modules/migration.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openerp/modules/migration.py b/openerp/modules/migration.py index 3dbc725109b..4ded70ffcb2 100644 --- a/openerp/modules/migration.py +++ b/openerp/modules/migration.py @@ -3,7 +3,7 @@ # # OpenERP, Open Source Management Solution # Copyright (C) 2004-2009 Tiny SPRL (). -# Copyright (C) 2010-2011 OpenERP s.a. (). +# Copyright (C) 2010-2013 OpenERP s.a. (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -180,14 +180,14 @@ class MigrationManager(object): try: mod = imp.load_source(name, pyfile, fp2) _logger.info('module %(addon)s: Running migration %(version)s %(name)s' % mergedict({'name': mod.__name__}, strfmt)) - mod.migrate(self.cr, pkg.installed_version) + migrate = mod.migrate except ImportError: - _logger.error('module %(addon)s: Unable to load %(stage)s-migration file %(file)s' % mergedict({'file': pyfile}, strfmt)) + _logger.exception('module %(addon)s: Unable to load %(stage)s-migration file %(file)s' % mergedict({'file': pyfile}, strfmt)) raise except AttributeError: _logger.error('module %(addon)s: Each %(stage)s-migration file must have a "migrate(cr, installed_version)" function' % strfmt) - except: - raise + else: + migrate(self.cr, pkg.installed_version) finally: if fp: fp.close() From 23f326328a72b411453e4de4cd60576fbcfebbf0 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Wed, 8 May 2013 12:50:56 +0200 Subject: [PATCH 2/2] [IMP] openerp.modules.migration: lint file; remove unused imports, reorder imports, reformat literal dict creation bzr revid: chs@openerp.com-20130508105056-v4arz8d2kem5sngi --- openerp/modules/migration.py | 38 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/openerp/modules/migration.py b/openerp/modules/migration.py index 4ded70ffcb2..09595336eaa 100644 --- a/openerp/modules/migration.py +++ b/openerp/modules/migration.py @@ -22,31 +22,15 @@ """ Modules migration handling. """ -import os, sys, imp +import imp +import logging +import os from os.path import join as opj -import itertools -import zipimport import openerp - -import openerp.osv as osv -import openerp.tools as tools -import openerp.tools.osutil as osutil -from openerp.tools.safe_eval import safe_eval as eval -from openerp.tools.translate import _ - -import zipfile import openerp.release as release +import openerp.tools as tools -import re -import base64 -from zipfile import PyZipFile, ZIP_DEFLATED -from cStringIO import StringIO - -import logging - -import openerp.modules.db -import openerp.modules.graph _logger = logging.getLogger(__name__) @@ -100,9 +84,10 @@ class MigrationManager(object): def migrate_module(self, pkg, stage): assert stage in ('pre', 'post') - stageformat = {'pre': '[>%s]', - 'post': '[%s>]', - } + stageformat = { + 'pre': '[>%s]', + 'post': '[%s>]', + } if not (hasattr(pkg, 'update') or pkg.state == 'to upgrade'): return @@ -129,9 +114,10 @@ class MigrationManager(object): m = self.migrations[pkg.name] lst = [] - mapping = {'module': opj(pkg.name, 'migrations'), - 'maintenance': opj('base', 'maintenance', 'migrations', pkg.name), - } + mapping = { + 'module': opj(pkg.name, 'migrations'), + 'maintenance': opj('base', 'maintenance', 'migrations', pkg.name), + } for x in mapping.keys(): if version in m[x]: