[Toaster] Build cancellation from toaster

sujith h sujith.h at gmail.com
Sun Feb 21 22:23:14 PST 2016


On Sat, Feb 20, 2016 at 4:41 AM, Michael Wood <michael.g.wood at intel.com>
wrote:

> On 09/02/16 13:40, sujith h wrote:
>
>>
>> snip
>>
>> Hi Belen as per our discussions, I have updated the changes at
>> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=sujith/toaster-build-cancel14
>> .
>>
>
> A few code review notes on those commits
>
> toaster: update BuildEnvironmentController and BitbakeController
>
> [ MW
>  - Not sure why getArtifact method is being removed here
>  - The arguments in the __init__ need realigning
> ]
>
> toaster: add cancelled state in models
>
> [ MW
>  - finished_criteria white space - we try to stick to 80 cols if possible
>  - The commit summary ideally could also include a little more info e.g.
> toaster: models Add cancelled state to build outcome
>  - After modifying model definitions you also need to add a database
> migration running. ./mange.py makemigrations will do this for you
> ]
>
> toaster: add function cancelBuild to mrb_section.html
>
> [ MW this patch doesn't seem to be needed as there are only unused
> variables here which are wrapping libtoaster.cancelABuild ]
>
> toaster: add get_tasks function
>
> [ MW I prefer this compared to the filters, but as this is already
> implemented and currently in use, it's best not to duplicate it. See the
> custom filter in projectfilters.py and it's usage in the mrb_section
> template. More info about filters here
> https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#ref-templates-builtins-filters
> ]
>
> toaster: update css for build cancellation
>
> [ MW This css isn't needed, the build button just needs to have the class
> 'pull-right' ]
>
> toaster: update toastergui's table for build cancellation
>
> [ MW
>  - It's neater to us Use exclude(Q(conditions) | Q(conditions)) in exclude
> instead of a new call
>  - Use the 'enum' for the state CANCELLED instead of '3'  - 3 might change
> and this could introduce a bug
>  - No need to re-get the build object, it's part of buildrequest.build
>  - I can understand the while loop and the timing issue we have here I
> will look into another solution for this because we could end up in an
> infinite loop here.
> ]
>
> toaster: add cancel button to UI
>
> [ MW
>  - Here we don't want to use an inline onclick= handlers in the html
> element with the django template code. To keep a good separation of JS,
> django template and html we make use of the data attribute of the element
> and then retrieve it in the JS.
> - Avoid using the name of the 'command line builds' project to identify
> it, if that name changes this will fail. Better to use the (admittedly
> obscure) property 'is_default' on the project object to identify it
> ]
>
> As we've not been able to help you much with this feature I've fixed all
> the above issues and have pushed a new branch at
>
>
> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=michaelw/sujith/build-cancel
>
> It's not quite finished yet - some more testing is needed. I've added you
> as a co-author on some of the commits in which I've added or changed
> additional code. Hope this is OK.
>

Michael I am perfectly OK with your decision. Thanks a bunch for pointing
out the issues which I have made in my patch set and pointing out them
aptly. I will have a look at the new branch mentioned today.

Thanks,
Sujith H


