[yocto] [layerindex-web][PATCH 03/10] layerindex/tools/import_layer.py: Avoid failing if there is any layer to add.
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Oct 3 15:53:58 PDT 2016
On Mon, 26 Sep 2016 14:25:31 Liam R. Howlett wrote:
> Subdirectories are scanned when adding layers. If any of the
> subdirectories or root directory layers already exist in the database,
> then the addition fails. This changes that behaviour to report the
> failure as a warning and remove it from the list. That way, if a repo
> has a new layer added it can be rescanned without issue. Layers being
> rescanned are checked against the vcs_url to ensure there is not a name
> collision. A name collision without the same vcs_url will still produce
> a hard failure.
>
> Note that multiple layers with the same vcs_url are supported in the
> error reporting even though this should never happen.
>
> Signed-off-by: Liam R. Howlett <Liam.Howlett at WindRiver.com>
> ---
> layerindex/tools/import_layer.py | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/layerindex/tools/import_layer.py
> b/layerindex/tools/import_layer.py index 8d9e8cb..21b31f5 100755
> --- a/layerindex/tools/import_layer.py
> +++ b/layerindex/tools/import_layer.py
> @@ -334,8 +334,21 @@ def main():
> else:
> subdir = ''
> if LayerItem.objects.filter(name=layer.name).exists():
> - logger.error('A layer named "%s" already exists in the
> database' % layer_name)
> - sys.exit(1)
> + if
> LayerItem.objects.filter(name=layer.name).exclude(vcs_url=layer.vcs_url).ex
> ists():
> + conflict_list =
> LayerItem.objects.filter(name=layer.name).exclude(vcs_url=layer.vcs_url)
> + cln = ', '
> + conflict_list_urls = []
> + for conflict in conflict_list:
> + conflict_list_urls.append(conflict.vcs_url)
> + cln = cln.join(conflict_list_urls)
Not a huge deal, but is there any particular reason you didn't omit the
initial assignment and do this instead:
cln = ', '.join(conflict_list_urls)
>
> + if not layer_paths:
> + logger.error('No layers added.')
> + sys.exit(1);
> +
Indenting is out here (should always be four spaces for a block indent).
Also typo in the shortlog - "if there is no layer to add" and strictly
speaking there shouldn't be a period at the end.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the yocto
mailing list