<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi Pierre,</p>
<p><br>
</p>
<p>I cloned, checked out the branch, built master, worker and
frontend and built my first hello world bottle ap.<br>
This is great!!! Exactly what will help me adding some specific
views very quickly.<br>
</p>
<p>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.<br>
Today I didn't find it anymore.<br>
</p>
<p>After some searching / grepping I found the only documentation
about parameters in the file smokes/mydashboard.py, which was <br>
sufficient for me to know how to hook in my wsgi app. <br>
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.<br>
</p>
<p><br>
</p>
<p>thanks again for the wsgi_dashboard</p>
<p><br>
</p>
<p>G</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 03/16/2017 09:23 AM, Gelonida wrote:<br>
</div>
<blockquote
cite="mid:3a2fa231-41fe-8eaa-399c-0d490fea4004@gmail.com"
type="cite">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<p>Hi Pierre,</p>
<p><br>
</p>
<p>Thanks a lot.<br>
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.</p>
<p>This looks very interesting and should really simplify to
implement small uwsgi plugins.</p>
<p><br>
</p>
<br>
<div class="moz-cite-prefix">On 14/03/2017 18:25, Pierre Tardy
wrote:<br>
</div>
<blockquote
cite="mid:CAJ+soVc+z9SVNRdY_nB-b6RRxC_AboA8BVAX1W+JSHVimE+NoA@mail.gmail.com"
type="cite">
<div dir="ltr">Hi Gelonida,
<div><br>
</div>
<div>Here is a first version of the flash_dashboard plugin</div>
<div><a moz-do-not-send="true"
href="https://github.com/buildbot/buildbot/pull/3041">https://github.com/buildbot/buildbot/pull/3041</a></div>
<div><br>
</div>
<div>there are still needs to be some polishing, but the main
ideas are there.</div>
<div><br>
</div>
<div>See documentation to get an idea on how to use it</div>
<div><a moz-do-not-send="true"
href="https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5">https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5</a></div>
<div><br>
</div>
<div>Please let me know if this is the right level of
abstraction for you.</div>
<div><br>
</div>
<div>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)</div>
<div><br>
</div>
<div>Pierre</div>
<div><br>
<div class="gmail_quote">
<div dir="ltr">On Tue, Mar 14, 2017 at 12:05 PM Gelonida
<<a moz-do-not-send="true"
href="mailto:gelonida@gmail.com">gelonida@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<p class="gmail_msg">Hi Pierre,</p>
<p class="gmail_msg">Thanks for your reply,</p>
<p class="gmail_msg">In our context we don't need a
real time dashboard (at least for the start)</p>
<p class="gmail_msg">I think I will start with a
server side created bottle or flask implementation
and play with angular at a later time.<br
class="gmail_msg">
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.<br class="gmail_msg">
I did not try with buildbot (and it's js
dependencies), but often just getting the node /
grunt / gulp build environment up and <br
class="gmail_msg">
running can already be painful. So an attractive
Angular web front end only later.</p>
<p class="gmail_msg">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,<br
class="gmail_msg">
that will avoid this.<br class="gmail_msg">
</p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg">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.<br
class="gmail_msg">
</p>
<p class="gmail_msg">If easier to integrate, then the
dynamic web script could just yield some JSON file
but I'd be curious of how to integrate <br
class="gmail_msg">
some non Angular HTML.<br class="gmail_msg">
</p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
My dynamic script could either yield something like:<br
class="gmail_msg">
<html><br class="gmail_msg">
<body><br class="gmail_msg">
<h1>all release branches<h1><br
class="gmail_msg">
<form><br class="gmail_msg">
<select name = "branchgroups"><br
class="gmail_msg">
<option
value="all">all</option><br class="gmail_msg">
<option
value="release">release</option><br
class="gmail_msg">
<option
value="develop">develop</option><br
class="gmail_msg">
</select><br class="gmail_msg">
</form><br class="gmail_msg">
<table><br class="gmail_msg">
. . . .<br class="gmail_msg">
</table><br class="gmail_msg">
</body><br class="gmail_msg">
</html><br class="gmail_msg">
<br class="gmail_msg">
or just a json with something similar to:<br
class="gmail_msg">
{ "title": "all release branches",<br
class="gmail_msg">
"header_row": [ "project", "branch", "builder",
"builds"],<br class="gmail_msg">
"rows" : [<br class="gmail_msg">
[ "pjt one", "rls/v1.0", "lint_results", [
{"buildid": 4, "status": "pass"}, {"buildid": 3,
"status": "pass"}, {"buildid": 1, "status": "fail"}]
],<br class="gmail_msg">
[ "pjt one", "rls/v1.0", "quick_unittests", [
{"buildid": 4, "status": "pass"}, {"buildid": 3,
"status": "pass"}, {"buildid": 1, "status": "fail"}]
],<br class="gmail_msg">
[ "pjt one", "rls/v2.0", "lint_results", [
{"buildid": 6, "status": "fail"}, {"buildid": 5,
"status": "pass"}, {"buildid": 2, "status": "fail"}] ]<br
class="gmail_msg">
]<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
whatever is easier to integrate.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
At the moment I start looking at the REST-API calls,
and the amount of calls, that I would need to
implement such view.<br class="gmail_msg">
On a first glance this seems quite costly.<br
class="gmail_msg">
<br class="gmail_msg">
I'll follow up.</div>
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br
class="gmail_msg">
<br class="gmail_msg">
<div class="m_950433075199581844moz-cite-prefix
gmail_msg">On 03/12/2017 05:48 PM, Pierre Tardy
wrote:<br class="gmail_msg">
</div>
</div>
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"
class="gmail_msg">
<p class="gmail_msg">Question(s):<br
class="gmail_msg">
----------------<br class="gmail_msg">
Did anyone already implement something
similar?<br class="gmail_msg">
</p>
</div>
</blockquote>
<div class="gmail_msg">Well console view and
waterfall views are such dashboards or showing
the builds in specific manner.</div>
<div class="gmail_msg"> </div>
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"
class="gmail_msg">
<p class="gmail_msg"> Does anyone have a
similar issue? If yes how do you solve
this problem?<br class="gmail_msg">
What would be the easiest way to create
such a page <br class="gmail_msg">
</p>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg">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.</div>
</div>
</div>
</blockquote>
</div>
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg"><br class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"
class="gmail_msg">
<p class="gmail_msg"> I'm not very good with
web development and never tried to change
the buildbot web front end.<br
class="gmail_msg">
Would it be simpler to create a standalone
page, which constructs this contents with
the help of the web api?<br
class="gmail_msg">
</p>
</div>
</blockquote>
<div class="gmail_msg">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.</div>
<div class="gmail_msg">This can help you to
write a dashboard to look exactly as you wish.</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">I usually recommend to
take the effort to learn angularJS and front
end development as I find it did unlock a lot
of opportunities.</div>
<div class="gmail_msg">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.</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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.</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">Regards</div>
<div class="gmail_msg">Pierre </div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>