From 252578e26d5d3d24de45bf4af7e04ecb5ff2cda6 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 27 Feb 2018 17:17:16 +1300 Subject: [PATCH] rrs_upgrade_history.py: add maintenance plan handling Instead of processing all layerbranches, only process those associated with an enabled maintenance plan. This is one step towards being able to use the RRS together with a more general layer index database. Signed-off-by: Paul Eggleton --- rrs/tools/rrs_upgrade_history.py | 48 ++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/rrs/tools/rrs_upgrade_history.py b/rrs/tools/rrs_upgrade_history.py index 1300745..51d7deb 100755 --- a/rrs/tools/rrs_upgrade_history.py +++ b/rrs/tools/rrs_upgrade_history.py @@ -212,6 +212,7 @@ def do_loop(layerbranch, ct, logger, dry_run): """ def upgrade_history(options, logger): from layerindex.models import LayerBranch + from rrs.models import MaintenancePlan # start date now = datetime.today() @@ -223,32 +224,37 @@ def upgrade_history(options, logger): else: since = (now - timedelta(days=8)).strftime("%Y-%m-%d") - # do - for layerbranch in LayerBranch.objects.all(): - layer = layerbranch.layer - urldir = layer.get_fetch_dir() - repodir = os.path.join(fetchdir, urldir) - layerdir = os.path.join(repodir, layerbranch.vcs_subdir) + maintplans = MaintenancePlan.objects.filter(updates_enabled=True) + if not maintplans.exists(): + logger.error('No enabled maintenance plans found') + sys.exit(1) + for maintplan in maintplans: + for maintplanbranch in maintplan.maintenanceplanlayerbranch_set.all(): + layerbranch = maintplanbranch.layerbranch + layer = layerbranch.layer + urldir = layer.get_fetch_dir() + repodir = os.path.join(fetchdir, urldir) + layerdir = os.path.join(repodir, layerbranch.vcs_subdir) - commits = utils.runcmd("git log --since='" + since + - "' --format='%H' --reverse", repodir, - logger=logger) - commit_list = commits.split('\n') + commits = utils.runcmd("git log --since='" + since + + "' --format='%H' --reverse", repodir, + logger=logger) + commit_list = commits.split('\n') - if options.initial: - logger.debug("Adding initial upgrade history ....") + if options.initial: + logger.debug("Adding initial upgrade history ....") - ct = commit_list.pop(0) - do_initial(layerbranch, ct, logger, options.dry_run) + ct = commit_list.pop(0) + do_initial(layerbranch, ct, logger, options.dry_run) - logger.debug("Adding upgrade history from %s to %s ..." % (since, today)) - for ct in commit_list: - if ct: - logger.debug("Analysing commit %s ..." % ct) - do_loop(layerbranch, ct, logger, options.dry_run) + logger.debug("Adding upgrade history from %s to %s ..." % (since, today)) + for ct in commit_list: + if ct: + logger.debug("Analysing commit %s ..." % ct) + do_loop(layerbranch, ct, logger, options.dry_run) - if commit_list: - utils.runcmd("git clean -dfx", repodir, logger=logger) + if commit_list: + utils.runcmd("git clean -dfx", repodir, logger=logger) if __name__=="__main__": parser = optparse.OptionParser(usage = """%prog [options]""")