<div dir="ltr">Hi Greg,<div>With angularJS, the server that serves the javascript files is not very loaded, and contributes slightly in the responsiveness of the UI.</div><div>The server that serves the REST api is however important for responsiveness.</div><div>If I understand the setup you want to do, you are not addressing the problem of REST api responsiveness.</div><div><br></div><div>However, with buildbot nine multi-master design, you can create a master which only serves the UI and the REST api, and has no slave connected, and thus less source of reactor hangs.<br><div><br></div><div>Multi master is implemented in b2 via the wamp message queue, and need a <a href="http://crossbar.io">crossbar.io</a> router to synchronise the masters</div><div><a href="http://docs.buildbot.net/latest/manual/cfg-global.html#wamp">http://docs.buildbot.net/latest/manual/cfg-global.html#wamp</a></div><div><br></div><div>I would recommend to keep that in mind, and only implement multimaster if it is needed as you scale up.</div><div>It is the power of buildbot, you can start small, and know that the system is designed to scale later. You will be able to keep the same configuration, and enable the scalability features.</div><div><br></div><div><br></div><div>As for the details of the data_module, it is written so that functions like getBuilds, loadBuilds, etc are automatically generated from the spec:</div><div><a href="https://github.com/buildbot/buildbot/blob/master/www/data_module/src/specification.constant.coffee">https://github.com/buildbot/buildbot/blob/master/www/data_module/src/specification.constant.coffee</a></div><div><br></div><div>So you will not find it in the source code.</div><div>I would recommend if you want to hack on the UI to spend a few hours learning <a href="http://coffeescript.org/">http://coffeescript.org/</a> . It helps a lot for writing needed asynchronous code.</div><div>The equivalent javascript code is much more verbose, even if in 2015 we would have chosen ES6, which is the next standard for javascript, and has all the important syntax sugar features as coffee script.</div><div><br></div><div>Regards,</div><div><br><div class="gmail_quote"><div dir="ltr">Le jeu. 5 nov. 2015 à 22:45, Greg MacDonald <<a href="mailto:gmacdonald@trionworlds.com">gmacdonald@trionworlds.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I wanted to ensure the web UI’s responsiveness by keeping it on another machine. Our home grown solution has responsiveness problems that people have complained
 about (mostly from poorly written mysql queries I haven’t had time to fix). And the stock buildbot web page hangs on occasion (0.9.0b2), probably because of a bug and not contention but either way eliminating the possibility could save me some time if it happens
 to come up later. (We could use a team of build engineers, but it’s just me so I’m shooting for max flexibility and stability.) No hard reason though other than a little paranoid insurance. If it’s cheap enough to do I’d still like to try. I’ve already got
 the CORS issue sorted out for the REST API. Do you remember where those url’s are off the top of your head?
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">BTW, has the code for data service been minified? I can’t seem to search for the getBuilds method. I’m new to all this (everything but python) and examples are
 the fastest way for me to catch up. It would’ve been helpful for me if the code examples were in javascript instead of coffee script, which I don’t know about.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thx again.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-Greg<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Pierre Tardy [mailto:<a href="mailto:tardyp@gmail.com" target="_blank">tardyp@gmail.com</a>]
<br>
<b>Sent:</b> Thursday, November 05, 2015 12:59 PM</span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><br>
<b>To:</b> Greg MacDonald; <a href="mailto:users@buildbot.net" target="_blank">users@buildbot.net</a><br>
<b>Subject:</b> Re: [<a href="mailto:users@bb.net" target="_blank">users@bb.net</a>] buildbot-data issue<u></u><u></u></span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Greg,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Indeed, it is not designed to be run from another machine. I think you may workaround the autoconfiguration for the ws and api urls, but then you will get CORS issues.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I would be interrested to understand the use cases you are trying to achieve by putting a UI separately from the master<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Pierre<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">Le jeu. 5 nov. 2015 à 21:41, Greg MacDonald <<a href="mailto:gmacdonald@trionworlds.com" target="_blank">gmacdonald@trionworlds.com</a>> a écrit :<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I had a typo and now I’m not getting the websocket error. But I still need to know how to point the
 web page at the master buildbot machine, or if it’s even possible to run them on different machines.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-Greg</span><u></u><u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> users [mailto:<a href="mailto:users-bounces@buildbot.net" target="_blank">users-bounces@buildbot.net</a>]
<b>On Behalf Of </b>Greg MacDonald<br>
<b>Sent:</b> Thursday, November 05, 2015 12:19 PM<br>
<b>To:</b> Pierre Tardy; <a href="mailto:users@buildbot.net" target="_blank">users@buildbot.net</a><br>
<b>Subject:</b> Re: [<a href="mailto:users@bb.net" target="_blank">users@bb.net</a>] buildbot-data issue</span><u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">That got me a bit further, now I’m getting this:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">WebSocket connection to 'ws://localhost:63342/angular_sandbox/app/index.htmlws' failed: Error during
 WebSocket handshake: Unexpected response code: 404</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I’m guessing this is because it doesn’t know where the buildbot master is and it’s on another machine.
 Where does that get specified? </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-Greg</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Greg MacDonald
