Re: [Toaster] [PATCH] toaster/toastergui: Bug-fix verify given layer path only if import/add local layer

Richard Purdie <[email protected]> Fri, 05 Jan 2024 07:49:45 +0000
Newsgroups org.yoctoproject.lists.toaster
Message-ID <ff1a3fa10e20efc5692740eab32df434cfff5c5c.camel@linuxfoundation.org>
On Fri, 2024-01-05 at 00:00 +0000, Richard Purdie via
lists.yoctoproject.org wrote:
> On Thu, 2024-01-04 at 16:18 +0100, Alassane Yattara wrote:
> > Signed-off-by: Alassane Yattara <[email protected]>
> > ---
> >  lib/toaster/toastergui/api.py | 13 ++++++++-----
> >  1 file changed, 8 insertions(+), 5 deletions(-)
> >=20
> > diff --git a/lib/toaster/toastergui/api.py b/lib/toaster/toastergui/api=
.py
> > index a06ffc00..e367bd91 100644
> > --- a/lib/toaster/toastergui/api.py
> > +++ b/lib/toaster/toastergui/api.py
> > @@ -227,7 +227,7 @@ class XhrSetDefaultImageUrl(View):
> >  #    same logical name
> >  #  * Each project that uses a layer will have its own
> >  #    LayerVersion and Project Layer for it
> > -#  * During the Paroject delete process, when the last
> > +#  * During the Project delete process, when the last
> >  #    LayerVersion for a 'local_source_dir' layer is deleted
> >  #    then the Layer record is deleted to remove orphans
> >  #
> > @@ -457,15 +457,18 @@ class XhrLayer(View):
> >                               'layerdetailurl':
> >                               layer_dep.get_detailspage_url(project.pk)=
})
> > =20
> > -            # Scan the layer's content and update components
> > -            scan_layer_content(layer,layer_version)
> > +            # Only scan_layer_content if layer is local
> > +            if layer_data.get('local_source_dir', None):
> > +                # Scan the layer's content and update components
> > +                scan_layer_content(layer,layer_version)
> > =20
> >          except Layer_Version.DoesNotExist:
> >              return error_response("layer-dep-not-found")
> >          except Project.DoesNotExist:
> >              return error_response("project-not-found")
> > -        except KeyError:
> > -            return error_response("incorrect-parameters")
> > +        except KeyError as e:
> > +            _log("KeyError: %s" % e)
> > +            return error_response(f"incorrect-parameters")
> > =20
> >          return JsonResponse({'error': "ok",
> >                               'imported_layer': {
>=20
> Thanks! I made 4 test runs with this applied and the failure counts
> reduced significantly, there was only one failure on one build:
>=20
> https://autobuilder.yoctoproject.org/typhoon/#/builders/161/builds/116
>=20
> I've merged this patch and scheduled a few more test runs.

I ran 5 more runs, we had 2 successes and 3 failures:

https://autobuilder.yoctoproject.org/typhoon/#/builders/161/builds/119
tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::tes=
t_project_config_tab_right_section

https://autobuilder.yoctoproject.org/typhoon/#/builders/161/builds/120
tests/functional/test_create_new_project.py::TestCreateNewProject::test_cre=
ate_new_project_dunfell

https://autobuilder.yoctoproject.org/typhoon/#/builders/161/builds/122
tests/functional/test_create_new_project.py::TestCreateNewProject::test_cre=
ate_new_project_dunfell

With 119 above being:
tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::tes=
t_image_recipe_show_rows

So I think there is still something making the tests a little
unreliable unfortunately :(.

Cheers,

Richard