[IMP] core: do not log error for unmet dependencies on add_modules
When migrating a database, load_marked_modules will be called multiple times, alternating to upgrade and to install modules. The main reason for this is still a litle confusing but it as the side effect to log "Unmet dependencies" error multiple time in add_modules, even if the dependency will be resolved later. This commit removes the error level for this log, and replace it by another check, performed at the end, logging any module in "to install"/"to upgrade" state. Also log removed module as info (25), not warning. This may be changed latter closes odoo/odoo#43797 X-original-commit: c5d6a3977de85fb974a4940fb11d54ef847e08e4 Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
This commit is contained in:
@@ -94,7 +94,7 @@ class Graph(dict):
|
||||
|
||||
for package in later:
|
||||
unmet_deps = [p for p in dependencies[package] if p not in self]
|
||||
_logger.error('module %s: Unmet dependencies: %s', package, ', '.join(unmet_deps))
|
||||
_logger.info('module %s: Unmet dependencies: %s', package, ', '.join(unmet_deps))
|
||||
|
||||
return len(self) - len_graph
|
||||
|
||||
|
||||
+13
-1
@@ -419,6 +419,18 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
|
||||
['to install'], force, status, report,
|
||||
loaded_modules, update_module, models_to_check)
|
||||
|
||||
# check modules states
|
||||
cr.execute("SELECT name from ir_module_module WHERE state IN ('to install', 'to upgrade', 'to remove')")
|
||||
module_list = [name for (name,) in cr.fetchall()]
|
||||
if module_list:
|
||||
_logger.error("Some module have inconsistent state, some dependency may be missing: %s", module_list)
|
||||
|
||||
cr.execute("SELECT name from ir_module_module WHERE state = 'installed'")
|
||||
module_list = [name for (name,) in cr.fetchall() if name not in graph]
|
||||
if module_list:
|
||||
_logger.error("Some module are not loaded, some dependency may be missing: %s", module_list)
|
||||
|
||||
|
||||
registry.loaded = True
|
||||
registry.setup_models(cr)
|
||||
|
||||
@@ -448,7 +460,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
|
||||
if model in registry:
|
||||
env[model]._check_removed_columns(log=True)
|
||||
elif _logger.isEnabledFor(logging.INFO): # more an info that a warning...
|
||||
_logger.warning("Model %s is declared but cannot be loaded! (Perhaps a module was partially removed or renamed)", model)
|
||||
_logger.log(25, "Model %s is declared but cannot be loaded! (Perhaps a module was partially removed or renamed)", model)
|
||||
|
||||
# Cleanup orphan records
|
||||
env['ir.model.data']._process_end(processed_modules)
|
||||
|
||||
Reference in New Issue
Block a user