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.

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
        ><[email protected] <mailto:[email protected]>> wrote:
        >
        >
        >
        >On Wed, Jan 20, 2016 at 10:26 PM, Brian Avery
        ><[email protected] <mailto:[email protected]>> 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 <[email protected]
        <mailto:[email protected]>> wrote:
        >>
        >>
        >> On Mon, Jan 18, 2016 at 1:13 AM, Barros Pena, Belen
        >> <[email protected]
        <mailto:[email protected]>> wrote:
        >>>
        >>>
        >>>
        >>> On 13/01/2016 16:47, "sujith h" <[email protected]
        <mailto:[email protected]>> 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
        >> [email protected] <mailto:[email protected]>
        >>
        >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
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to