[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