>
> Thanks,
>
> Michael
>
>
>
>>
>>     Thanks,
>>     Sujith H
>>
>>
>>
>>
>>         >
>>         >This would help to hide cancel button for builds triggered
>>         from command
>>         >line in toaster.
>>         >
>>         >On Tue, Jan 26, 2016 at 7:52 PM, sujith h
>>         ><sujith.h at gmail.com <mailto:sujith.h at gmail.com>> wrote:
>>         >
>>         >
>>         >
>>         >On Wed, Jan 20, 2016 at 10:26 PM, Brian Avery
>>         ><avery.brian at gmail.com <mailto:avery.brian at gmail.com>> wrote:
>>         >
>>         >Pointer to xmlrpc test client -
>>         >https://bitbucket.org/srccode/xmlrpc-test-tool
>>         >
>>         >
>>         >
>>         >Today I gave a try with xmlrpc-test-tool. I tried to install
>>         php on my
>>         >local machine, followed by apache and then configured it to
>>         get it
>>         >working with php. Using this tool, I was getting the error as
>>         attached in
>>         >the screenshot.
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >-b
>>         >
>>         >On Mon, Jan 18, 2016 at 8:12 AM, sujith h <sujith.h at gmail.com
>>         <mailto:sujith.h at gmail.com>> wrote:
>>         >>
>>         >>
>>         >> On Mon, Jan 18, 2016 at 1:13 AM, Barros Pena, Belen
>>         >> <belen.barros.pena at intel.com
>>         <mailto:belen.barros.pena at intel.com>> wrote:
>>         >>>
>>         >>>
>>         >>>
>>         >>> On 13/01/2016 16:47, "sujith h" <sujith.h at gmail.com
>>         <mailto:sujith.h at gmail.com>> wrote:
>>         >>>
>>         >>> >
>>         >>> >I have updated another patch set with which I have
>>         verified with:
>>         >>> >
>>         >>> >a) cancellation of a normal build
>>         >>> >
>>         >>> >b) run again and cancel the build
>>         >>> >
>>         >>> >c) stop toaster + start toaster + run again   and cancel
>>         the build
>>         >>> >
>>         >>>
>>         >>> >
>>         >>>>
>> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=sujith/to
>>         >>>>ast
>>         >>> >er-build-cancel12
>>         >>>
>>         >>> Sorry for the delay in looking into this. Cancellation
>>         seems to be
>>         >>>working
>>         >>> well for me for any builds I start from Toaster. However,
>>         it doesn't
>>         >>>seem
>>         >>> to work for builds I start from the command line and I
>>         track through
>>         >>> Toaster. For those builds, a 'cancel' button appears, but
>>         when I click
>>         >>>it,
>>         >>> nothing happens: the build proceeds until it completes.
>>         >>>
>>         >>> I am not even sure if the 'cancel' functionality can work
>>         for builds
>>         >>> started from the command line, although it would be great
>>         if it did.
>>         >>>If it
>>         >>> is not possible to make it work, then the cancel button
>>         should not
>>         >>>display
>>         >>> for those builds. We can provide a message instead, as we
>>         do in the
>>         >>>case
>>         >>> of the 'run again' button, explaining that builds started
>>         from the
>>         >>>command
>>         >>> line can only be cancelled from the command line.
>>         >>
>>         >>
>>         >> Somehow when i try to use the same logic to cancel the
>>         build triggered
>>         >>from
>>         >> command line ( with small modification in the code though),
>>         I am getting
>>         >> error in the toaster_web.log as:
>>         >>
>>         >> ProtocolError: <ProtocolError for
>>         >0.0.0.0:42952/ <http://0.0.0.0:42952/>
>>         <http://0.0.0.0:42952/>: 503 Service Unavailable>
>>         >>
>>         >> Not able to understand why it is not able to connect to the
>>         port.
>>         >>Because as
>>         >> per my understanding when a build is triggered from
>>         toaster, we connect
>>         >>to
>>         >> the host:port and execute the commands. The runcommand is
>>         failing badly
>>         >>with
>>         >> the log:
>>         >>
>>         >> 2016-01-18 16:06:05,608 ERROR Internal Server Error:
>>         >> /toastergui/project/1/builds/
>>         >> Traceback (most recent call last):
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/venv/lib/python2.7/site-packages/django/cor
>>         >>e/handlers/base.py",
>>         >> line 132, in get_response
>>         >>     response = wrapped_callback(request, *callback_args,
>>         >>**callback_kwargs)
>>         >>   File
>>         >>
>>
>> "/home/sujith/build/poky-push/bitbake/lib/toaster/toastergui/views.py",
>>         >>line
>>         >> 171, in returned_wrapper
>>         >>     context = view(request, *args, **kwargs)
>>         >>   File
>>         >>
>>
>> "/home/sujith/build/poky-push/bitbake/lib/toaster/toastergui/views.py",
>>         >>line
>>         >> 2896, in projectbuilds
>>         >>     bbctrl.forceShutDown()
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/bitbake/lib/toaster/bldcontrol/bbcontroller
>>         >>.py",
>>         >> line 73, in forceShutDown
>>         >>     return self._runCommand(["stateForceShutdown"])
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/bitbake/lib/toaster/bldcontrol/bbcontroller
>>         >>.py",
>>         >> line 50, in _runCommand
>>         >>     result, error = self.connection.runCommand(command)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1240, in
>>         __call__
>>         >>     return self.__send(self.__name, args)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1599, in
>>         __request
>>         >>     verbose=self.__verbose
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1280, in
>>         request
>>         >>     return self.single_request(host, handler, request_body,
>>         verbose)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1328, in
>>         single_request
>>         >>     response.msg,
>>         >> ProtocolError: <ProtocolError for
>>         >0.0.0.0:42952/ <http://0.0.0.0:42952/>
>>         <http://0.0.0.0:42952/>: 503 Service Unavailable>
>>         >> Internal Server Error: /toastergui/project/1/builds/
>>         >> Traceback (most recent call last):
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/venv/lib/python2.7/site-packages/django/cor
>>         >>e/handlers/base.py",
>>         >> line 132, in get_response
>>         >>     response = wrapped_callback(request, *callback_args,
>>         >>**callback_kwargs)
>>         >>   File
>>         >>
>>
>> "/home/sujith/build/poky-push/bitbake/lib/toaster/toastergui/views.py",
>>         >>line
>>         >> 171, in returned_wrapper
>>         >>     context = view(request, *args, **kwargs)
>>         >>   File
>>         >>
>>
>> "/home/sujith/build/poky-push/bitbake/lib/toaster/toastergui/views.py",
>>         >>line
>>         >> 2896, in projectbuilds
>>         >>     bbctrl.forceShutDown()
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/bitbake/lib/toaster/bldcontrol/bbcontroller
>>         >>.py",
>>         >> line 73, in forceShutDown
>>         >>     return self._runCommand(["stateForceShutdown"])
>>         >>   File
>>         >>
>>
>> >>"/home/sujith/build/poky-push/bitbake/lib/toaster/bldcontrol/bbcontroller
>>         >>.py",
>>         >> line 50, in _runCommand
>>         >>     result, error = self.connection.runCommand(command)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1240, in
>>         __call__
>>         >>     return self.__send(self.__name, args)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1599, in
>>         __request
>>         >>     verbose=self.__verbose
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1280, in
>>         request
>>         >>     return self.single_request(host, handler, request_body,
>>         verbose)
>>         >>   File "/usr/lib64/python2.7/xmlrpclib.py", line 1328, in
>>         single_request
>>         >>     response.msg,
>>         >> ProtocolError: <ProtocolError for
>>         >0.0.0.0:42952/ <http://0.0.0.0:42952/>
>>         <http://0.0.0.0:42952/>: 503 Service Unavailable>
>>         >> [18/Jan/2016 16:06:05] "POST /toastergui/project/1/builds/
>>         HTTP/1.1" 500
>>         >> 13414
>>         >>
>>         >>
>>         >> Any helping hand would be appreciated. More over I would
>>         also like to
>>         >>know
>>         >> if we can pass commands to builds triggered from command line?
>>         >>
>>         >> Thanks,
>>         >> Sujith H
>>         >>
>>         >> --
>>         >> സുജിത് ഹരിദാസന്
>>         >> Bangalore
>>         >> <Project>Contributor to KDE project
>>         >>
>>         >http://fci.wikia.com/wiki/Anti-DRM-Campaign
>>         ><http://fci.wikia.com/wiki/Anti-DRM-Campaign>
>>         >> <Blog> http://sujithh.info
>>         >>
>>         >
>>         >
>>         >> --
>>         >> _______________________________________________
>>         >> toaster mailing list
>>         >> toaster at yoctoproject.org <mailto:toaster at yoctoproject.org>
>>
>>         >>
>>         >https://lists.yoctoproject.org/listinfo/toaster
>>         ><https://lists.yoctoproject.org/listinfo/toaster>
>>         >>
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >--
>>         >സുജിത് ഹരിദാസന്
>>         >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
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>         >
>>
>>
>>
>>
>>     --     സുജിത് ഹരിദാസന്
>>     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
>>
>>
>>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>



-- 
സുജിത് ഹരിദാസന്
Bangalore
<Project>Contributor to KDE project
<Project>Contributor to Yocto 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/20160222/579d0198/attachment-0001.html>


More information about the toaster mailing list