[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