[Toaster] Usage of already cloned layers in toaster

Michael Wood michael.g.wood at intel.com
Tue Jul 28 11:51:00 PDT 2015


On 27/07/15 16:23, sujith h wrote:
>
>
> On Mon, Jul 27, 2015 at 6:55 PM, Michael Wood 
> <michael.g.wood at intel.com <mailto:michael.g.wood at intel.com>> wrote:
>
>     On 27/07/15 11:31, sujith h wrote:
>
>
>
>         On Mon, Jul 27, 2015 at 3:39 PM, Barros Pena, Belen
>         <belen.barros.pena at intel.com
>         <mailto:belen.barros.pena at intel.com>
>         <mailto:belen.barros.pena at intel.com
>         <mailto:belen.barros.pena at intel.com>>> wrote:
>
>
>
>             On 27/07/2015 07:54, "sujith h" <sujith.h at gmail.com
>         <mailto:sujith.h at gmail.com>
>             <mailto:sujith.h at gmail.com <mailto:sujith.h at gmail.com>>>
>         wrote:
>
>             >
>             >
>             >On Fri, Jul 24, 2015 at 6:36 PM, Barros Pena, Belen
>             ><belen.barros.pena at intel.com
>         <mailto:belen.barros.pena at intel.com>
>             <mailto:belen.barros.pena at intel.com
>         <mailto:belen.barros.pena at intel.com>>> wrote:
>             >
>             >
>             >
>             >On 24/07/2015 13:57, "sujith h" <sujith.h at gmail.com
>         <mailto:sujith.h at gmail.com>
>             <mailto:sujith.h at gmail.com <mailto:sujith.h at gmail.com>>>
>         wrote:
>             >
>             >
>             >* Which version of Yocto Project you are using (fido or
>         master)?
>             >
>             >I am using fido branch.
>             >
>             >
>             >* Which release you have selected for your project?
>             >
>             >
>             >In the release I have selected "Local Yocto Project"
>             >
>             >
>             >* If you click the "view all compatible layers" link and
>         in that
>             page you
>             >search for meta-oe, do you get any results?
>             >
>             >I can see only "meta-yocto-bsp", "meta-yocto" and
>             "openembedded-core".
>             >Attached screenshot of the same.
>             >
>             >
>             >Also attaching screenshot of page where I try to import
>         meta-oe
>             from my
>             >locally cloned location.
>             >
>             >
>             >Below is the file structure I have:
>             >
>             >sujith at kdekid:~/MEL/homework$ pwd
>             >/home/sujith/MEL/homework
>             >sujith at kdekid:~/MEL/homework$ ls -l
>             >total 5180
>             >drwxrwxr-x 19 sujith sujith    4096 Jun 12 18:40
>         meta-oe-local
>             >drwxrwxr-x 19 sujith sujith    4096 Jul 24 18:04
>             meta-openembedded-local
>             >drwxrwxr-x  8 sujith sujith    4096 Jul 24 18:02
>         meta-qt5-local
>             >drwxrwxr-x 11 sujith sujith    4096 Jul 27 12:07 poky
>             >drwxrwxr-x  2 sujith sujith    4096 Jul 27 12:08
>             toaster_build_artifacts
>             >-rw-r--r--  1 sujith sujith 5277696 Jul 27 12:19
>         toaster.sqlite
>             >drwxrwxr-x  6 sujith sujith    4096 Jul 24 16:25 venv
>             >sujith at kdekid:~/MEL/homework$
>             >
>
>             Right, I've managed to reproduce this. Looking at the browser
>             console, it
>             might be a problem with the javascript doing the layer name
>             validation. If
>             you change the layer name to something completely random
>         that does not
>             exist in the Toaster database (something like meta-xyz),
>         can you
>             import
>             the layer?
>
>
>         Am bit new to the web world. So I gave a try with firebug to
>         debug which script ( Javascript or any ) call happens
>         when I click "Import  and add to project" button. Even after
>         changing meta-oe repo to meta-xyz as per suggestion,
>         the result remains same. But this is the output I see in the
>         firebug console:
>         |{"current_id": 5, "current_url":
>         "git://git.openembedded.org/meta-openembedded
>         <http://git.openembedded.org/meta-openembedded>
>         <http://git.openembedded.org/meta-openembedded>", "error":
>         "hint-layer-exists-with-different-url"||}|
>         hint-layer-exists-with-different-url
>
>         Also attaching the screenshot of the same ( to get more clarity ).
>
>
>     Thanks for this, I noticed this wasn't working properly last week,
>     and rolled a couple of patches to fix these regressions.
>
>
>     http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=michaelw/toaster/wip-nav-project-changes&id=0181c56dd608427c0a7bd986df75bf7a1189e064
>
>     and
>
>
>     http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=michaelw/toaster/wip-nav-project-changes&id=aa5b023f03f5465ea22318a1f21199ce434eb700
>
>     I have a few other things to fix on this branch as I have been
>     fixing a number of things to allow me to test the new project
>     page, I'm intending to roll a separate branch for review on it.
>
>     You've highlighted that we need a unit test which does a layer
>     import using the back end API calls, which although it wouldn't
>     have caught this error would be really good to have, if you're
>     interested in helping with that?
>
>
> It would be my pleasure to help :) I might need some assistance as I 
> am learning Django. May be some hint like where to start with or so.
>

This is the best place to start
https://docs.djangoproject.com/en/1.6/topics/testing/overview/

In ./bitbake 
<https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake>/lib 
<https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib>/toaster 
<https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster>/toastergui 
<https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster/toastergui>/tests.py 
<https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster/toastergui/tests.py>

We can add something like

class ImportLayerTestCase(|ProvisionedLayersProjectTestCase|):
....
...
     def test_import_layer(self):
         client.post(reverse('xhr_importlayer',.....

...

We can then use the JSON response from the client to help validate the 
data coming back as well as checking the import layer actually entered 
the database.

There are a few examples in the yocto error-report-web project too that 
might be useful to look at e.g.
  http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/tree/Post/test.py#n153 <http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/tree/Post/test.py#n153>

You can run the test by doing running ./manage.py test toastergui


Thanks,

Michael


More information about the toaster mailing list