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
|
||||
"""
|
||||
def maintainer_history(options, logger):
|
||||
fetchdir = settings.LAYER_FETCH_DIR
|
||||
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
||||
if not maintplans.exists():
|
||||
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')
|
||||
|
||||
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 item in maintplan.maintenanceplanlayerbranch_set.all():
|
||||
layerbranch = item.layerbranch
|
||||
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)
|
||||
|
||||
utils.runcmd("git checkout master -f", layerdir, logger=logger)
|
||||
|
@ -164,6 +171,8 @@ def maintainer_history(options, logger):
|
|||
raise DryRunRollbackException
|
||||
except DryRunRollbackException:
|
||||
pass
|
||||
finally:
|
||||
utils.unlock_file(lockfile)
|
||||
|
||||
if __name__=="__main__":
|
||||
parser = optparse.OptionParser(usage = """%prog [options]""")
|
||||
|
|
|
@ -93,6 +93,13 @@ def upgrade_history(options, logger):
|
|||
if not maintplans.exists():
|
||||
logger.error('No enabled maintenance plans found')
|
||||
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 maintplanbranch in maintplan.maintenanceplanlayerbranch_set.all():
|
||||
layerbranch = maintplanbranch.layerbranch
|
||||
|
@ -169,6 +176,8 @@ def upgrade_history(options, logger):
|
|||
|
||||
if commit_list:
|
||||
utils.runcmd("git clean -dfx", repodir, logger=logger)
|
||||
finally:
|
||||
utils.unlock_file(lockfile)
|
||||
|
||||
if __name__=="__main__":
|
||||
parser = optparse.OptionParser(usage = """%prog [options]""")
|
||||
|
|
|
@ -147,12 +147,17 @@ if __name__=="__main__":
|
|||
|
||||
logger.debug("Starting upstream history...")
|
||||
|
||||
try:
|
||||
maintplans = MaintenancePlan.objects.filter(updates_enabled=True)
|
||||
if not maintplans.exists():
|
||||
logger.error('No enabled maintenance plans found')
|
||||
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
|
||||
|
||||
for maintplan in maintplans:
|
||||
|
@ -207,3 +212,5 @@ if __name__=="__main__":
|
|||
raise DryRunRollbackException
|
||||
except DryRunRollbackException:
|
||||
pass
|
||||
finally:
|
||||
utils.unlock_file(lockfile)
|
||||
|
|
Loading…
Reference in New Issue
Block a user