mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
rrs/tools: use layer index lock
We check out different revisions while we do this processing, and so does the layer index update script, so we shouldn't be allowing both to run at once or nasty stuff will happen. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
2afa51b108
commit
291f6bfde7
|
@ -71,6 +71,7 @@ def get_commit_info(info, logger):
|
||||||
Recreate Maintainership history from the beginning
|
Recreate Maintainership history from the beginning
|
||||||
"""
|
"""
|
||||||
def maintainer_history(options, logger):
|
def maintainer_history(options, logger):
|
||||||
|
fetchdir = settings.LAYER_FETCH_DIR
|
||||||
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
||||||
if not maintplans.exists():
|
if not maintplans.exists():
|
||||||
logger.error('No enabled maintenance plans found')
|
logger.error('No enabled maintenance plans found')
|
||||||
|
@ -78,11 +79,17 @@ def maintainer_history(options, logger):
|
||||||
|
|
||||||
no_maintainer, _ = Maintainer.objects.get_or_create(name='No maintainer')
|
no_maintainer, _ = Maintainer.objects.get_or_create(name='No maintainer')
|
||||||
|
|
||||||
|
lockfn = os.path.join(fetchdir, "layerindex.lock")
|
||||||
|
lockfile = utils.lock_file(lockfn)
|
||||||
|
if not lockfile:
|
||||||
|
logger.error("Layer index lock timeout expired")
|
||||||
|
sys.exit(1)
|
||||||
|
try:
|
||||||
for maintplan in maintplans:
|
for maintplan in maintplans:
|
||||||
for item in maintplan.maintenanceplanlayerbranch_set.all():
|
for item in maintplan.maintenanceplanlayerbranch_set.all():
|
||||||
layerbranch = item.layerbranch
|
layerbranch = item.layerbranch
|
||||||
urldir = str(layerbranch.layer.get_fetch_dir())
|
urldir = str(layerbranch.layer.get_fetch_dir())
|
||||||
repodir = os.path.join(settings.LAYER_FETCH_DIR, urldir)
|
repodir = os.path.join(fetchdir, urldir)
|
||||||
layerdir = os.path.join(repodir, layerbranch.vcs_subdir)
|
layerdir = os.path.join(repodir, layerbranch.vcs_subdir)
|
||||||
|
|
||||||
utils.runcmd("git checkout master -f", layerdir, logger=logger)
|
utils.runcmd("git checkout master -f", layerdir, logger=logger)
|
||||||
|
@ -164,6 +171,8 @@ def maintainer_history(options, logger):
|
||||||
raise DryRunRollbackException
|
raise DryRunRollbackException
|
||||||
except DryRunRollbackException:
|
except DryRunRollbackException:
|
||||||
pass
|
pass
|
||||||
|
finally:
|
||||||
|
utils.unlock_file(lockfile)
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
parser = optparse.OptionParser(usage = """%prog [options]""")
|
parser = optparse.OptionParser(usage = """%prog [options]""")
|
||||||
|
|
|
@ -93,6 +93,13 @@ def upgrade_history(options, logger):
|
||||||
if not maintplans.exists():
|
if not maintplans.exists():
|
||||||
logger.error('No enabled maintenance plans found')
|
logger.error('No enabled maintenance plans found')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
lockfn = os.path.join(fetchdir, "layerindex.lock")
|
||||||
|
lockfile = utils.lock_file(lockfn)
|
||||||
|
if not lockfile:
|
||||||
|
logger.error("Layer index lock timeout expired")
|
||||||
|
sys.exit(1)
|
||||||
|
try:
|
||||||
for maintplan in maintplans:
|
for maintplan in maintplans:
|
||||||
for maintplanbranch in maintplan.maintenanceplanlayerbranch_set.all():
|
for maintplanbranch in maintplan.maintenanceplanlayerbranch_set.all():
|
||||||
layerbranch = maintplanbranch.layerbranch
|
layerbranch = maintplanbranch.layerbranch
|
||||||
|
@ -169,6 +176,8 @@ def upgrade_history(options, logger):
|
||||||
|
|
||||||
if commit_list:
|
if commit_list:
|
||||||
utils.runcmd("git clean -dfx", repodir, logger=logger)
|
utils.runcmd("git clean -dfx", repodir, logger=logger)
|
||||||
|
finally:
|
||||||
|
utils.unlock_file(lockfile)
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
parser = optparse.OptionParser(usage = """%prog [options]""")
|
parser = optparse.OptionParser(usage = """%prog [options]""")
|
||||||
|
|
|
@ -147,12 +147,17 @@ if __name__=="__main__":
|
||||||
|
|
||||||
logger.debug("Starting upstream history...")
|
logger.debug("Starting upstream history...")
|
||||||
|
|
||||||
try:
|
|
||||||
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
||||||
if not maintplans.exists():
|
if not maintplans.exists():
|
||||||
logger.error('No enabled maintenance plans found')
|
logger.error('No enabled maintenance plans found')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
lockfn = os.path.join(fetchdir, "layerindex.lock")
|
||||||
|
lockfile = utils.lock_file(lockfn)
|
||||||
|
if not lockfile:
|
||||||
|
logger.error("Layer index lock timeout expired")
|
||||||
|
sys.exit(1)
|
||||||
|
try:
|
||||||
origsyspath = sys.path
|
origsyspath = sys.path
|
||||||
|
|
||||||
for maintplan in maintplans:
|
for maintplan in maintplans:
|
||||||
|
@ -207,3 +212,5 @@ if __name__=="__main__":
|
||||||
raise DryRunRollbackException
|
raise DryRunRollbackException
|
||||||
except DryRunRollbackException:
|
except DryRunRollbackException:
|
||||||
pass
|
pass
|
||||||
|
finally:
|
||||||
|
utils.unlock_file(lockfile)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user