Hi Pierre,

I cloned, checked out the branch, built master, worker and frontend and built my first hello world bottle ap. This is great!!! Exactly what will help me adding some specific views very quickly.

One small thing though. I thought, that I saw yesterday or this morning a sample config file and a sample app somewhere in the doc.
Today I didn't find it anymore.

After some searching / grepping I found the only documentation about parameters in the file smokes/mydashboard.py, which was
sufficient for me to know how to hook in my wsgi app.
The file master/docs/manual/customization.rst#writing-dashboards-with-flask-or-bottle contains a section about implementing dashboard, but doesn't link to any example snippet (In my opinion always the best way to 'quickly' learn) and doesn't mention the params.


thanks again for the wsgi_dashboard


G


On 03/16/2017 09:23 AM, Gelonida wrote:

Hi Pierre,


Thanks a lot.
Yesterday I pulled your PR, built it, but didn't have time to check. So I repulled today, rebuilt and hope I have some spare time at work.

This looks very interesting and should really simplify to implement small uwsgi plugins.



On 14/03/2017 18:25, Pierre Tardy wrote:
Hi Gelonida,

Here is a first version of the flash_dashboard plugin
https://github.com/buildbot/buildbot/pull/3041

there are still needs to be some polishing, but the main ideas are there.

See documentation to get an idea on how to use it
https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5

Please let me know if this is the right level of abstraction for you.

You can use requests to get the REST api, but you can also use app.buildbot_api.dataGet to bypass the REST api layer (and the authorization layer)

Pierre

On Tue, Mar 14, 2017 at 12:05 PM Gelonida <[email protected] <mailto:[email protected]>> wrote:

    Hi Pierre,

    Thanks for your reply,

    In our context we don't need a real time dashboard (at least for
    the start)

    I think I will start with a server side created bottle or flask
    implementation and play with angular at a later time.
    The idea is to have a view quickly for some users and Angular
    views are not quickly to develop if you don't have the habit.
    I did not try with buildbot (and it's js dependencies), but often
    just getting the node / grunt / gulp build environment up and
    running can already be painful. So an attractive Angular web
    front end only later.

    Do I already need a web-dev build environment for hooking up a
    single url into the buildbot env or is there some plugin magic,
    that will avoid this.


    I'd appreciate a lot if you could point  me to information of how
    to integrate any url (static / server side) into the buildbot webif.

    If easier to integrate, then the dynamic web script could just
    yield some JSON file but I'd be curious of how to integrate
    some non Angular HTML.


    My dynamic script could either yield something like:
    <html>
    <body>
    <h1>all release branches<h1>
    <form>
    <select name = "branchgroups">
                      <option value="all">all</option>
                      <option value="release">release</option>
                      <option value="develop">develop</option>
                    </select>
    </form>
    <table>
    . . . .
    </table>
    </body>
    </html>

    or just a json with something similar to:
    { "title": "all release branches",
       "header_row": [ "project", "branch", "builder", "builds"],
      "rows" : [
        [ "pjt one", "rls/v1.0", "lint_results", [ {"buildid": 4,
    "status": "pass"}, {"buildid": 3, "status": "pass"}, {"buildid":
    1, "status": "fail"}] ],
        [ "pjt one", "rls/v1.0", "quick_unittests", [ {"buildid": 4,
    "status": "pass"}, {"buildid": 3, "status": "pass"}, {"buildid":
    1, "status": "fail"}] ],
        [ "pjt one", "rls/v2.0", "lint_results", [ {"buildid": 6,
    "status": "fail"}, {"buildid": 5, "status": "pass"}, {"buildid":
    2, "status": "fail"}] ]
      ]
    }

    whatever is easier to integrate.


    At the moment I start looking at the REST-API calls, and the
    amount of calls, that I would need to implement such view.
    On a first glance this seems quite costly.

    I'll follow up.


    On 03/12/2017 05:48 PM, Pierre Tardy wrote:

        Question(s):
        ----------------
        Did anyone already implement something similar?

    Well console view and waterfall views are such dashboards or
    showing the builds in specific manner.

        Does anyone have a similar issue? If yes how do you solve
        this problem?
        What would be the easiest way to create such a page

    The easiest way if you know angularjs is to indeed write a UI
    plugin. buildbot UI has been designed for this, and this is the
    only way you can write a real time updated dashboard.

        I'm not very good with web development and never tried to
        change the buildbot web front end.
        Would it be simpler to create a standalone page, which
        constructs this contents with the help of the web api?

    Server side servers are indeed a bit easier. You could indeed
    create a separate flask application that would access the REST
    api using python-requests.
    This can help you to write a dashboard to look exactly as you wish.

    I usually recommend to take the effort to learn angularJS and
    front end development as I find it did unlock a lot of
    opportunities.
    I do realize it is not practical for everybody, and we should
    have an easier story for custom dashboard creation that does not
    require front end development mastery.

    I will be happy to help reviewing your flask application, and
    will help you integrate it as a dashboard in the main UI. I
    think it can work with some JS magic to embed a flask
    application into a Buildbot UI plugin.

    Regards
    Pierre




_______________________________________________
users mailing list
[email protected]
https://lists.buildbot.net/mailman/listinfo/users

Reply via email to