<br>
<b>Sent:</b> Thursday, November 05, 2015 11:27 AM<br>
<b>To:</b> 'Pierre Tardy'; <a href="mailto:users@buildbot.net" target="_blank">users@buildbot.net</a><br>
<b>Subject:</b> RE: [<a href="mailto:users@bb.net" target="_blank">users@bb.net</a>] buildbot-data issue</span><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thanks a lot! I just couldn’t see it for some reason.
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1f497d">J</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Pierre Tardy [<a href="mailto:tardyp@gmail.com" target="_blank">mailto:tardyp@gmail.com</a>]
<br>
<b>Sent:</b> Wednesday, November 04, 2015 11:53 PM<br>
<b>To:</b> Greg MacDonald; <a href="mailto:users@buildbot.net" target="_blank">users@buildbot.net</a><br>
<b>Subject:</b> Re: [<a href="mailto:users@bb.net" target="_blank">users@bb.net</a>] buildbot-data issue</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Hi greg,<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">as per <a href="http://docs.buildbot.net/latest/developer/www.html#dataservice" target="_blank">http://docs.buildbot.net/latest/developer/www.html#dataservice</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">What you need to inject is the dataService. the module is called bbData (what you need to depend in you angular,module), and the service is dataService.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">so you should replace this line<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">            controller: ['$scope', '$attrs', 'bbData', function($scope, $attrs, dataService) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">by<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">            controller: ['$scope', '$attrs', '<b>dataService</b>', function($scope, $attrs, dataService) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Cheers<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Pierre<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">Le jeu. 5 nov. 2015 à 03:15, Greg MacDonald <<a href="mailto:gmacdonald@trionworlds.com" target="_blank">gmacdonald@trionworlds.com</a>> a écrit :<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">Hi Everyone,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I’m trying to use the buildbot-data angular service (for 0.9.0b2) for a separate web ui and I’m having problems getting started. Bower installs buildbot-data fine, but I get an
 error when I try to use it:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Error: [$injector:unpr] Unknown provider: bbDataProvider <- bbData<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Here’s the code that tries to use it. It’s not getting past the dependency injection.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">angular.module('myApp.buildStatus', ['bbData', 'bbData'])<u></u><u></u></p>
<p class="MsoNormal">    .directive("buildStatus", function() {<u></u><u></u></p>
<p class="MsoNormal">        return {<u></u><u></u></p>
<p class="MsoNormal">            restrict: "E",<u></u><u></u></p>
<p class="MsoNormal">            replace: true,<u></u><u></u></p>
<p class="MsoNormal">            scope: {<u></u><u></u></p>
<p class="MsoNormal">                name: '@',<u></u><u></u></p>
<p class="MsoNormal">                builder: '@',<u></u><u></u></p>
<p class="MsoNormal">                status: '='<u></u><u></u></p>
<p class="MsoNormal">            },<u></u><u></u></p>
<p class="MsoNormal">            templateUrl: 'directives/build_status/build_status.html',<u></u><u></u></p>
<p class="MsoNormal">            controller: ['$scope', '$attrs', 'bbData', function($scope, $attrs, dataService) {<u></u><u></u></p>
<p class="MsoNormal">                $scope.builder = $attrs.builder;<u></u><u></u></p>
<p class="MsoNormal">                $<a href="http://scope.name" target="_blank">scope.name</a> = $<a href="http://attrs.name" target="_blank">attrs.name</a>;<u></u><u></u></p>
<p class="MsoNormal">                $scope.status = 'unknown';<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">            }]<u></u><u></u></p>
<p class="MsoNormal">        }<u></u><u></u></p>
<p class="MsoNormal">    });<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">App dependency works:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">angular.module('myApp', [<u></u><u></u></p>
<p class="MsoNormal">    'bbData',<u></u><u></u></p>
<p class="MsoNormal">    'ngMaterial',<u></u><u></u></p>
<p class="MsoNormal">    'ngRoute',<u></u><u></u></p>
<p class="MsoNormal">    'myApp.view1',<u></u><u></u></p>
<p class="MsoNormal">    'myApp.view2',<u></u><u></u></p>
<p class="MsoNormal">    'myApp.version',<u></u><u></u></p>
<p class="MsoNormal">    'myApp.buildStatus'<u></u><u></u></p>
<p class="MsoNormal">]).<u></u><u></u></p>
<p class="MsoNormal">config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {<u></u><u></u></p>
<p class="MsoNormal">    $routeProvider.otherwise({redirectTo: '/view1'});<u></u><u></u></p>
<p class="MsoNormal">    $httpProvider.defaults.useXDomain = true;<u></u><u></u></p>
<p class="MsoNormal">    delete $httpProvider.defaults.headers.common['X-Requested-With'];<u></u><u></u></p>
<p class="MsoNormal">}]);<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">And It’s being included like this in index.html<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">  <script src="bower_components/buildbot-data/dist/scripts.js"></script><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I’m not sure where to go from here. Any help is greatly appreciated. Thx!
<span style="font-family:Wingdings">J</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">-Greg<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@buildbot.net" target="_blank">users@buildbot.net</a><br>
<a href="https://lists.buildbot.net/mailman/listinfo/users" target="_blank">https://lists.buildbot.net/mailman/listinfo/users</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div></div></blockquote></div></div></div></div>