From 9707ee8e4c495133f329000d3e5b89d8b84e5998 Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Mon, 15 Oct 2012 08:04:36 -0500 Subject: migrate_db: skip db lookup since all should be known --- src/lib/Bcfg2/Reporting/models.py | 9 ++++++--- tools/upgrade/1.3/migrate_dbstats.py | 10 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/lib/Bcfg2/Reporting/models.py b/src/lib/Bcfg2/Reporting/models.py index b8fe1b973..374331632 100644 --- a/src/lib/Bcfg2/Reporting/models.py +++ b/src/lib/Bcfg2/Reporting/models.py @@ -346,7 +346,7 @@ class BaseEntry(models.Model): @classmethod - def entry_get_or_create(cls, act_dict): + def entry_get_or_create(cls, act_dict, skip_fetch=False): """Helper to quickly lookup an object""" cls_name = cls().__class__.__name__ act_hash = hash_entry(act_dict) @@ -356,8 +356,11 @@ class BaseEntry(models.Model): newact = cache.get(act_key) if newact: return newact - - acts = cls.objects.filter(hash_key=act_hash) + + if not skip_fetch: + acts = cls.objects.filter(hash_key=act_hash) + else: + acts = [] if len(acts) > 0: for act in acts: for key in act_dict: diff --git a/tools/upgrade/1.3/migrate_dbstats.py b/tools/upgrade/1.3/migrate_dbstats.py index ae2eed132..1ec50d531 100755 --- a/tools/upgrade/1.3/migrate_dbstats.py +++ b/tools/upgrade/1.3/migrate_dbstats.py @@ -107,14 +107,14 @@ def _migrate_transaction(inter, entries, fperms): act_dict['status'] = "check" act_dict['output'] = -1 logger.debug("Adding action %s" % name) - updates['actions'].append(new_models.ActionEntry.entry_get_or_create(act_dict)) + updates['actions'].append(new_models.ActionEntry.entry_get_or_create(act_dict, skip_fetch=1)) elif ent.kind == 'Package': act_dict['target_version'] = ei.reason.version act_dict['current_version'] = ei.reason.current_version logger.debug("Adding package %s %s" % (name, act_dict['target_version'])) - updates['packages'].append(new_models.PackageEntry.entry_get_or_create(act_dict)) + updates['packages'].append(new_models.PackageEntry.entry_get_or_create(act_dict, skip_fetch=1)) elif ent.kind == 'Path': # these might be hard.. they aren't one to one with the old model act_dict['path_type'] = 'file' @@ -136,7 +136,7 @@ def _migrate_transaction(inter, entries, fperms): act_dict['target_path'] = ei.reason.to act_dict['current_path'] = ei.reason.current_to logger.debug("Adding link %s" % name) - updates['paths'].append(new_models.LinkEntry.entry_get_or_create(act_dict)) + updates['paths'].append(new_models.LinkEntry.entry_get_or_create(act_dict, skip_fetch=1)) continue act_dict['detail_type'] = new_models.PathEntry.DETAIL_UNUSED @@ -156,13 +156,13 @@ def _migrate_transaction(inter, entries, fperms): act_dict['detail_type'] = new_models.PathEntry.DETAIL_DIFF act_dict['details'] = ei.reason.current_diff logger.debug("Adding path %s" % name) - updates['paths'].append(new_models.PathEntry.entry_get_or_create(act_dict)) + updates['paths'].append(new_models.PathEntry.entry_get_or_create(act_dict, skip_fetch=1)) elif ent.kind == 'Service': act_dict['target_status'] = ei.reason.status act_dict['current_status'] = ei.reason.current_status logger.debug("Adding service %s" % name) - updates['services'].append(new_models.ServiceEntry.entry_get_or_create(act_dict)) + updates['services'].append(new_models.ServiceEntry.entry_get_or_create(act_dict, skip_fetch=1)) else: logger.warn("Skipping type %s" % ent.kind) -- cgit v1.2.3-1-g7c22