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
