[Toaster] Usage of already cloned layers in toaster
sujith h
sujith.h at gmail.com
Tue Aug 4 03:35:43 PDT 2015
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')
------------
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20150804/74b3015a/attachment-0001.html>
More information about the toaster
mailing list