[00:03] hatch: rgr will look [00:09] hatch: don't worry about the search branch. It's just a WIP to go through [01:58] hatch: I am now :-) [02:00] heh, timing is everything [02:01] time for me to head home... [02:15] hatch: I'll be pushing changes up here if you want to follow along: https://github.com/huwshimi/juju-gui/compare/machine-view-render-changes [02:57] huwshimi sounds good, mind firing me an email at your EOD and let me know what still needs/has been done? [03:06] hatch: Will do. [03:07] thanks, we r in crunch time :) [03:07] yeah [03:07] any questions or anything so far? [03:13] hatch: Do you know how to simulate an update on an object? In the console I've been using app.db.machines.add/remove etc. but don't know how to do update. [03:13] change [03:14] if you change the contents of one of the machines there should be a *:change event that bubbles up to the modellist [03:14] hatch: But how do I change the contents of a machine? [03:15] well you can use the getById() method on the modellist if you have the id [03:15] to fetch the model [03:15] or item(n) to grab it by index [03:16] or each(function(machine) { ... }) [03:16] to loop through [03:17] then you just change the contents like you would any model [03:18] did that answer the question [03:19] hatch: Oh, I was trying to do a .set(..) on the object, but I can just set the parameter directly (foo.id = '1') [03:19] if the machines modellist is a lazyModelList then yes each model is actually just an object [03:19] that's the primary difference between a modelList and a lazyModelList [03:20] Hmm... the change event doesn't fire though. [03:20] no, you'll need to promote it to a real model [03:20] http://yuilibrary.com/yui/docs/api/classes/LazyModelList.html#method_revive [03:21] but this is a problem that we will need to think about... [03:21] brb need to dc for a second [03:22] back [03:22] hatch__: So when I do the revive the change event should fire? [03:23] it 'should' [03:23] it's been a while since I've used it [03:23] then you'll want to call `free` on it [03:23] http://yuilibrary.com/yui/docs/api/classes/LazyModelList.html#method_free [03:24] I 'think' this is the interaction we'll want to use for this type of thing [03:25] hatch__: Hmm... nothing is getting fired [03:25] how are you listening for the event? [03:25] hatch__: https://github.com/huwshimi/juju-gui/compare/machine-view-render-changes#diff-947e688a9f9e23383a48af542be63bbfR65 [03:26] hmm that 'should' work.... === hatch__ is now known as hatch [03:26] hatch: I added a card in 'on deck' in Maint. for the password thing fyi [03:26] hatch: actually two, one for core and one for gui [03:27] kewlio [03:27] hatch: And in a console I'm doing: foo = app.db.machines.getById(14); foo.displayName = 'new'; app.db.machines.revive(foo); [03:28] ohh [03:28] you need to revive first [03:28] then use `set()` [03:28] oh [03:29] basically it's converting an object into a real model [03:29] hatch: Yeah, that worked. Thanks [03:29] right on [03:30] make sure you use 'free' afterwards [03:30] hatch: Even in the chrome console? [03:30] ohh you're just hacking? [03:30] then it's fine [03:31] hatch: Yeah, I'm just simulating the events in the browser at the moment [03:31] oh ok cool yeah then np [03:31] hatch: I'll free in the test [03:32] basically you use a LML to save memory and whatnot because then it's just objects instead of model instances [03:39] hatch: Any suggestions for how to do the update? I don't want to have to compare the contents of every token... [03:40] I think i need more context [03:42] hatch: Do you know what can change on a machine? Can the displayName change for example? [03:42] hmm, I don't think anything tbh [03:42] I would assume that any changes would require a new machine [03:43] ^ rick_h_ have any idea? [03:43] huwshimi: it will be possible to name machines yes. It came up in Vegas and I've got a meeting on that tomorrow with Luca [03:43] huwshimi: but we're ok for the moment [03:43] hatch: The units can, but I assume we'll handle that differently (it's not something tied to the machine model) [03:44] yeah the units definitely can [03:44] I didn't know you could name machines [03:44] that's interesting [03:44] hatch: I don't recall if that's planned or does work atm [03:44] hatch: Should I leave updating until we know what will change then? [03:45] I'd say so [03:45] hatch: OK, that might be a follow up branch then. [03:45] yeah it should be ok to add on later on [03:45] cool [03:45] hatch: I have to dash out for lunch. bbs. [03:46] sure thing, cya later [03:57] man this is going to be a big diff lol [03:57] I'll have to ask hatch to review it :P [03:58] haha shouldn't you be in bed? [03:58] I should, but need to make this work and been talking with another team about their custom gui/charmworld needs for their demo :/ [03:59] oo boy [04:04] this.state.getCurrent('charmID'); [04:04] that seems like it's broken? [04:06] hmm, looks like it's custom mapped just for editorial ugh [04:13] rick_h_ that is no longer the valid syntax for the new state class [04:15] hatch: yea, gotcha. It looks legacy for non flagged editorial stuff [04:15] will add an XXX [04:15] yeah - the new getCurrent syntax is pretty clunky, I've been wanting to add dot-notation support but haven't yet [04:50] huwshimi: around? [05:45] rick_h_: Oh, sorry I missed your message [05:50] huwshimi: all good [05:50] huwshimi: have much time left in your day? [05:50] rick_h_: A couple of hours, but I'll try and work until this is done. [05:51] ok, cool. I might need your help tomorrow. I've broken sticky headers, probably off a div somewhere, and not seeing it jump out at me [05:51] rick_h_: You, on the other hand, should be in bed :) [05:51] about to call it a night [05:51] well soon [05:51] almost have it working [05:51] rick_h_: Want me to take a look? [05:51] well, it works w/o the flag, now to make it work with [05:52] https://github.com/juju/juju-gui/pull/279 is the WIP [05:52] lots of crapped moved around and such, try not to look at the diff [05:52] but if you get a sec to try it out and notice that the first header returns after scrolling down maybe the reason will jump out at you [05:56] rick_h_: I don't get any sidebar content and an undefined is not a function error [05:57] huwshimi: with no flags? [05:57] rick_h_: that's with flags [05:57] rick_h_: It's actually broken without flags too. It overlaps the headers instead of pushing [05:57] huwshimi: I just pushed a fix for making it work with flags [05:58] huwshimi: right, that's what I mean [05:58] my refactoring (without flags) has messed up the sticky headers [05:58] Ah [05:58] I think it's a div/css placement thingy [05:59] ok, well the event stuff works with and without a flag and search works. Home doesn't and the sticky headers are broken. I guess I'll call that half way there and call it a night [05:59] huwshimi: if you see anything that jumps out let me know, otherwise I'll try to pick it back up with a clear head tomorrow [06:00] or well later today [06:00] rick_h_: I suspect it's not calculating the distance between headers correctly [06:00] might be an on('scroll' not firing [06:02] ah, me looks [06:04] hmm
is the renderTo in the code for the target of that event [06:04] but yea, not firing [06:05] yeah, that's it [06:05] rick_h_: .bws-content is the element it should have the event on. [06:06] ah ok, updating [06:06] rick_h_: We could possibly make #bws-editorial the element that scrolls if need be. [06:07] yea, that works [06:07] Oh good. [06:07] I just hard coded it to .bws-editorial for now [06:07] the structure is a bit different, but this will work for now [06:07] thanks! [06:07] rick_h_: No problems. Hope you get some sleep! :) [06:10] I will head off to bed now. Have it pretty close. [06:11] night and thanks again! [06:14] rick_h_: Night [10:49] rick_h_, Morning [10:53] antdillon: morning [10:55] rick_h_, I have a few issues with the environment change set. Where is the best place to voice them? [10:56] rick_h_, Also can I check I should be working from flag mv/li? [10:56] Just me for the moment. Want to chat? Or type out what's up? [10:56] antdillon: yes, this is work under the two flags. It's really mv, but il is the soon to be released 'inspector left' flag [10:57] rick_h_, I got it all working its mainly missing info in the ecs like no time stamp [10:57] antdillon: oh? Ok, well I was just expecting the count to work [10:57] so if you've got more stuff working then why not push up your branch, start a pull request with notes, and we can start to look through the code and help fill in the last bits [10:58] rick_h_, I few events to bundled like deploying a server and subordinate fire the same deployed event [10:58] rick_h_, Wont we need time stamps for the summary panel? [10:58] yes, well containers and machines are the same thing in juju land so that's not surprising. There should be some metadata to help us tell them apart [10:59] antdillon: well, maybe. I'll look at the mocks. I'd consider that more for the changelog, which we're not doing right now since we can't get your previous commits [10:59] Oh I see, I was using the command method to split the events [11:01] antdillon: cool, yea if you start a pull request we can start to go through and help hash over the last details and check it out. [11:03] rick_h_, Sure, just working through the last few changes and there messages then tests :) === perrito6` is now known as perrito666 [11:07] antdillon: yay [12:11] frankban: sorry, completely missed the time [12:11] rick_h_: no worries, ready when you are [12:31] frankban: https://github.com/juju/juju-gui/pull/277 [12:36] * frankban lunches [12:41] this test run isn't going to be pretty [13:05] morning all. [13:07] morning [13:20] rick_h_: got your invite--i have a contractor swinging by the house sometime between now and 11, so i may be interrupted, but i'll be there. [13:21] jcsackett: thanks [13:22] it'll be quick, forgot to shorten from the google calendar 1hr default [13:22] cool. [13:30] rick_h_: daily hangout? [13:32] bac: soryr, had a hangout in the meeting invite [13:33] https://plus.google.com/hangouts/_/canonical.com/charmworld?authuser=1&hceid=cmljay5oYXJkaW5nQGNhbm9uaWNhbC5jb20.7enijh4dvef97a4ifdu83bnoj4 [13:50] I <3 it when a passing test comes together [13:52] redir: when you finish your current work, could you look at the deploying local charmworld instructions and walk through them to ensure they still work? you have fresh eyes. https://docs.google.com/a/canonical.com/document/d/1Y8Uhomr4_6L3nFXLXPZY2V-tFjl5KjOIknQLuXdzU_A [13:53] bac do we have a target for the demo? trusty? [13:53] I can do it from scratch in a container [13:53] yes, i'd say trusty [13:54] in an lxc would be great [13:55] k [14:08] bac: want to catch up with 1-1 later on? [14:09] rick_h_: what do you mean? postpone? i can do it now [14:09] bac: ok [14:21] Hi guys, does anyone have a min to help me get my head around some tests for deployer bar? [14:24] Makyo: are you around to help antdillon? [14:24] antdillon: I've got a call in 7, what's up? Maybe push a branch and create a pull request with notes/questions so we can see what's up? [14:24] and I can help out between calls [14:25] rick_h_, Its mainly just trying to add a change to the ecs in the test [14:25] antdillon: ah, gotcha. sec, might be able to find an example [14:26] rick_h_, I'm in the text_env_change.js [14:26] antdillon: oh ok, so in the ecs tests itself? [14:27] rick_h_, Something like utils.makeStubMethod(envObj, '_deploy'); [14:30] antdillon: you're looking to make a stub or to put something into that stub'd method? [14:30] rick_h_: fyi, my contractor just called to say he's running late, so he's likely to arrive *during* standup. as with earlier meeting, i'll be there but may get interrupted. [14:31] jcsackett: rgr [14:32] antdillon: maybe hatch can help you 1-1? [14:32] uh oh [14:32] * hatch runs away [14:32] :P [14:33] hatch, come back [14:33] what's up? [14:34] hatch, Getting errors trying to set changes to the ecs in the deploy bar tests [14:34] hatch, Got any tricks? [14:34] can you push up the code? [14:34] so I can see what you're trying [14:34] and what the errors are [14:34] hatch, Here is the test: https://pastebin.canonical.com/109870/ [14:35] Getting TypeError: 'undefined' is not an object (evaluating 'ecs.changeSet') [14:36] looking [14:36] hatch, Not sure im initialising the ecs properly [14:36] blah 2fa, one sec [14:38] ok you're doing the stubbing incorrectly [14:38] one sec [14:38] at least I think so [14:38] you're stubbing out the entire application [14:39] probably, seems slightly different test by test [14:39] so what is this test trying to do? [14:40] when you simulate a click on the deploy button the ecs commit method is called? [14:40] The "should increase changes when a services is added" is trying to set a change then check the deployer bar is returns 1 changes [14:40] oh that test [14:41] woops :) [14:41] I didnt write that one, im working on the one above and will move to that one [14:41] hatch, But both are erroring [14:43] ok so first of all you're stubbing out a method and not resetting it [14:44] and then as far as the rest of the errors I'll need to run the code to see the actual error [14:44] hatch, I'll push them up [14:45] thx [14:45] brb [14:48] merge proposal submitted in lp. requested R=jcsackett to get different eyeballs on it. [14:49] bac: ubuntu or ubuntu-cloud for the container? [14:49] matter? [14:49] redir: lxc? [14:51] hatch, https://github.com/anthonydillon/juju-gui [14:53] antdillon which branch? [14:53] oh you pushed into develop [14:53] Pushed to my fork [14:53] git@github.com:anthonydillon/juju-gui.git [14:53] redir: ack, i'll take a look after standup. [14:54] redir, bac: we're using LP, not rietveld now? [14:54] antdillon yeah ok, give me a few minutes to pull this down and take a look [14:54] jcsackett: new hires cannot use lbox [14:55] something to do with the auth dance [14:55] and unsupported tools [14:55] bac: lovely. [14:55] ok, no worries. [14:55] hatch, Thank you very much [14:57] jujugui call in 4 [14:57] hey rick_h_ you're sending out gcal invites in pacific time. perhaps you should tell google you're back home. :) [14:57] not that it matters... [14:58] bac: hah, awesome [14:58] bac: hmm, it says I'm in eastern [14:59] our 1:1 came across as 7am, which caused me to panic a bit [14:59] antdillon assert.equal(view._getChangeCount(ecs), 1); [14:59] you didn't pass ecs into this method [14:59] hatch: got a state question for you, maybe after standup? [14:59] sure [15:00] jujugui call now [15:03] hatch, Isnt ecs a global? [15:04] hatch, Ah got it :) [15:04] jcsackett: bac's instructions for setting up juju-gui to connect to local charmstore with ngrams applies also. [15:06] antdillon :) rookie mistake :P [15:06] hatch, :P [15:09] jcsackett, shared the calendar with you. [15:09] Makyo: thanks. [15:10] redir, bac: do we have to set it up that way? shouldn't the search api endpoint reflect the changes? was planning on just poking at a local charmworld with httpie for qa. [15:11] jcsackett: i think that works just as well [15:11] jcsackett: using juju-gui to see the autocomplete behavior is nice, too [15:11] hatch, Is utils.makeStubMethod(envObj, '_deploy'); the correct way to trigger an event? [15:12] nope [15:12] jcsackett: that is how I rolled. But hooked up the gui to make sure it didn't puke [15:12] redir, bac fair points. [15:12] that will make a stubed version of the _deploy method on the envObj [15:12] looking now. [15:13] you want to fire an event from envObj? [15:13] rick_h_ you said that you have an outline of the demo they want to do? [15:13] Im copying from test_env_change.js [15:14] you're going to have to give me more information :) [15:14] hatch: yes, I've requested access for everyone, waiting on luca [15:14] bac: yes re lxc, there are ubuntu and ubuntu-cloud images. Not sure which they will demo from butvalidating on the same one would be ideal. [15:15] redir: i have no preference. pick one and document it [15:15] k [15:15] and if it breaks, pick the other one [15:15] hehe [15:18] frankban are you taking over huw's branch? [15:19] hatch: no, I was going to see if you would [15:19] hatch: we need to get the service units stuff landed first before anything else really [15:19] yep I will, I just saw his comments, wasn't sure if he was on it [15:19] he was realy helpful to narrow it down <3 [15:20] haha yes [15:20] ok I've got to run to the drug store to buy some drugs [15:20] yay drugs! [15:20] I've gone this long without any, but with all this coughing it's just too hard to do anything [15:20] rick_h_, frankban: so, what branch should i be watching for service unit stuff? i thought just frankbans, but huw's too? [15:20] need some cough juice [15:20] hatch: I am trying to proceed with this branch, so that wasn't a real review [15:21] frankban ok thanks [15:21] bbiab [15:21] hatch: just make sure it's not the *special* cough juice. [15:21] jcsackett maybe the code will be more interesting :P [15:22] yeah, b/c coding with full-strength robo-tussin is such a good idea. or is that like the balmer curve... [15:22] jcsackett: that's my branch: we will have a db.units lazy model list, and new db.addUnits() / db.removeUnits() calls to use in order to keep the different model lists in sync [15:22] hatch, Sorry I was using the code from test/test_env_change.js [15:23] frankban: awesome. you're not doing anything insofar as loading units onto machines, are you? i'm assuming i'll want to have the machine view code drop that onto tokens as appropriate from the lazylist you're making. [15:23] hatch, All I need to do it trigger an event like _deploy or _relation [15:23] s/machines/machine-view/ [15:24] jcsackett: yeah, at that point it should be something like db.units.filter(function(unit) {return unit.machine == $myMachine}) or similar [15:25] frankban: awesome. thanks. [15:40] redir: to make sure i'm understanding, ngram stuff is available in ES, you've set up how you want ngram stuff done with n3_20 stuff in filter and analysis, so ES understands what is meant by that when you use it in the mapping? [15:41] jcsackett: yes. define an analyzer then use it [15:41] redir: just making sure. outside of a full understanding of ES it looks a little magical. :p [15:41] agreed [15:42] I don't claim to have a full understanding of ES:) [15:43] back [15:44] antdillon _deploy or _relation aren't events [15:44] hatch, I mean't adding to the ecs [15:45] ok so you need to add a record to the ecs so that you can test that the count goes up in the deployer bar? [15:45] When I do ecs._createNewRecord('service'); [15:45] I get TypeError: 'undefined' is not an object (evaluating 'record.command.args') [15:46] redir: code is r=me, qa-ing now. can you please file a bug about the test you needed to comment out? [15:46] that means that record.command is undefined [15:46] hatch: another question on the hasChanged stuff… [15:46] antdillon the ecs stuff requires a bunch of setup your best bet is to call one of the public methods [15:46] ecs.deploy for example [15:46] hatch, Tried ecs._createNewRecord('service',{ foo: 'foo' }); with an undefined args.length [15:47] redir: qa may take awhile--i have no charms in my local charmworld, need to let ingest run for a bit. [15:47] kadams54 shoot [15:47] jcsackett: and with that test commented out they won't get deleted when you run the suite [15:47] :) [15:47] jcsackett why does charmwork injest take to long? [15:47] hatch: don't go there :P [15:47] oh [15:47] haha ok [15:48] * hatch steps back slowly [15:50] hatch: right now, the way things are coded up, it doesn't do a deep object comparison. https://github.com/juju/juju-gui/blob/develop/app/views/state.js#L70 [15:51] well that's stupid [15:51] That's a problem for metadata, which, as things stand, will always return true. [15:51] what kind of idiot wrote that [15:51] :) [15:51] I'm pretty sure it's Benji's fault ;-) [15:51] lol! [15:51] So… how do you want to fix? [15:51] I had to do this for filters [15:52] the 'proper' way to do fix is to add dot notation to that method [15:52] but the easy way is ot manually compare for now [15:52] sorry [15:52] * kadams54 *sobs* [15:52] manually compare isn't too bad [15:52] one extra line [15:52] kadams54: hatch I just did JSON stringify compare to check if they were the same for the filter object data [15:52] fyi [15:52] rick_h_: yeah, I was thinking of doing the same [15:52] ahh yeah that would work, but in this case that's overkill [15:52] Couldn't remember if there were any caveats to that hack [15:53] imho [15:53] kadams54: determinism of the data [15:53] it's slow [15:53] "slow" [15:55] antdillon you can probably go ecs.changeSet.abc123 = { ... } [15:56] assuming that you don't have another key which is abc123 :) [15:57] hatch, lol i thought that would be cheating [15:57] hatch, wanted to try and push a true event in there using the right function [15:57] well it is, but you're testing the integration between two classes [15:57] you don't need to test that the ecs is working, it already has tests for that [15:57] i guess [15:57] thanks [15:58] np :) [15:58] I don't know how the stuff in cough syrup works but daaaaaaamn it works fast [15:58] on to the deploy :P [16:00] antdillon so how is the Object.observe stuff working out? [16:01] hatch, Good! seems to be working for the changes that are supported [16:01] nice [16:01] glad to hear it [16:01] should have a pull request in soon [16:07] jcsackett: filed 1317567 [16:07] redir: thanks. [16:18] jujugui need two reviews and would like two qa's of https://github.com/juju/juju-gui/pull/281 please. Apologies for the size up front. took 4 files down to 1 so lots of moving around [16:21] QAing [16:21] kadams54: ty [16:22] hah, and somehting is broken yay [16:23] frankban so in huw's branch the proper add event is being fired but `this.get('db').machines.filterByParent(null);` is not returning the newly added machine [16:23] but there IS a machine in the db [16:23] hatch: I explained what's going on in the mp comments [16:24] ohh woops I misread your comments [16:24] .filterByParent(null) does not return the machine because parentId is not set at the time the event is fired [16:24] hatch: ^^^ [16:24] ok I can fix that, instead of overwriting add, listen to the the 'on' event and modify the machine before it's added [16:24] hatch: my current branch fixes the issue [16:25] bah, make test pass rebase and now it's broken [16:25] hold off kadams54 working on it [16:25] is there a reason why ^ wouldn't work frankban ? [16:25] hatch: interesting [16:26] rick_h_: will do [16:26] it seems like it should [16:26] then we don't have to make custom events for fun :) [16:28] redir: so, qa may take a really long time. ingest blew up b/c of local network problems. [16:28] redir: do you have other things to work on, or is this blocking you? [16:29] nope trying to review local demo instructions and have a bug in the lxc ubuntu image trying to figure out where to file that [16:29] jcsackett: ^^ [16:29] hatch: I am not sure, the add override has been there for a while, but if you think that works I agree it can be better, given we find a way to make it easy for people looking at the models what's going on (i.e. you add a machine, and then you have a different machine). This kind of jumping around can be dangerous when using events. [16:31] ok I'm going to give it a try, see if the tests pass [16:31] jcsackett: I have a copy of the ES index I can put up for you to DL but you may also need the mongo stuff for CW to work right [16:31] idk [16:32] hatch: to be clear, I am worried by the double pain of having 1) an object mutated 2) by a ninja subscriber [16:32] redir: if it's not blocking you, i'm content to just let it finish running properly. [16:32] jcsackett: cool [16:32] redir: not that i think your branch could be at fault, but it's always good to make sure ingest still works. :p [16:32] frankban, yeah it's not very transparent with the ninja subscriber [16:33] is "ninja subscriber" an actual term of art, or just something y'all are going with? [16:33] I just feel that we should be modifying the machine BEFORE it's saved not after [16:33] jcsackett just running with it [16:33] :D [16:33] hatch: dig. [16:33] I see a tweet here somewhere [16:34] I need some program that tweets and G+'s at the same time [16:34] ninja subscribers can destroy your application very fast [16:35] see an attribute would handle this in the setter [16:35] I'll ask in #yui see if anyone has any input [16:36] hatch: anyway, what's so wrong with the custom event? we can also avoid the original one to be fired, so the total event count can be maintained stable [16:36] frankban events aren't discoverable - and custom event's don't follow any convention [16:37] so anyone working with the code will have to somehow 'just know' that they should use this custom event instead of the YUI one [16:38] I suppose we could make the add event silent and then fire an add event ourselves [16:38] hatch: I tried to reuse the YUI one, but found that unfortunately an internal ninja subscriber is already in place in YUI :-/ [16:39] something else is listening to the 'add' event? [16:39] hatch: yes [16:39] and our modifications break it? [16:40] https://yuilibrary.com/yui/docs/api/files/app_js_model-list.js.html#l189 [16:41] that's just publishing that this will fire that event [16:41] but I see what you're saying [16:42] the lazy model list api is linking to the wrong file :/ [16:42] hatch: that;s also adding a default subscriber: this._defAddFn [16:42] yeah [16:43] hatch: but perhaps we can fire add with preventDefault? [16:43] hatch: yeah, that could work [16:43] https://yuilibrary.com/yui/docs/api/files/app_js_lazy-model-list.js.html#l287 [16:43] hatch: so we add with silent: true, we modify the object and then we fire "add" with preventDefault? [16:44] just an idea [16:45] hatch, sorry one last thing [16:45] np, shoot [16:45] kadams54: pushing updated branch now. [16:45] frankban I'll try that approach and see how it works out [16:45] jujugui so https://github.com/juju/juju-gui/pull/281 is updated and looking for eyeballs please. [16:46] * rick_h_ goes out to get some lunch [16:46] hatch, assert.isTrue(stubApp.ecs.commit.calledOnce()); is false but it should defo be being hit [16:47] how are you stubbing it? [16:48] hatch, http://paste.ubuntu.com/7417088/ [16:49] antdillon where you think it should be being called place a debugger right before that line. Then console.log the function and see if you get the stub function or the real commit function [16:50] and don't use isTrue (it doesn't give proper tracebacks) use equal() instead [16:50] hatch, Ok thanks [16:53] hatch: ok so I'll exclude that change from my current work, could you please inform Huw that you are working on that later? [16:54] frankban yeah - I'll let you know if this works, atm I'm having trouble preventing the default soon enough [17:00] frankban looks like this technique won't work without a bunch of hackyness [17:00] so we'll have to use your technique [17:01] hatch: fullAdd? [17:01] yeah [17:02] frankban what if we modified the model BEFORE calling var result = MachineList.superclass.add.apply(this, args); [17:02] is that possible? [17:02] so invert how the new add method executes [17:02] hatch: that can be possible [17:03] hatch: especially because we are using lazy model lists, so we should not require calling instance methods [17:03] hatch, Ah so I had to call stubApp.ecs.commit() to get true for stubApp.ecs.commit.calledOnce() [17:03] frankban that's what I was thinking....ok I'll try that [17:03] that makes sense [17:04] ^ antdillon [17:04] hatch, Is there a way to calledOnce on the none stubbed function? [17:04] no but you can call the original method [17:05] The original method is called by the button click [17:05] https://github.com/juju/juju-gui/blob/develop/test/utils.js#L89 [17:05] well if the original method is called by the button click then clicking the button should trigger the stub to be called [17:06] hatch, Its not for some reason [17:07] antdillon: is the code up? Remember that button clicks are events and async [17:07] hatch, But by debuggering and calling stubApp.ecs.commit() [17:07] antdillon: so you have to find a way to watch for that click [17:07] the calledOnce returns true [17:07] my guess is you're running into an async issue [17:07] so what you need to do is listen to 'after' that click event [17:07] hatch, I thought it might be a race :( [17:07] then test for the once() in there [17:08] so yeah....like rick_h_ said :) [17:08] but with the debugger i ran calledOnce a while after the click and its still false [17:09] antdillon: right, so you created a mock, then you manually called the mock [17:09] what you want to do is create the stub, and watch it, and see who ELSE talks to it [17:09] antdillon: let me know if you want to hangout and I can help look at it. I'm free atm [17:09] rick_h_, Ok that would be good. This is the final bit of tests for now [17:10] antdillon: hangout invite on the way [17:11] antdillon: https://plus.google.com/hangouts/_/grvtyzyt53dbgg2c4lkx6elfwya?authuser=1&hl=en [17:12] frankban inverting the execution order of add() fixed it :) yay [17:13] hatch: very cool [17:13] much happier [17:13] :) [17:13] yeah [17:15] frankban https://gist.github.com/hatched/84a65398d22fc3753ef6 here is the new method [17:16] hatch: cool, could you please change also the unitList one? [17:17] I could, that might be out of scope of this branch though [17:17] this branch already breaks the environment switcher [17:17] lol [17:22] rick_h_ when you have a moment I'd like to pair on this review - there are so many lines moved around it would be nice to have some guidance as to what's new and what's not [17:26] sure thing [17:26] hatch: will ping once done with antdillon [17:26] rick_h_, git@github.com:anthonydillon/juju-gui.git [17:27] yeah no rush [17:32] redir, bac: https://pastebin.canonical.com/109893/ [17:32] post ingest, trying to start up charmworld. [17:33] jcsackett: dude you broke i [17:33] t [17:33] * jcsackett laughs [17:33] sorry, dude. [17:34] i didn't want to. :) [17:34] redir: i'm running tests now to see if we get something informative locally to help you debug. [17:34] `make check`, to be specific. could always clobber something bad in my environment and make your code work. [17:39] Makyo I think I failed with your QA....dragging a service to the canvas on comingsoon doesn't open the inspector anymore....after you deploy one service though, it does [17:39] hatch, boo. Oh well, easy fix. [17:40] Let me do that real quick. [17:40] thanks, sorry about that - I'm not sure how I didn't notice that in QA [17:42] hatch: time to chat? [17:42] looks like kadams54 found I missed the cleanup point whoops [17:42] rick_h_ maybe you should fix kadams54's issues he found in QA first :) [17:43] :P [17:43] welcome back to the dark side [17:43] mohohahaha [17:43] I hate to say this, but huw suffered through multiple rounds of QA when I was working this branch [17:43] He might be good to pull in for a second set of QA ees. [17:43] eyes even [17:44] He had a good knack for breaking this in increasingly complex ways [17:44] it's all good, it's close. I didn't test the inspector integration and it's some missing cleanup on close/change [17:44] rick_h_, Branch up updated git@github.com:anthonydillon/juju-gui.git [17:45] rick_h_, Heading home will be online in an hour [17:45] antdillon: do a pull request please [17:45] antdillon: it's easier then you can see the diff of what changes [17:45] rick_h_, Sure [17:45] thanks [17:47] guihelp: I need two reviews and possibly two QAs for https://github.com/juju/juju-gui/pull/282 (this is the db.units change). I have to go now, but I'll take a look later. Thanks a lot, that's a long diff but should unblock things a bit [17:47] frankban I'll take one [17:47] thanks for the hard work on it [17:47] frankban: i'll take the other. [17:47] thank you both! [17:48] frankban: no no, thank *you* for doing the work. my code needs it. :) [17:48] haha :) [17:48] heh [17:49] rick_h_, https://github.com/juju/juju-gui/pull/283 [17:53] jcsackett can you do a QA on frankban's branch in a real env? I'm not setup atm for it - I could get setup though if you can't [17:53] hatch: i don't have a version of juju that works with local provider, and aside from getting the one from source i'm unsure how to go about it. :( [17:54] what version are you on? [17:54] 10.04? lol [17:54] 1.18.1-trusty. and i see no updates. [17:54] i get endless connection failures trying to bootstrap on local. [17:55] ohh is there a bug? [17:56] I installed juju-local from ppa and then deleted /usr/bin/juju to get local provider [17:56] * jcsackett raises eyebrow. [17:56] redir: can you juju deploy to other providers, having done that? [17:56] jcsackett: rebuilding cw/ngrams from scratch to ensure it works here [17:56] jcsackett: havne't tried [17:57] but I have a build in ~/go/ [17:57] redir: yeah, i think i'll have to do the source build and figure out what i did wrong yesterday. [17:57] and it requires the 'package' to be installed [17:57] 'package'? [17:57] yeah there is a local package that needs to be installed separate [17:57] but usually it says so [17:57] hatch, https://github.com/juju/juju-gui/pull/284 [17:58] thanks, I'll qa now [18:00] Makyo +1'd [18:01] \o/ [18:01] jcsackett: a fresh checkout/branch from lp:~reedobrien/charmworld/ngrams "works for me" [18:01] Realized all of my QA took place with an inspector URL already in place. [18:01] jcsackett: 'package' == apt-get install juju-local [18:02] which also installs juju-core [18:03] kadams54: call? [18:05] bac: you ever resolve that npm conflict? [18:05] redir: i did not but noticed nodejs installed /usr/bin/npm so my system is in working order [18:07] guihelp: we need someone else to qa redirs charmworld branch. anyone able? [18:08] hatch: got a sec? [18:09] I do [18:09] https://plus.google.com/hangouts/_/canonical.com/kyle-rick?authuser=1 [18:18] jcsackett: http://pastebin.ubuntu.com/7417568/ works with the caveat that sysdeps fails to install npm so I run apt with out that and nodejs installs npm [18:19] on trusty [18:21] bac ^ is this sort of thing likely necessary for a deploy, then? [18:21] redir: that also blows away the entire database...so have you done an ingest to see if it works once there's data? [18:21] jcsackett: running now [18:21] redir: ok. [18:22] sorry this is such a pain. just be glad eventually all of this is going to be something better. [18:22] jcsackett: we're deploying on precise. the node/npm issues are not new to this branch. [18:22] jcsackett: but I did this more than once yesterday [18:22] better [18:22] i mean, the issues are new but the requirements aren't. i'm inelegantly trying to say i think it works on precise. [18:22] bac: should I be developing on precise? I was doing it locally [18:22] on trusty [18:23] was/am [18:23] i think we need to be on trusty [18:23] bac: i'm not having a node/npm issue, and my lxc is precise. [18:23] nonetheless, bin/es-update crashes on me with the ngram branch. [18:23] jcsackett: oh [18:23] how does it crash? [18:24] bac: https://pastebin.canonical.com/109893/ [18:24] bac: jcsackett sent this https://pastebin.canonical.com/109893/ [18:24] jcsackett: i thought the node/npm thing was the only issue, so i apologize for being uninformed [18:24] jynx [18:24] * jcsackett laughs [18:27] hatch: ok, got it thanks [18:27] awesome [18:28] hatch: ok, I'm ready for qa and such, well after my call in 3 [18:28] sure, I'm going to grab lunch now [18:28] so in a while :) [18:30] jcsackett, redir: i'm perplexed [18:31] jcsackett: bac: building a precise container to build in now [18:31] bac: so am i. [18:32] that looks more like a coding error than an environmental one. unless you're dealing with a different version of ES package. [18:43] jcsackett: bac: es-0.90.0 here [18:48] bac: i don't actually know how to check es version. [18:49] dpkg -l | grep elasticsearch [18:49] yeah, that [18:50] but i think there's only the one version curtis packaged [18:50] curl localhost:9200 [18:50] i've got 0.90.0.release+201305241158+repack8~precise1 [18:54] i've got 0.90.0 [19:05] bac, redir ^ [19:13] and you are on precise, jcsackett? [19:13] redir: yup. [19:14] building precise now to test on [19:19] woot, the NUCs have arrived. Now to wait a week to have time to play with getting them setup [19:21] rick_h_ when you do be sure to keep notes so you can write a blog post about how awesome MAAS and Juju are, and how they allowed you to create a cloud in your house [19:21] hatch: heh, I'll try [19:22] All of the juju questions on askubuntu seem to be around maas [19:22] hardware must be hard [19:28] rick_h_ ok I'm done frankban's branch, did you want to run through your branch now? [19:29] hatch: sure, I blew up tests in this last batch but can run through it [19:29] rick_h_, I was able to reproduce this stacked service thing earlier, switched to the branch to fix hatch's QA issue, realized I couldn't reproduce it anymore on develop. What were your steps again? [19:30] I'm wondering if an interstitial branch fixed it by accident. [19:30] Makyo: I deployed some stuff with MV/IL on. Did a relation, had three services. I then went into machine view, used the deploy button from there to deploy [19:31] then went back to the service view after a reload, this was in a live env [19:31] when I was qa'ing against lxc [19:31] Aha, that's the difference. My bad. [19:31] hatch: did you want to call to walk through it? [19:31] hatch: or you good for now? [19:33] rick_h_ ok well lemme qa it [19:33] and i'll get back to you [19:36] stil building [19:38] I think the net is slow:/ [19:40] or maybe that is just archive.ubuntu.com that is slow [19:41] hatch: were you able to QA frankban's branch on a real env? [19:41] jcsackett I haven't yet [19:41] I actually have an architectural change in the comments [19:41] so I wasn't sure if I was going to [19:42] on precise it built and is now ingesting jcsackett bac [19:42] redir: cool. i look forwards (in an hour or so) hearing if bin/es-update crashes for you. :) [19:43] bin/es-update is called when you run make run [19:43] rick_h_ QA'd [19:43] three issues, one meh, 2 need to be fixed [19:44] hatch: all good thanks for the qa [19:44] oh those issues were using il [19:44] I forgot to mention that in the comment [19:45] redir: yes. [19:45] so wouldn't it crash when I do make run? [19:45] jcsackett: it didn't [19:45] redir: but you hadn't ingested yet, right? [19:46] not sure how that would differ. [19:46] except if you had data that was already indexed with the old mapping and tried applying the new mapping over it [19:47] jujugui going afk, will finish up fixes and tests on my branches later on. [19:47] cya [19:47] ta [19:47] redir: i had no data at all before ingesting. [19:47] caio [19:47] jcsackett take a look at my big comment in frankbans pr when you get a chance and let me know what you think [19:47] redir: having now just killed all my data and done make run, i can confirm that bin/es-update only fails post-ingest for me. [19:48] hatch: changeUnits? [19:48] OK [19:48] jcsackett yeah that comment [19:49] I may not have done things in that order [19:50] hatch: so are you suggesting that he redo things so that someone working units would do list.{add,remove,change}, and then events would be used to sync everything up? [19:50] exactly [19:50] hatch: yeah, i don't like that. :P [19:50] because how it is right now, he needs to add a changeUnits method too [19:51] hatch: but as it is now, won't he need to implement new stuff for list.change as well, *plus* the event listening stuff? [19:51] i agree changeUnits should be added, but i like the interface he's suggesting here for working with the dual lists. [19:53] hatch: i feel like using events would make this interaction more opaque. [19:53] bac have you been able to reproduce jcsackett's problem? [19:54] redir: i have not tried. i'm working on the demo issue [19:54] bac right OK [19:56] jcsackett well right now we are saying, any time you modify a unit you need to do it through these convenience methods. I'm proposing that any changes done to the main list and then propagated outwards instead [19:58] I'm just trying to stick to conventions as much as possible [20:01] hatch: i don't know that we really gain anything in this instance by following convention. [20:01] we're doing something very specific to this collection--having modifications to it also sync other bits. [20:02] well we will never run into an issue where someone updates the unit list directly breaking the synchronization [20:02] right now - if someone goes unitList.add() it's immediately out of sync [20:02] and it relies on codereview for people to 'know' that's incorrect [20:02] hatch: still, i don't think we gain much here by doing it as you suggest, beyond hiding the syncing so it's not clear when you're looking at say, `add` that it's also going to modify other things. [20:03] the other way relies on reviewing the code to know that it has side effects, though, right? [20:03] either way people are going to have to read the code. [20:03] here at least you're only having to review one thing to see what is going on. [20:04] well no, we need some way to signal to the dev that you shouldn't interact with the normal methods directly for this specific modellist [20:04] which we do. there's a big comment saying "don't do that". [20:04] only if you're reading the model [20:04] in 5/6 modellists you interact with it one way, 1/6 you need to use special methods [20:05] ...right, but if i don't read the model and see a note saying "hey, when you call `add` this other list will also update how am i going to know that happens? [20:05] that's not intuitive, and will likely silently fail [20:05] thats' fine if you don't know it's updating something else [20:05] 5/6 modellists don't keep two lists in sync, do they? [20:05] because that updating must happen [20:05] i don't know that i agree--i like knowing "call this, both things update" then wondering how on earth this other thing keeps changing. [20:06] yeah, but you know about this special unit update method [20:06] think 6mo down the line with some other devs [20:07] hatch: ah, see, we may not be having the conversation we think we're having--i was perhaps unclear in my initial restatement of what you were suggesting. [20:07] haha [20:07] hatch: you are *not* suggesting he get rid of {add,change,remove}Units [20:07] hatch: you are suggesting a different way for them to work? [20:08] well, in that you don't call them directly, they are called by events on the master unit list [20:08] maybe we should have a quick hangout :) [20:08] give me 10 minutes to finish chasing something down in my code, then i'll ping you? [20:09] ok sure [20:09] rick_h_ https://plus.google.com/111316263265570636863/posts/Ez97Lppto8v these guys made the skin I have on my phone, and now they are making them for the pebble :) thought you might be interested [20:19] jcsackett: es-update works fine on trusty after insgesting. precise still ingesting. [20:19] redir: ok. [20:20] hatch: i can chat now, if you like. [20:20] cool one sec [20:20] jcsackett https://plus.google.com/hangouts/_/7acpi4pk3ossnove1b1upqgskk?hl=en [20:26] bac juju local-provider apparently doesnt' work (out of the box) on lxc (nested lxc) so I am just doing it locally. [20:48] jcsackett: bac http://pastebin.ubuntu.com/7418220/ works on lxc:precise for me too [20:50] redir: ok, i don't have time to figure out why it's not working on mine--if you and bac can both get it charmworld working on precise with this branch, fair enough. [20:50] i'll approve the MP. [20:50] ftr, i have not tried precise. [20:51] would be nice to have someone else get it owrkking besides me [20:51] new guy [20:52] redir: agreed, we're just starved for time. :p [20:53] rick_h_: do you have time/capacity to QA redir's branch on precise? [20:53] jcsackett: OK I'd ask rick_h_ how important landing it is then [20:53] redir: i think it can probably be blocked on QA for the time being, but yeah let's see if rick_h_ agrees or can unblock it. [20:53] or find someone else who can. [20:53] ack [20:55] of course, he's gone AFK [20:55] :p [20:55] redir: are you at EoD? [20:57] jcsackett: close [20:57] but will be online for a while [20:59] redir: ok. if he doesn't get back to you this evening then at least it's not languishing for a big part of your day. [20:59] or at least not anymore than it already has. :p [21:00] building the local provider thing for bac & rick_h_ now [21:20] jujugui anyone available for a review for the machine view re-rendering bug fix https://github.com/juju/juju-gui/pull/285 [21:20] hatch, on it [21:20] thanks sir [21:21] hey huwshimi [21:21] Morning [21:21] you're here early :) [21:21] I JUST proposed your branch [21:21] except it works now :PPPP [21:21] kehehe [21:22] hatch: Thanks very much! [21:22] you were very very close [21:22] gw [21:23] feel free to take a look at the diff between our two branches if you'd like to see the changes I made [21:23] hatch: It's also a pity that my branch on github doesn't have all the changes I made in it :( [21:24] uh oh....what do you mean? You forgot to push some stuff up? :) [21:24] hatch: Maybe :) [21:24] haha I hate you [21:24] can you do it as a follow-up after this one lands? [21:25] Yeah... [21:25] phew [21:25] github doesn't really do collaborative branches very well [21:27] huwshimi https://github.com/hatched/juju-gui/commit/1ca283b93fa9e33cbe37d7906dd365bd9960166d here is my diff [21:27] hatch: Actually, it looks like a rebase might have killed a bunch of my changes :( [21:27] aww boo [21:27] what were they? [21:30] hatch: I think it was mostly to do with setting the header labels correctly. I'll have to fix that all up. [21:31] hatch: It's also missing all my code comments and a bunch of other stuff. [21:33] hatch: I'm surprised the code worked at all. [21:33] lol [21:33] it works well actually with only some small fixes [21:34] hatch: I could have knocked off an hour or two earlier :( [21:34] haha [21:34] darn [21:37] rick_h_ is there a next card you would prefer I hop on? [21:38] rick_h_: ^ let me know if there's a particular card for me today too. [21:40] he was stepping away a bit ago so he must not be back yet [21:40] huwshimi if you could do a qa on your branch that would be awesome [21:40] hatch: OK, will [21:40] thanks [21:41] hatch: No way to undo that rebase is there? [21:41] I know that's probably a stupid question [21:42] you can :) http://stackoverflow.com/questions/134882/undoing-a-git-rebase [21:42] hatch: where did you find icon data on the service? [21:43] jcsackett service.icon ;) [21:43] oh I mean service.get('icon') [21:43] :) [21:44] huwshimi: adding some uncommitted state would be cool if the machine view stuff is working. [21:44] jcsackett https://github.com/juju/juju-gui/pull/277/files#diff-a52e5f6257113ed57354e9aaca710a65R61 [21:45] rick_h_ oo do me next, do me next!! [21:45] hatch: where are we with frankban's branch? We need to get the unplaced tokens showing off that db info [21:45] rick_h_: OK, I'll take a look [21:45] hatch: so any of them around the inspector not showing but getting unplaced unit tokens [21:45] his branch isn't 'quite' done [21:46] it's missing a change unit method and a safety net console.error on the native methods [21:46] hatch: what do we need to get it done. It's holding up all the tokesn which we need to make them actually deploy as a machine/container. [21:46] hatch: so I did 'git reflog' and now I have a list of actions. I see the line I want to get back to "a3e8f9b HEAD@{21}: commit: Set headers correctly." how do I reset back to that? [21:46] oh, exit the reflog and then 'git reset --hard HEAD@{21}'? [21:47] yeah [21:47] that [21:47] huwshimi: awesome. [21:47] scary! [21:47] (i was typing that) haha [21:47] er, hatch: awesome. [21:47] huwshimi: i'm sure you're awesome too. [21:47] :) [21:47] huwshimi basically you never want to commit passwords into git because git remembers EVERYTHING lol [21:47] :) [21:48] hatch: so if you can get me unplaced unit tokens when you drag/drop a service that'd rock. [21:48] you 'can' delete commits but its lengthy [21:48] hatch: or the card where when you hit deploy you don't get an inspector popping upo [21:48] rick_h_: frankban's branch needs a changeUnits method and some protection around methods on the unitlist we should never ever use. [21:48] ^ that [21:48] hatch: we need drag/drop of the unplaced token into the other parts [21:48] ok, well if it's something you can do/add then let's run with it [21:49] everything we need to do to make this happen centers around interacting with the unplaced unit tokens [21:49] I won't be able to finish what needs to be done in his branch in an hour [21:49] hatch: k [21:49] well then one of the others mentioned ^ [21:49] just assigned one :P [21:50] ok hit deploy, not opening the inspector [21:50] if we have an inspector open it needs to switch to a real inspector though, correct? [21:51] ohh I see the card [21:51] rick_h_ so luca is stuck on this 'no-inspector' thing hey? [21:54] hatch: yep [21:54] well Mark S is [21:54] ugh [21:54] *muted ugh* [21:54] lol [21:54] hatch: yea, it does need to switch, but if we don't have it open it sholdn't open on deploy [21:55] yeah that's definitely a bug [21:55] hatch: So this branch has the changes the rebase lost: https://github.com/huwshimi/juju-gui/tree/bad-rebase [21:55] for some reason I can't get a diff against my other branch that doesn't have all the changes. [21:56] huwshimi ok once my PR lands then rebase this branch and PR with it [21:56] rebase this branch from develop that is [21:56] now that you got this code back you love git don't you? [21:56] :) [21:57] hatch: I think you know how much I love it. [21:57] i never thought i would say this, but i miss bzr. [21:57] rick_h_ ok so dragging a service to the canvas OR clicking the 'add to canvas' does NOT open an inspector......on deploy, don't open any inspectors unless one is already open....if it's open, switch to the service inspector [21:58] huwshimi lol [21:58] jcsackett git has too much power for you? :P [21:58] you can't handle it! [21:59] hatch: right [22:00] ok on it [22:01] rick_h_: jcsackett couldn't qa ngrams. I can't reproduce his problems, and bac was doing the local demo stuff. Not sure what to do the with the branch. [22:02] redir: we'll have to put it on ice until post-demo time monday [22:02] ack [22:02] redir: the other stuff is priority at the moment then I cna help QA or etc [22:02] ack [22:13] hatch: I've added a couple of comments to the PR [22:14] thanks, looking [22:19] huwshimi so after I make these changes it's good to land? [22:20] hatch: Maybe, I wrote most of the code, so I don't think I can give it a proper review :) [22:20] haha, well did ou QA it? [22:21] hatch: Yeah, it seems to QA ok [22:21] sounds good, so I'll make these changes and then landed [22:21] land it [22:21] hatch: But again, as the author of the code, I'm only testing what I know :) [22:23] huwshimi so if there are no machines then the container column should be cleared as well [22:23] hatch: Yes. [22:24] hatch: The container column will show the containers inside the selected machine (if there is one). If there are no machines then there would be nothing to show. [22:25] sounds good [22:31] rick_h_: What do we currently have in the machine view panel that can get into an uncommitted state? [22:33] i would just like to take this moment to point out we have both container-token.handlebars and token-container.handlebars [22:34] jcsackett: That's because we have a token-container.js widget and a container-token.js widget :) [22:35] right. so two moments, then, so we can all savor that. [22:35] huwshimi I'm landing the branch so you should be able to PR yours soon [22:35] hatch: Thanks! [22:36] jcsackett lol [22:36] no confusing at all [22:44] and then we just throw in the notion of 'container' as an html node... [22:44] * jcsackett segfaults [22:46] jcsackett I thought youw ere the one who made the token stuff [22:46] no? [22:46] hatch: i made the charm token. [22:46] which became the token. [22:46] and then was bisected, to become the bundle token. [22:46] and then...dear god. [22:47] but all i did was make the charm token. [22:47] hatch: I made container-token and macine-token [22:47] haha "token all the things!" [22:53] is there an aus meeting today? [22:55] hatch: Not sure... [22:55] rick_h_ ^ [22:56] hatch: Do you know if there is anything in the machine view that can be in an uncommitted state? [22:57] new machines and containers [22:57] I also think that assigning a unit to a machine can also be uncommitted [22:58] hatch: But we don't have any of that functionality now though do we? [22:59] lemme take a look [23:00] no we only have deploy, set config, and add relation [23:00] so far [23:24] amionline [23:25] yes u r [23:26] rick_h_: bac fwiw, http://bit.ly/1g0VJrw worked for me. It isn't done ingesting but I did manage to turn off wifi and find some charms that were already ingested. [23:26] thanks hatch [23:26] :) [23:33] hatch: Here is the final set of changes: https://github.com/juju/juju-gui/pull/286 [23:38] cool I'll take a look in a few [23:40] np [23:43] Need to fix tests anyway [23:57] Fixed. [23:59] Everyone celebrate. I have service units showing in all tokens.