Hi,

I have updated patch :
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=sujith/toaster-build-cancel2

Let me know if this looks ok or needs more enhancement(s)?

Thanks,
Sujith H

On Mon, Dec 21, 2015 at 1:37 PM, sujith h <[email protected]> wrote:

> Hi,
>
>
> On Sat, Dec 19, 2015 at 8:57 PM, sujith h <[email protected]> wrote:
>
>> Hi,
>>
>> On Fri, Dec 18, 2015 at 7:16 PM, Ed Bartosh <[email protected]>
>> wrote:
>>
>>> Hi Sujith,
>>>
>>> Can you split your changes please?
>>> I'd suggest to at least separate backend changes from frontend ones.
>>>
>>> Having uihelper.py changes in a separate commit would be nice too.
>>> It looks like you've spotted correctly that findServerDetails is not
>>> used anywhere in bitbake code. You can remove it in a separate commit as
>>> it looks unrelated to the rest of the patch.
>>>
>>> +1 for Michael's suggestion to use build controller.
>>>
>>
>>  The problem I see using build controller is:
>>
>> I have tried with the build controller approach earlier and below are my
>> findings:
>> Lets say if I try to use getBuildEnvironmentController function as:
>>
>> localhostbctrl = localhostbecontroller.LocalhostBEController(be) # in
>> toastergui/views.py
>> localhostbctrl.getBBController()
>>
>> Then the failure starts when the control reaches function startBBServer
>> and the initial assert fails.
>>
>> Even if I try to add a wrapper function known as cancelBuild in
>> bbcontroller.py:
>>
>>     def conncetToServer(self):
>>         server = bb.server.xmlrpc.BitBakeXMLRPCClient()
>>         server.initServer()
>>         server.saveConnectionDetails("%s:%s" % (self.be.bbaddress,
>> self.be.bbport))
>>         self.connection = server.establishConnection([])
>>
>>         self.be.bbtoken = self.connection.transport.connection_token
>>         self.be.save()
>>
>>         return BitbakeController(self.connection)
>>
>> This would fail in server.establishConnection line. Because internally it
>> does call connect function in xmlrpc.py which does call
>> uievent.BBUIEventQueue. This call causes exception, because in
>> registerEventHandler function  there is a line:
>>
>>  if (self.cooker.state in [bb.cooker.state.parsing,
>> bb.cooker.state.running]):
>>
>> I couldn't tackle this situation and that is the reason why I opted for
>> another approach from uihelper's function findServerDetails.
>> Is there any other way using which I can tackle this situation from
>> bbcontroller.py? As per my investigation the problem bubbles around with
>> registerEventHandler function with this approach.
>>
>
> Another approach which I followed was ( using bbcontroller.py ) by writing
> a new function getBBServer:
>
>     def getBBServer(self, host, port):
>         """ returns a connection from running server. This helps in
> cancellation of bitbake from
>             toaster UI.
>         """
>         server, transport = bb.server.xmlrpc._create_server(host, port)
>         return server
>
> And then call this function from toastergui/views.py file:
>
>                         br =
> BuildRequest.objects.select_for_update().get(project = prj, pk = i,
> state__lte = BuildRequest.REQ_INPROGRESS)
>                         bbctrl =
> bbcontroller.BuildEnvironmentController(br.environment)
>                         server =
> bbctrl.getBBServer(br.environment.bbaddress, br.environment.bbport)
>                         logger.warning(br.environment.LOCK_STATE)
>                         server.runCommand(["stateForceShutdown"])
>                         while True:
>                             if len(BuildRequest.objects.get(pk = i
> ).build.errors) > 0:
>                                 br.state = BuildRequest.REQ_DELETED
>                                 br.save()
>                                 build = BuildRequest.objects.get(pk = i
> ).build
>                                 build.outcome = 0
>                                 build.save()
>                                 break
>
>
> Nothing else is coming into my mind. Any pointers?
>
>>
>> Thanks,
>> Sujith H
>>
>>
>>> On Thu, Dec 17, 2015 at 10:26:11PM +0530, sujith h wrote:
>>> > Hi,
>>> >
>>> > I have posted my changes in:
>>> >
>>> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=sujith/toaster-build-cancel
>>> >
>>> > Kindly review my changes and let me know if I have to make changes. I
>>> would
>>> > be happy to do so.
>>> >
>>> > Thanks for all helping hand from RP, Ed, Michael, Belen and Paul.
>>> >
>>> > Thanks,
>>> > Sujith H
>>>
>>> --
>>> Regards,
>>> Ed
>>>
>>
>>
>>
>> --
>> സുജിത് ഹരിദാസന്
>> 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
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to