mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
rrs: Add exception handling to vercmp_string call
Improve robustness adding a exception handling when two versions are compared because sometimes fails due to incompatible version format. Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This commit is contained in:
parent
4b0995e0a7
commit
b2419f2b85
|
@ -9,6 +9,8 @@ from django.db import transaction
|
||||||
from layerindex.models import Recipe
|
from layerindex.models import Recipe
|
||||||
from rrs.models import Maintainer, RecipeUpgrade
|
from rrs.models import Maintainer, RecipeUpgrade
|
||||||
|
|
||||||
|
from recipe_upstream import vercmp_string
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Discovers the upgraded packages in the last day.
|
Discovers the upgraded packages in the last day.
|
||||||
"""
|
"""
|
||||||
|
@ -72,9 +74,13 @@ def update_recipe_upgrades(layerbranch, repodir, layerdir, config_data, logger):
|
||||||
prev_pv = None
|
prev_pv = None
|
||||||
|
|
||||||
# if no previous version in database consider it an upgrade
|
# if no previous version in database consider it an upgrade
|
||||||
if not prev_pv or prev_pv != pv:
|
try:
|
||||||
logger.debug("Detected upgrade for %s in commit %s." % (pn, commit))
|
if not prev_pv or vercmp_string(prev_pv, pv) == -1:
|
||||||
create_upgrade(commit, repodir, recipe, pv, logger)
|
logger.debug("Detected upgrade for %s in commit %s." % (pn, commit))
|
||||||
|
create_upgrade(commit, repodir, recipe, pv, logger)
|
||||||
|
except:
|
||||||
|
logger.error("vercmp_string: %s, %s - %s" % (recipe.pn,
|
||||||
|
prev_pv, pv))
|
||||||
|
|
||||||
utils.runcmd("git checkout origin/master ", repodir)
|
utils.runcmd("git checkout origin/master ", repodir)
|
||||||
utils.runcmd("git branch -D " + temp_branch, repodir)
|
utils.runcmd("git branch -D " + temp_branch, repodir)
|
||||||
|
|
|
@ -207,12 +207,20 @@ def get_upstream_info_thread(envdata, result, recipe_mutex, result_mutex, logger
|
||||||
|
|
||||||
if not recipe_result['version']:
|
if not recipe_result['version']:
|
||||||
recipe_result['status'] = 'U' # Unknown, need to review why
|
recipe_result['status'] = 'U' # Unknown, need to review why
|
||||||
elif vercmp_string(recipe_pv, recipe_result['version']) == -1:
|
else:
|
||||||
recipe_result['status'] = 'N' # Not update
|
try:
|
||||||
elif vercmp_string(recipe_pv, recipe_result['version']) == 0:
|
cmp_ver = vercmp_string(recipe_pv, recipe_result['version'])
|
||||||
recipe_result['status'] = 'Y' # Up-to-date
|
|
||||||
elif vercmp_string(recipe_pv, recipe_result['version']) == 1:
|
if cmp_ver == -1:
|
||||||
recipe_result['status'] = 'D' # Downgrade, need to review why
|
recipe_result['status'] = 'N' # Not update
|
||||||
|
elif cmp_ver == 0:
|
||||||
|
recipe_result['status'] = 'Y' # Up-to-date
|
||||||
|
elif cmp_ver == 1:
|
||||||
|
recipe_result['status'] = 'D' # Downgrade, need to review why
|
||||||
|
except:
|
||||||
|
recipe_result['status'] = 'U' # Unknown
|
||||||
|
logger.error("vercmp_string: %s, %s - %s" % (recipe.pn, recipe_pv,
|
||||||
|
recipe_result['version']))
|
||||||
|
|
||||||
result_mutex.acquire()
|
result_mutex.acquire()
|
||||||
result[recipe] = recipe_result
|
result[recipe] = recipe_result
|
||||||
|
|
|
@ -88,14 +88,19 @@ def upstream_history(directory, logger):
|
||||||
if ru.version == '':
|
if ru.version == '':
|
||||||
ru.status = 'U' # Unknown
|
ru.status = 'U' # Unknown
|
||||||
else:
|
else:
|
||||||
cmp_ver = vercmp_string(row['Version'], ru.version)
|
try:
|
||||||
|
cmp_ver = vercmp_string(row['Version'], ru.version)
|
||||||
|
if cmp_ver == -1:
|
||||||
|
ru.status = 'N' # Not updated
|
||||||
|
elif cmp_ver == 0:
|
||||||
|
ru.status = 'Y' # Up-to-date
|
||||||
|
else:
|
||||||
|
ru.status = 'D' # Downgrade
|
||||||
|
except:
|
||||||
|
ru.status = 'U'
|
||||||
|
logger.error("vercmp_string: %s, %s - %s" % (row['PackageName'],
|
||||||
|
row['Version'], ru.version))
|
||||||
|
|
||||||
if cmp_ver == -1:
|
|
||||||
ru.status = 'N' # Not updated
|
|
||||||
elif cmp_ver == 0:
|
|
||||||
ru.status = 'Y' # Up-to-date
|
|
||||||
else:
|
|
||||||
ru.status = 'D' # Downgrade
|
|
||||||
ru.type = 'A' # Automatic
|
ru.type = 'A' # Automatic
|
||||||
ru.no_update_reason = row['NoUpgradeReason']
|
ru.no_update_reason = row['NoUpgradeReason']
|
||||||
ru.date = ru.history.end_date
|
ru.date = ru.history.end_date
|
||||||
|
|
Loading…
Reference in New Issue
Block a user