mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
utils.py: add REMOVE_LAYER_DEPENDENCIES to remove dependencies
Fixed: 1) set LAYERDEPENDS_openembedded-layer = "core" 2) $ "update.py -l meta-oe -b master" Check from web, its dependency is "openembedded-core" 3) Change LAYERDEPENDS_openembedded-layer = "foo" 4) Run "update.py -l meta-oe -b master" 5) Check from web, its dependency is "openembedded-core and foo", this might be incorrect, now if set REMOVE_LAYER_DEPENDENCIES to true, the old dependency openembedded-core will be removed, the default is False which prints warnings to notify users. And also the existing checking should filter(required=required), otherwise it can't work well when a layer is in both depends and recommends, this can't happen in a normal case, but it would surprise the user when this happens. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
a474dae060
commit
a4d14191f4
|
@ -88,6 +88,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T
|
||||||
logger.debug('Error parsing %s_%s for %s\n%s' % (var, var_name, layer_name, str(vse)))
|
logger.debug('Error parsing %s_%s for %s\n%s' % (var, var_name, layer_name, str(vse)))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
need_remove = None
|
||||||
for dep, ver_list in list(dep_dict.items()):
|
for dep, ver_list in list(dep_dict.items()):
|
||||||
ver_str = None
|
ver_str = None
|
||||||
if ver_list:
|
if ver_list:
|
||||||
|
@ -106,8 +107,14 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T
|
||||||
logger.error('Cannot resolve %s %s (version %s) for %s' % (name, dep, ver_str, layer_name))
|
logger.error('Cannot resolve %s %s (version %s) for %s' % (name, dep, ver_str, layer_name))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Preparing to remove obsolete ones
|
||||||
|
if not need_remove:
|
||||||
|
need_remove = LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).exclude(dependency=dep_layer)
|
||||||
|
else:
|
||||||
|
need_remove = need_remove.exclude(dependency=dep_layer)
|
||||||
|
|
||||||
# Skip existing entries.
|
# Skip existing entries.
|
||||||
existing = list(LayerDependency.objects.filter(layerbranch=layerbranch).filter(dependency=dep_layer))
|
existing = list(LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).filter(dependency=dep_layer))
|
||||||
if existing:
|
if existing:
|
||||||
logger.debug('Skipping %s - already a dependency for %s' % (dep, layer_name))
|
logger.debug('Skipping %s - already a dependency for %s' % (dep, layer_name))
|
||||||
continue
|
continue
|
||||||
|
@ -121,6 +128,16 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T
|
||||||
layerdep.required = required
|
layerdep.required = required
|
||||||
layerdep.save()
|
layerdep.save()
|
||||||
|
|
||||||
|
if need_remove:
|
||||||
|
import settings
|
||||||
|
remove_layer_dependencies = getattr(settings, 'REMOVE_LAYER_DEPENDENCIES', False)
|
||||||
|
if remove_layer_dependencies:
|
||||||
|
logger.info('Removing obsolete dependencies "%s" for layer %s' % (need_remove, layer_name))
|
||||||
|
need_remove.delete()
|
||||||
|
else:
|
||||||
|
logger.warn('Dependencies "%s" are not in %s\'s conf/layer.conf' % (need_remove, layer_name))
|
||||||
|
logger.warn('Either set REMOVE_LAYER_DEPENDENCIES to remove them from the database, or fix conf/layer.conf')
|
||||||
|
|
||||||
def set_layerbranch_collection_version(layerbranch, config_data, logger=None):
|
def set_layerbranch_collection_version(layerbranch, config_data, logger=None):
|
||||||
layerbranch.collection = config_data.getVar('BBFILE_COLLECTIONS', True)
|
layerbranch.collection = config_data.getVar('BBFILE_COLLECTIONS', True)
|
||||||
ver_str = "LAYERVERSION_"
|
ver_str = "LAYERVERSION_"
|
||||||
|
|
|
@ -214,6 +214,9 @@ CORE_LAYER_NAME = "openembedded-core"
|
||||||
# Update records older than this number of days will be deleted every update
|
# Update records older than this number of days will be deleted every update
|
||||||
UPDATE_PURGE_DAYS = 30
|
UPDATE_PURGE_DAYS = 30
|
||||||
|
|
||||||
|
# Remove layer dependencies that are not specified in conf/layer.conf
|
||||||
|
REMOVE_LAYER_DEPENDENCIES = False
|
||||||
|
|
||||||
# Settings for layer submission feature
|
# Settings for layer submission feature
|
||||||
SUBMIT_EMAIL_FROM = 'noreply@example.com'
|
SUBMIT_EMAIL_FROM = 'noreply@example.com'
|
||||||
SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission'
|
SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user