[Toaster] Usage of already cloned layers in toaster
sujith h
sujith.h at gmail.com
Tue Aug 4 06:16:27 PDT 2015
On Tue, Aug 4, 2015 at 4:05 PM, sujith h <sujith.h at gmail.com> wrote:
>
>
> On Mon, Aug 3, 2015 at 3:56 PM, Michael Wood <michael.g.wood at intel.com>
> wrote:
>
>> On 31/07/15 14:06, sujith h wrote:
>>
>>>
>>>
>>> On Wed, Jul 29, 2015 at 8:09 PM, sujith h <sujith.h at gmail.com <mailto:
>>> sujith.h at gmail.com>> wrote:
>>>
>>>
>>>
>>> On Wed, Jul 29, 2015 at 12:21 AM, Michael Wood
>>> <michael.g.wood at intel.com <mailto:michael.g.wood at intel.com>> wrote:
>>>
>>> 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>
>>> <mailto: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>>
>>> <mailto: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>>
>>> <mailto: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>>
>>> <mailto: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>>
>>> <mailto: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>
>>> <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
>>>
>>>
>>> Thank you Michael for such a detailed step to follow. I have
>>> started reading the docs from django mentioned in the link and the
>>> reference mentioned in the mail.
>>>
>>>
>>> I wrote a small piece of code in
>>> bitbake/lib/toaster/toastergui/tests.py. Below is the code ( since I have
>>> written a small code, I thought to share here. Kindly let me know if there
>>> is any problem sharing small code in the mailing list ):
>>> ----------
>>> from django.test import TestCase
>>> from django.test.client import Client
>>> from django.core.urlresolvers import reverse
>>> import json
>>>
>>>
>>> class ImportLayerTestCase(TestCase):
>>> def test_import_layers(self):
>>> client = Client()
>>> json_string = json.dumps({'name':'meta-oe',
>>> 'vcs-url':'/home/sujith/MEL/homework/meta-xyz',
>>> 'git_ref':'c12b9596afd236116b25ce26dbe0d793de9dc7ce',
>>> 'dir_path':'/home/sujith/MEL/homework/meta-xyz/meta-oe',
>>> 'project_id':'1', 'layer_deps':'1'})
>>> response = client.post(reverse('xhr_importlayer'),
>>> {'data':json_string},
>>> 'json',
>>> HTTP_X_REQUESTED_WITH='XMLHttpRequest')
>>> -------------
>>>
>>> Let me know if I am in the right track. After following your mail and
>>> bit of google, helped me in writing this code. My query here is when I try
>>> to print response, it prints an html as follows:
>>>
>> --8<--
>>
>> Yep that's a good start, we currently don't actually pass IN a JSON
>> document for the import layers call, it's just a bunch of parameters in the
>> POST request.
>> So instead of
>>
>> json_string = json.dumps({'name':'meta-oe',
>>>
>>
>> you can do:
>>
>> data = {'name':'meta-oe',
>>
>>
>> and then:
>>
>> response = client.post(reverse('xhr_importlayer', args(1,)),
>> data,
>>
>
>> etc
>>
>
> I modified my code segment to:
> ------------
> data = {'name':'meta-oe',
> 'vcs-url':'/home/sujith/MEL/homework/meta-xyz',
> 'git_ref':'c12b9596afd236116b25ce26dbe0d793de9dc7ce',
> 'dir_path':'/home/sujith/MEL/homework/meta-xyz/meta-oe',
> 'project_id':'1', 'layer_deps':'1'}
> response = client.post(reverse('xhr_importlayer'),
> data, 'json',
> HTTP_X_REQUESTED_WITH='XMLHttpRequest')
> ------------
>
>
Modified code bit further:
response = client.post(reverse('xhr_importlayer'),
data, content_type="application/json"
Also resulted in the same error.
> After making this change when I try to run ./manage.py test toastergui, I
> get an error saying:
>
> --------------
> (venv)sujith at kdekidd0:~/MEL/toaster_work/poky/bitbake/lib/toaster$
> ./manage.py test toastergui
> Creating test database for alias 'default'...
> Content-Type: application/json
>
> {
> "error": "Missing parameters; requires vcs_url, name, git_ref and
> project_id"
> }
> .
> ----------------------------------------------------------------------
> Ran 1 test in 0.184s
>
> OK
> Destroying test database for alias 'default'...
> (venv)sujith at kdekidd0:~/MEL/toaster_work/poky/bitbake/lib/toaster$
> --------------
>
> Bit confusing for me. From the views.py I can see that there is a
> conditional check that is made for vcs_url, git_ref, project_id and name.
> Which we are already providing in the dictionary, data.
>
>
>>
>> Looking at that response I'm wondering if you are you using current
>> master branch? It seems to be showing the old response to that request
>> where you haven't enabled build mode (which is enabled by default in
>> current master). The response should be a JSON response where you have the
>> returned state in it e.g. { "error" : "hint-layer-exists" } We can then
>> parse this and test the various conditions are correct based on the data we
>> sent it.
>>
>
> Just now moved to master branch. I was in the fido branch when I did my
> initial testing.
>
>>
>> Thanks,
>>
>> Michael
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> സുജിത് ഹരിദാസന്
> Bangalore
> <Project>Contributor to KDE project
> http://fci.wikia.com/wiki/Anti-DRM-Campaign
> <Blog> http://sujithh.info
>
--
സുജിത് ഹരിദാസന്
Bangalore
<Project>Contributor to KDE project
http://fci.wikia.com/wiki/Anti-DRM-Campaign
<Blog> http://sujithh.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20150804/0b2cc2b4/attachment-0001.html>
More information about the toaster
mailing list