#juju-gui 2013-03-25
<frankban> morning rogpeppe1: would you like to take another look at https://codereview.appspot.com/7947043/ ? Updated as suggested by William.
<rogpeppe1> frankban: will do
<frankban> thanks
<teknico> rogpeppe, hi, remember those test errors of mine on Friday on quantal? they're still happening, any news? http://pastebin.ubuntu.com/5637181/
<rogpeppe> teknico: i'll fix the problem, one mo.
<teknico> rogpeppe, thanks
<rick_h_> :w
<benji> :w Plan-to-get-rick_h_-to-remember-which-window-has-focus.txt
<rick_h_> heh, sometimes a typo in a tiling WM command can get you wrong focus for sure :)
<benji> :)
<gary_poster> he bcsaller, I'm saying that waiting more than two minutes after juju-destroy-environment on canonistack is too long, and we will use euca-terminate-instances then.  Does that seems like a good time limit, or should I increase or decrease?
<bcsaller> gary_poster: two minutes should be enough
<gary_poster> cool thanks
<bac> frankban: your face is on the 'charm info' card.  will you be starting it soon?  how long do you think it'll take?  i ask because my get_endpoints work depends upon it.
<frankban> bac: feel free to work on that, deleting my face, if you want. Otherwise I'll start that card later today.
<bac> gary_poster, benji: either of you have time for a pre-imp call?
<gary_poster> bac, happy to, or benji either way
<benji> bac: I'm afraid I don't at the moment (neck deep in this quagmire
<benji> )
<bac> gary_poster: ok, five minutes?
<gary_poster> bac, cool, ping when ready
<hatch> morning
<rick_h_> morning
<Makyo> Coffee.
<bac> gary_poster: you disappeared
<benji> I can not for the life of me get rid of the "Your certificate contains the same serial number as another certificate issued by the certificate authority." error when trying to connect to juju.
<benji> oh, oh!  I got it.
<benji> debugging by public complaining; good stuff
<rick_h_> best kind, especially when we don't have to know anything to say we helped
<hatch> haha that happens to me so often
<hatch> I'm really hoping that helps with a d3 bug i'm trying to track down
<hatch> haven't quite reached the point of raging yet though
<hatch> guichat in 2m?
<rick_h_> gary_poster: going to miss today
<gary_poster> ack rick_h_ 
<hatch> we'll miss you
<gary_poster> jujugui call in 1
<rick_h_> hatch: hah, some days have to kill the calls down :P
<hatch> haha
<gary_poster> goodspud, starting without you
<bac> goodspud: are they saving money but cutting the heat in bluefin?
<hatch> lol I was thinking the same
<goodspud> bac, London has got very cold and where Luca and I sit is directly under an air vent
<goodspud> They also beat us
<bac> goodspud: well, stay warm
<gary_poster> goodspud, lol
<goodspud> gary_poster, could you please invite luca to the daily call meeting
<goodspud> And the end of week "State of the Nation"
<gary_poster> ack goodspud, and will get him on kanban
<gary_poster> kanban may need to wait till next week
<hatch> gary_poster: I'm going to clean up this branch and then push what I have and create a ticket for the last remaining bug and then I can help you out
<gary_poster> coo, thank you hatch
<benji> uh oh, gary_poster is turning into a dove
<gary_poster> :-)
<gary_poster> I was going more for the fake cockney that whatzizname used in the Mary Poppins film.
<gary_poster> Dick van Dyke
<teknico> rogpeppe, any idea what might cause this error in tests? "cannot add relation \"wordpress:db mysql:server\": service \"wordpress\" is not alive"
<rogpeppe> teknico: which test failed?
<teknico> rogpeppe, opClientAddRelation, that I'm adding to state/apiserver/api_test.go
<rogpeppe> teknico: i'm almost certain that it's because some operation isn't correctly returning an undo function
<teknico> rogpeppe, I'm trying to add the reset() function you commented upon
<teknico> I tried a number of variations, but I always end up with some error
<rogpeppe> teknico: are you seeing this error in trunk?
<teknico> rogpeppe, nope, it's unrelated to those other quantal errors
<teknico> (or so I guess)
<rogpeppe> teknico: ok. can you paste your version of api_test.go 
<rogpeppe> ?
<teknico> sure
<teknico> rogpeppe, http://pastebin.ubuntu.com/5646585/
<teknico> (will someone please add Go syntax highlighting to the pastebin? thanks ;-) )
 * rogpeppe doesn't like syntax highlighting :-)
<hatch> no syntax highlighting?
<hatch> I didn't think people like you existed :P
<rogpeppe> hatch: i don't need pictures in my books either :-)
<hatch> rofl
<rogpeppe> teknico: you can delete line 284, but that's irrelevant to this
<teknico> right
<rogpeppe> teknico: do you get an error from the Refresh, out of interest?
<rogpeppe> teknico: i think if it had actually been destroyed then you would
<teknico> rogpeppe, nope, here are the errors I get:
<teknico> rogpeppe, http://pastebin.ubuntu.com/5646615/
<rogpeppe> teknico: ha! i've found the culprit
<rogpeppe> teknico: opClientServiceDestroy is bogus
<teknico> rogpeppe, the culprit that caused the cul-de-sac? ;-)
<teknico> oh, how so?
<rogpeppe> teknico: yeah. basically, look down the set of opClient functions, and anyhing that makes a change and doesn't return an undo function is bogus
<rogpeppe> teknico: so current candidates:
<rogpeppe> teknico: opClientServiceDestroy
<teknico> ah, right
<rogpeppe> teknico: opClientSetServiceConstraints
<rogpeppe> teknico: opClientAddServiceUnits
<rogpeppe> teknico: opClientResolved
<rogpeppe> teknico: actually, the last is ook
<rogpeppe> teknico: opClientServiceExpose
<rogpeppe> teknico: opClientDestroyRelation
<teknico> that one's bac's :-)
<rogpeppe> teknico: i know it's a pain, but we need to fix all those
<teknico> for some def of "we" ;-)
<rogpeppe> teknico: it's my fault really - i should have been keeping a closer eye on the CLs :-)
<teknico> rogpeppe, btw, what does "CL" mean? :-)
<bac> s/CL/MP
<rogpeppe> teknico: "change list"
<rogpeppe> teknico: sorry, it's terminology from another project
<teknico> bac, yeah, I reckoned that, was wondering about the definition
<teknico> rogpeppe, thanks
<bac> teknico: while you're there, perhaps you could fix my booboo.
<teknico> rogpeppe, so how do we proceed? do I get to keep the pieces that I didn't break? :-)
<teknico> bac, ehi wait, don't give rogpeppe unhealthy hints! ;-)
<rogpeppe> lol
<rogpeppe> teknico, bac: how about you divide it up between you?
<teknico> (bac, btw I was trying to do just that before Pandora's time)
<rogpeppe> it should be fairly straightforward.
<teknico> rogpeppe, ok, I'll try to fix them since I'm already on it
<rogpeppe> teknico: given that tests don't currently break in trunk, i'd accept a version of DestroyRelation that did the undo correctly.
<rogpeppe> teknico: i'd prefer a separate branch that fixes the current issues, if that's ok
<teknico> rogpeppe, but it won't likely be *that* straightforward, so expect to be interrupted again :-)
<teknico> rogpeppe, sure, I'll invoke the magic of pipelines :-)
<rogpeppe> teknico: yeah. i still think these tests aren't worth it, but there we go
<rogpeppe> teknico: i don't think you need a pipeline actually
<rogpeppe> teknico: i think all the changes are independent
<teknico> rogpeppe, in that case let's have fwereade fix them! ;-)
<rogpeppe> teknico: :-)
<rogpeppe> teknico: what series are you running?
<rogpeppe> teknico: you're still seeing environs/ec2 tests fail in trunk, right?
<teknico> rogpeppe, eenvironments.yaml sez: default-series: precise
<teknico> rogpeppe, yes, I am
<teknico> or ar least I was this morning
<rogpeppe> teknico: sorry, what does your /etc/issue show?
<hatch> app/views/topology/service.js:106 "render" undocumented but not listed as such
<hatch> anyone know what's up with that error?
<hatch> It IS documented
<rogpeppe> teknico: or /etc/lsb-release
<teknico> rogpeppe, Ubuntu 12.10
<teknico> lsb-release agrees
<rogpeppe> teknico: and uname -a prints... ?
<teknico> Linux brightouch 3.8.4-030804-generic #201303201832 SMP Wed Mar 20 22:40:47 UTC 2013 i686 i686 i686 GNU/Linux
<hatch> oops I forgot a * in the comment block :)
<teknico> rogpeppe, raring kernel, seems to work anyway :-)
<rogpeppe> teknico: you're running a raring kernel against a precise image?
<teknico> rogpeppe, I'm running a raring kernel on a quantal host, what do you mean "against a precise image"?
<rogpeppe> teknico: sorry, i meant quantal image.
<rogpeppe> teknico: image == host in this case
<teknico> rogpeppe, yep, I have graphics issues with stock 3.5
<hatch> bcsaller: I'll review yours if you review mine: https://codereview.appspot.com/7815047 :P
<bcsaller> hatch: I'll take a look 
<bcsaller> hatch: I don't have the proper means to verify this but I'll review the code
<hatch> yeah that's fine - nobody does lol
<hatch> just have to take my word for it I guess :P
<gary_poster> rick has a 7
<hatch> well I suppose you could make sure it works on the desktop still
<hatch> oh he does? cool
<hatch> rick_h_ you aruond?
<gary_poster> still works on desktop: that would be nice :-)
<rick_h_> hatch: yep, what's up?
<hatch> would you be able to QA/review my branch that I linked above
<rick_h_> sorry, reading back log? Need N7 / N10 QA?
<hatch> yes please :)
<rick_h_> hatch: yea, I've got a call in a few min. I'll get to it in a few
<hatch> yeah no problem no rush
<rick_h_> goodspud: ping for call
<luca__> rick_h_: Hi, goodspud is just restarting his machine, it chrashed
<rick_h_> luca__: ah thanks
<rick_h_> luca__: so I don't see a hangout in the calendar for this. 
<luca__> rick_h_: I think he just sent it to you
<hatch> rick_h_ hold off on the qa for a little bit, I'm just refactoring some code
<rick_h_> hatch: rgr
<hatch> bcsaller: what handles the removal of the element from the DOM when the service is destroyed?
<hatch> I don't see anything explicitly removing it...
<hatch> so I'm assuming it's a side effect?
<bcsaller> hatch: there is an exit() section, it will call exit().remove() which says for the selection of elements not in the working set of data, remove them from the DOM
<bcsaller> explicit but you have to understand how data binding works in D3
<hatch> yup found it thanks
<hatch> is the remove() method a YUI method or d3?
<hatch> I"m going to guess d3
<bcsaller> d3
<bcsaller> exit is a d3 selection and remove is an action applied to the selection
<hatch> yeah I now have the d3 api open :)
<bcsaller> hatch: if you haven't looked at it yet it is pretty awesome, very powerful abstractions 
<hatch> yeah it's missing a few convenience methods that I am taking for granted with YUI ;)
<rogpeppe> teknico: did you file a bug for the quantal tests failing issue?
<rogpeppe> teknico: (i'm just proposing a fix and would like to link it to the bug)
<teknico> rogpeppe, no, I didn't
<rogpeppe> teknico: ok, pn
<rogpeppe> np
<teknico> rogpeppe, thanks for the fix :-)
<teknico> rogpeppe, what's the easiest way to get the last unit that was added to a service (in order to destroy it)?
<rogpeppe> teknico: AddUnit returns the last unit that's been added
<rogpeppe> teknico: ah... but you don't know that!
<rogpeppe> teknico: hmm.
<teknico> rogpeppe, yep, but the api client does not, unfortunately
<rogpeppe> teknico: yeah exactly
<rogpeppe> teknico: i think for these purposes it's ok to assume that the unit numbers increase sequentially.
<rogpeppe> teknico: ah, that might not work either
<teknico> something like state.Unit("wordpress/2")?
<rogpeppe> teknico: yeah, but you'll be adding (and removing) quite a few units, so the number will keep on rising
<teknico> or svc.AllUnits[-1] (does Go have that nice Python tidbit anyway?  :-) )
<rogpeppe> teknico: no
<rogpeppe> teknico: (it has unfortunate edge cases)
<rogpeppe> teknico: i think you'll have to use AllUnits. or, i guess you could make the API return the units that have been added.
<teknico> rogpeppe, I'd actually like it if all the API calls returned stuff, but that's a change for another branch
<teknico> rogpeppe, what would the AllUnits syntax be then?
<rogpeppe> teknico: something like this, perhaps: http://paste.ubuntu.com/5646916/
<rogpeppe> teknico: actually http://paste.ubuntu.com/5646923/
<teknico> rogpeppe, oh wow :-) thanks
<teknico> rogpeppe, while we're at it, there seems to be no explicit way to remove service constraints
<Makyo> Where was that python script that we've been using to test the juju websocket implementation?
<teknico> rogpeppe, can I just SetConstraints(nil) ?
<rogpeppe> teknico: yeah, i think you should be able to do SetConstraints(state.Constraints{})
<gary_poster> benji, ^^ Makyo?  If not around I can probably find
<rogpeppe> teknico: the zero constraints struct is the original default, i think
<teknico> rogpeppe, great
<teknico> Makyo, check the "Interactive Testing" section of https://docs.google.com/a/canonical.com/document/d/1n8rhYuj7YvTcz_HdKV1tLVj9cfSbkHTCzks1_9BZEdI/edit
<Makyo> teknico, gary_poster benji - Cool, thanks!
<gary_poster> :-)
<gary_poster> thank teknico 
<gary_poster> that was supposed to be "thanks"
<teknico> thank benji ;-)
<gary_poster> we're all so thankful
<hatch> if I'm going to be doing more of this testing I think I'm going to need one of these.... https://play.google.com/store/devices/details/Nexus_7_Dock?id=nexus_7_dock&feature=accessories
<hatch> of course it's out of stock...lol
<gary_poster> it looks like someone broke IE, which is annoying :-/ doublechecking
<hatch> gary_poster: watch the video - sometimes it passes with 100% but the CI still says it failed
<hatch> I think bcsaller said this was something to do with the login screen?
<gary_poster> hatch, no, lots of failures
<hatch> oh...ok :)
<bcsaller> gary_poster: I'll run trunk through IE locally and see what I get
<gary_poster> me too thanks
 * hatch is fighting with null
 * hatch creates a ticket for Friday to ban null from our code ;)
<teknico> rogpeppe, in latestUnit you use st.Unit , so I suppose I need to pass state as an arg too, right?
<rogpeppe> teknico: yeaj
<rogpeppe> h
<gary_poster> bcsaller is there a way to step through the video?
<gary_poster> that you know of
<bcsaller> gary_poster: no, I've always had to pause/unpause it 
<gary_poster> meh, k thanks bcsaller 
<bcsaller> gary_poster: So I initially had an issue with IE, but after clearing the browser cache its at 100%. This isn't the first time I've seen this issue (particularly with IE)
<bcsaller> gary_poster: what doesn't make sense is that for this to the be issue (and the video seems to show the same problem) they'd have to be caching in their VM between runs
<gary_poster> bcsaller locally I had tests mostly pass, with one intermittent failure of "notifier widget: should destroy notifications after N milliseconds: expected 0 to equal 1"
<gary_poster> which is nothing like video yeah
<hatch> ohhh that stupid caching issue again
<hatch> gary_poster:  I sent a message to them about that and never received a response
<hatch> I could followup if needed - the issue appeared to resolve itself however
<gary_poster> so maybe just try again?
<gary_poster> there's no selenium api to clear cache apparently.  thought that was worth a try :-)
<hatch> well they claim they are new VM's
<hatch> so there should be no cache
<gary_poster> yeah. :-/
<hatch> so it must be something infront of it
<gary_poster> proxy cache
<gary_poster> yeah
<hatch> yeah
<bcsaller> gary_poster: http://flowplayer.org/docs/#keyboard-shortcuts
<gary_poster> cool, thanks bcsaller!
<bcsaller> gary_poster: maybe we should generate the yui-all link with javascript to include ?ts=<timestamp> or something that will break caching
<bcsaller> https://saucelabs.com/tests/e418a834eb804e6595b1354251fbd341# @ 1:12 or so, seeing that login issue again. I hadn't figured out why that was happening yet because going there (to the public IP) with a browser doesn't ask for login
<teknico> rogpeppe, setupScenario creates services with calls like this one: AddService("wordpress", s.AddTestingCharm(c, "wordpress"))
<gary_poster> bcsaller, worth a try.  would be testing only though...will think about it.  looking at that last failure now (looks like something logged us out...)
<rogpeppe> teknico: go on
<teknico> rogpeppe, however, I cannot use it inside an op* function, because while in there I have no access to s, which is the suite
<rogpeppe> teknico: hmm
<teknico> or have I? :-)
<rogpeppe> teknico: no, i think you're probably right
<rogpeppe> teknico: what are you trying to do?
<teknico> rogpeppe, I'm trying to recreat a service in the reset function of opClientServiceDestroy
<teknico> *recreate
<rogpeppe>  teknico: if you're just trying to add a service, you don't need AddTestingCharm
<rogpeppe> teknico: because various charms have already been added.
<rogpeppe> teknico: so you can get the charm with st.Charm(charmURL) i think
<teknico> rogpeppe, where charmURL is just "wordpress"?
<rogpeppe> teknico: hmm, not quite
<gary_poster> bcsaller, the loging issue can happen if you explicitly log out; or if the html 5 storage we use stashes/returns bad values I suppose
<gary_poster> logging
<gary_poster> we are not logging out, of course
<rogpeppe> tekniko: you can use local:series/wordpress-3
<rogpeppe> teknico: which seems a bit dodgy (the "3" comes from the file testing/repo/series/wordpress/revision
<rogpeppe> )
<rogpeppe> teknico: i wonder if we might be better just providing access to the suite in the op* functions.
<bcsaller> gary_poster: its also possible we have to add a flag to desired capabilities before HTML5 storage is enabled. Normally we'd have to click yes to allow the permission I think so it might not be on w/o that flag
<bcsaller> though it does work sometimes....
<bcsaller> so maybe not
<gary_poster> yeah :-/
<teknico> rogpeppe, I can't seem to find the Constraints{} definition anywhere...
<rogpeppe> teknico: you actually want constraints.Value{}
<rogpeppe> teknico: sorry for the red herring
<teknico> rogpeppe, no worries, I like herrings, and am not racist anyway ;-)
<rogpeppe> teknico: :-)
<rogpeppe> teknico: another possibility is to make AddTestingCharm into a function, rather than a method (well, it would probably remain a method too, so we don't have to change everywhere)
<rogpeppe> teknico: ah, but that wouldn't work actually
<rogpeppe> teknico: another possibility is to provide a context struct to the op functions rather than the state. type opContext struct {st *state.State; wordpressCharm *state.Charm}
<rogpeppe> teknico: then it can become a grab-bag for any stuff we find we need to pass to these functions.
<teknico> rogpeppe, what you say if we go with the fragile charm url now and refactor later?
<rogpeppe> teknico: sounds reasonable. could you add a TODO, please.
<teknico> rogpeppe, sure
<teknico> rogpeppe, I still have errors that I'm not clear on: http://pastebin.ubuntu.com/5647056/
<rogpeppe> teknico: sounds like you're using constraints as a variable name and you're importing the package
<teknico> rogpeppe, oh, indeed, it's what the opClientSetServiceConstraints does already :-P
<teknico> rogpeppe, wow, it sets the null constraints already, so the reset function would not change anything :-)
<rogpeppe> teknico: ah, cool!
<teknico> and I think I know what the first error means
<teknico> rogpeppe, ok, it compiles and runs. How do I wait for service destruction? I need to call Refresh on something, right?
<rogpeppe> teknico: i don't think you need to wait
<teknico> rogpeppe, and yet I get this: http://pastebin.ubuntu.com/5647091/
<teknico> the reset() tries to recreate the service supposedly just destroyed
<rogpeppe> teknico: could you paste your api_test.go ?
<teknico> rogpeppe, is opClientServiceDestroy enough?
<rogpeppe> teknico: probably, yeah
<teknico> rogpeppe, http://pastebin.ubuntu.com/5647096/
<rogpeppe> teknico: i think i'd do it the other way around - you can't destroy wordpress because it has units
<rogpeppe> teknico: so.,..
<rogpeppe> teknico: i'd create a new service via the *state.State, giving it a different name (say "wordpress-to-be-destroyed")
<rogpeppe> teknico: then test ServiceDestroy on that
<rogpeppe> teknico: in fact...
<teknico> right
<rogpeppe> teknico: don't bother with any of that!
<rogpeppe> teknico: just try to destroy a non-existent service
<rogpeppe> teknico: and check that the error message looks right
<rogpeppe> teknico: doh! i should've thought of that before
<teknico> "those are words that go together well" ;-)
<hatch> bcsaller: do we have any convenience methods to get a .service DOM element from the service model?
<hatch> if not, it's not a huge issue I just want to confirm that the touchstart event is being detached when d3 destroys the element
<bcsaller> hatch: yes, service module has getServiceNode(id_of_service) which is I think what you mean
<hatch> yep that's it
<hatch> thanks
<hatch> looks like it does
<rick_h_> hatch: you got time to review another branch https://codereview.appspot.com/7796047/ ?
<hatch> in a bit I'm just making the tests pass after my refactor
<rick_h_> hatch: thanks, no rush on my end
<rick_h_> gary_poster: https://codereview.appspot.com/7794048 is this what you're looking for in the docs side? I've added cards to update some of charmworld's stale docs as well.
<gary_poster> rick_h_, thanks!  yes, comment added, but that's exactly it.
<gary_poster> lgtm
<rick_h_> gary_poster: right, the 'develop with local' is just to change the url in config and follow the install docs in charmworld
<rick_h_> gary_poster: thanks
<rick_h_> for looking real quick
<jcsackett> hatch: can you take another look at rick_h_'s comments and mine on https://codereview.appspot.com/7792045/ ? unless you already spoke with rick and are good with things like setBusy.
<hatch> rick_h_ just finished your review
<hatch> jcsackett: just about to open those emails
<jcsackett> hatch: ah, excellent. thanks. :-)
<rick_h_> hatch: ty much. The sidebar_editorial is the upstream api endpoint. It was a mistake to change it in the last branch. This is a drive by fix. Sorry I missed noting it in the MP comments.
<hatch> rick_h_ hah np I figured as much - I was just joking
<rick_h_> hatch: took me a minute to figure out what you meant :P
<rick_h_> had me checking order of args and such
<hatch> :D oops sorry
<hatch> jcsackett: do you have access to our kanban?
<jcsackett> hatch: it looks like i can see it. i'm having some lag actually opening to see if i have full access. why?
<benji> rick_h_: JS/YUI question for you: how do I assert that calling a function fires a particular event?
<rick_h_> benji: bind to that event, assert within it, and then call the function
<hatch> jcsackett: https://canonical.leankit.com/Boards/View/102529849/104367538 this is why we don't use null
<hatch> rick_h_ using that method won't it pass if it doesn't assert?
<hatch> er doesn't get called?
<benji> rick_h_: cool (that's what I was doing, so I feel more JS-worthy now)
<rick_h_> hatch: so two ways, there's async tools for setting a wait and resumes in the asserting callback. That will break 
<jcsackett> hatch: dig. i'll change it.
<jcsackett> thanks for the clarification.
<hatch> np :)
 * rick_h_ has  example of this
<hatch> rick_h_ oh ok what I was going to suggest was putting the 'done()' call in the callback
<hatch> is that not the proper way?
<hatch> I just read the docs to find out about it so I could be wrong :)
<rick_h_> hatch: yea, I'm thinking in YUI test it's wait/resume
<rick_h_> hatch: so not sure how that works in mocha/should.js
<rick_h_> hatch: I setup a var in the namespace 'triggered' and in the callback bound set it to true, then assert fired==true
<jcsackett> hatch: is that in general? is there ever a time when null *would* be right? kind of wondering what it should be used for, given that.
<rick_h_> that's the second way I've done it, as long as things stay all nice and single threaded/etc
<hatch> jcsackett: if you can guarantee that null is actually null and not at some point typecasted to 'null' then yes
<hatch> but honestly in javascript on a large app that's damn near impossible haha
<jcsackett> hatch: ok, but so for attr's a default should be undefined.
<jcsackett> s/attr's/attrs/
<hatch> yeah I use undefined because then I don't need to define a value at all as it's undefined by default
<jcsackett> dig. thanks.
<hatch> thanks, just push that change up and I'll LGTM it
<hatch> benji, rick_h_, in test_sub_app.js I used the 'done' in the callback method
<hatch> that's according to the mocha docs but I really have no idea if it's the best way
<rick_h_> benji: http://bazaar.launchpad.net/~juju-gui/juju-gui/trunk/view/head:/test/test_browser_search_widget.js#L99 is the second way. and L33 is the first way
<rick_h_> hatch: yep, L33 in the above file uses that
<benji> hatch: I don't see how it could be bad (famous last words)
<hatch> cool cool :)
<Makyo> Gotta run an errand, will be out for a few.
<hatch> bcsaller: In doing the refactoring from your last review I need to get the `component`(topo) attribute on the service view but the context is the svg element
<hatch> I actually need the service instance as well
<rick_h_> hatch: is your branch ready for QA now? 
<hatch> rick_h_ I just want to hear from bcsaller about his last comments first
<bcsaller> hatch: so the data is the view model, that should get you the model as box.model -> Service
<rick_h_> hatch: rgr, just wanted to check in before EOD
<hatch> ohhh ok ok - so 'this' isn't actually the DOM element, it's the D3 element
<bcsaller> hatch: no, I'm talking about the 1st argument to the call in this case, the data
<hatch> ohh ok I see now
<bcsaller> hatch: usually for access to topo you'd pull it from the closure of the method each is called on
<bcsaller> hatch: otherwise you need to switch to selection.call(function, args) but that is only called once for the entire selection
<bcsaller> I recommend each + the closure 
<hatch>       node.each(function(data, index) {
<hatch>         self.attachTouchstartEvents(data, node[index]);
<hatch>       });
<hatch> that's what you were going for right?
<bcsaller> hatch: that looks right and I think you don't need index as I suspect you won't use it, it usually omitted by convention 
<bcsaller> data should be each view model, one per call
<hatch> gotcha - I'm thinking that passing in the node would be easier than resolving it once I get into the attachTouchstartEvents method
<bcsaller> inside the each 'this' is already the node 
<hatch> oh doh 0 I had a typo
<hatch> :)
<hatch> bcsaller: ok after messing around with this I think I am missing something :) when I log 'this' in the attachTouchstartEvent method I get the serviceModule instance not an element
<bcsaller> because you call it as self.
<bcsaller> self.attachTouchstartEvent(data, this) -> attachTouchStartEvent(box, node) // this == ServiceModule
<hatch> oh ok I see now I have the elements
<hatch> should really read the api properly
<hatch> :)
<hatch> bcsaller: issue - now it's being called for 'ghost' elements as well but for some reason hasClass returns false for 'pending' but it's in the element.classList property - ever seen this issue before?
<bcsaller> use selection.classed('classname')
<bcsaller> hatch: yui's Node impl doesn't handle svg elements properly, specifically wrt CSS styles/classes
<hatch> ahhh I wanted to ask before I went digging
<hatch> thanks :)
<hatch> so what is 'selection' ?
<hatch> d3.select(node).classed()
<hatch> bcsaller: have you filed a ticket with YUI for that bug?
<bcsaller> the node should have that api already
<bcsaller> node.classed('foo')
<hatch> it's just a DOM Node
<hatch> it doesn't
<bcsaller> in that case then yes, d3.select(node).classed('foo')
<hatch> d3 feels like jquery
 * hatch needs a shower
<hatch> lol
<hatch> bcsaller: 3rd time's the charm!
<hatch> bcsaller: yes....I definitely agree :)
#juju-gui 2013-03-26
<frankban> hi rogpeppe: when you have time, I need another approval for https://codereview.appspot.com/7947043/
<rogpeppe> frankban: looking
<frankban> rogpeppe: thanks
<rogpeppe> frankban: there was one little thought i had last night, and it seems i lost the comment somewhere
<rogpeppe> frankban: in annotator.insertOps, if you reverse the order of the operations, the code could become a little simpler looking
<rogpeppe> frankban: like this: http://paste.ubuntu.com/5649143/
<frankban> rogpeppe: I see. ok
<frankban> rogpeppe: I'll make this change and then land the branch, sounds good?
<rogpeppe> frankban: i've just made one other final suggestion in the review
<rogpeppe> frankban: LGTM with both those changes made, thanks!
<frankban> rogpeppe: cool, thanks
<gary_poster> frankban, hi.  are you available for a quick consultation on some CI/shelltoolbox topics?
<frankban> gary_poster: sure
<gary_poster> thanks frankban.  no rush, guichat when you are available
<rogpeppe> gary_poster: hiya
<rogpeppe> gary_poster: do you know if anyone is currently working on adding more fields to the various allwatcher info types?
<gary_poster> rogpeppe, benji if anyone
<gary_poster> he will be the person to do it
<benji> rogpeppe: not at the moment, but soon
<rogpeppe> benji: ah - i've had a request from green for public address and status in unit info. if you're about to do it, i'll leave it to you though.
<benji> rogpeppe: I can do that, if gary_poster doesn't have any immediate plans for other things for me to work on
<gary_poster> benji, I would take advantage of rogpeppe being willing to do some of the work we need :-)
<rogpeppe> lol
<benji> heh
<rogpeppe> benji: i'd be happy to do it. i could do all the other fields at the same time if you like - let me know what you need
<benji> we need what is used in the GUI, let me see if there is an easy to extract list
<gary_poster> benji, my guess was in app/store/env/sandbox.js in _deltaWhitelist
<gary_poster> it is at least a reasonable start
<benji> cool, looking
<benji> rogpeppe: here is a pretty good list of attributes: http://bazaar.launchpad.net/~juju-gui/juju-gui/trunk/view/head:/app/store/env/sandbox.js#L213
<rogpeppe> benji: thanks. the only immediate issue i see is machine.instance_state and machine.public_address
<rogpeppe> benji: because we don't currently have those available.
<rogpeppe> benji: except by talking directly to the environment
<benji> we'll take what we can get, for the time being :)
<gary_poster> rogpeppe, agreed with benji, but I suspect we need to figure out how to get at least one of those.  I'll do a quick search...
<rogpeppe> gary_poster: i have two possible solutions in mind
<gary_poster> we definitely use public_address...
<gary_poster> looknig for other
<gary_poster> yup, we use instance_state too
<rogpeppe> gary_poster: could you use the public address from the units instead?
<gary_poster> rogpeppe, if they are functionally equivalent then absolutely
<rogpeppe> gary_poster: yes, i think the PublicAddress in a unit is just what would be provided by the machine
<gary_poster> rogpeppe that's perfect then
<rogpeppe> gary_poster: the instance state is a little harder, as it's something that needs to be polled from the provider
<gary_poster> benji ^^ PublicAddress on units will require some tweaks.  Could you note somewhere, publicly (card) or privately (personal task)
<rogpeppe> gary_poster: one solution involves putting the information in the state, and adding a jujud worker that polls for information from the provider. the other involves adding an API call to retrieve the info explicitly
<benji> gary_poster: dure
<gary_poster> :-)
<benji> or "sure" even
<rogpeppe> gary_poster: i'm inclined towards the latter currently. something like MachineInfo(id string) struct{PublicAddress string; InstanceState string}
<gary_poster> rogpeppe, that sounds workable.  We only show that on one very deep detail page
<gary_poster> rogpeppe, what would you expect the usual turn-around time on a response to that query to be?  or is that a fair question?
<rogpeppe> gary_poster: that seems good then. and it's something that can be changed deliberately by an admin, so having manual control of refresh might be a good thing
<benji> gary_poster: card added 
<gary_poster> thank you benji
<rogpeppe> gary_poster: 680ms
<benji> np
<rogpeppe> gary_poster: more or less :-)
<gary_poster> rogpeppe, lol ok UI'll take it
<hatch> mornin
<teknico> rogpeppe, hi :-) I need some more help with one last reset() function in api_test.go
<rogpeppe> teknico: i've got a call right now. will be with you in a short while.
<teknico> rogpeppe, great, thanks
<teknico> I'll start writing as an attempt to optimize the pipeline :-)
<teknico> I rewrote opClientServiceDestroy to attempt destroying a non-existent service, as you mentioned yesterday: http://pastebin.ubuntu.com/5649448/
<teknico> it works because TestOperationPerm ends up matching the error with "permission denied" (not sure how much the test is meaningful though)
<teknico> however, I still have a problem with opClientDestroyRelation: opClientDestroyRelation
<teknico> ehm, http://pastebin.ubuntu.com/5649442/
<hatch> benji: doing a review on your branch right now
<benji> cool, thanks hatch 
<teknico> as you can see, it has the usual problem of trying to destroy the relation that still exists
<teknico> sorry, it tries to *add the relation that has not been destroyed yet
<teknico> I tried rewriting it in the same guise as opClientServiceDestroy, attempting to destroy a non-existent relation
<teknico> but the result is not as good: it works for some machines but not for others in the loop
<teknico> that's the last reset() function you asked me to add, then I'll be able to propose this branch and go back to what I was working on originally
<hatch> gary_poster: after the morning chat can you bring me up to speed on the CI stuff?
<gary_poster> sure thing hatch
<gary_poster> thanks
<hatch> benji: review done - just trivial stuff but I think you might agree :)
<benji> cool, I'll take a look
<rogpeppe> teknico: out of call
<rogpeppe> teknico: looking at your paste
<rogpeppe> teknico: how about just DestroyRelation("foo", "bar") ?
<teknico> rogpeppe, you asked for it: :-) http://pastebin.ubuntu.com/5649498/
<rogpeppe> lol
<benji> hatch: thanks for the review, I've responded, most interestingly to the asynchonicity issue
<rogpeppe> teknico: interrrresting...
<hatch> benji: so wrt the done() - I meant to put the done() in the event callback
<gary_poster> jujugui call in 2
<rogpeppe> teknico: that doesn't look like it's related to the DestroyRelation. it may be a genuine, honest to goodness bug. :-)
<hatch> right now "potentially" the conn.msg() call could fire, and before the callback is run it could run the assert
<teknico> rogpeppe, nice
<rogpeppe> teknico: could you paste me a branch url please?
<hatch> this is a huge MAYBE - but one that would be damn near impossible to track down :)
<teknico> rogpeppe, https://code.launchpad.net/~teknico/juju-core/fix-cleanup-in-api-tests
<teknico> rogpeppe, and now it's my turn to have a call
<benji> I'm torn between putting in a done() to be pragmatic and resisting voodoo.
<rogpeppe> teknico: ok, that'll keep me busy for a bit...
<teknico> rogpeppe, what if I just leave that last one out for now?
<rogpeppe> teknico: let me try to get to the bottom of the issue first
<teknico> rogpeppe, ok
<rogpeppe> teknico: it *should* work, i think
<hatch> benji: yeah - I can see it never being an issue but I would like to err on the side of caution :)
<hatch> rick_h_ possible to get that review?
<teknico> rogpeppe, out of call, shoot when ready
<Makyo> Some morning humor: https://github.com/joho/7XX-rfc
<rick_h_> hatch: ah, yea. link me again please? It doesn't show in my codereview since i didn't participate yet
<hatch> https://codereview.appspot.com/7815047/
<teknico> Makyo, ha! that's nicely comprehensive, except for one glaring omission: no mention of mysql
<Makyo> teknico, Hah!
<rogpeppe> teknico: try this: lp:~rogpeppe/juju-core/tekniko-fix-cleanup-in-api-tests
<teknico> Makyo, otoh, it having to be on *github* is slightly unnerving, do they plan that many revisions?
<Makyo> RFPR - Request For Pull Requests?
<teknico> rogpepbe, I will, I mean rogpeppe ;-)
<teknico> rogpeppe, while tests run, did that last failure actually expose a bug or not?
<rogpeppe> teknico: no, it didn't
<rogpeppe> teknico: i'd missed the assertion failure higher up the log
<rogpeppe> teknico: i *think* that branch should give you most of what you need
<teknico> rogpeppe, good
<rogpeppe> teknico: you can look at the diffs to see what i did to solve the problem
<teknico> rogpeppe, I did, and I may even have understood the approach :-)
<rogpeppe> teknico: :-)
<teknico> rogpeppe, the TestOperationPerm tests pass, great job, thanks!
<teknico> rogpeppe, now running all apiserver tests, and then the whole thing
<rogpeppe> teknico: cool
<bac> hi bcsaller, free to chat?
<bcsaller> bac: winding down call, maybe  5 minutes
<bac> bcsaller: great
<rick_h_> hatch: heads up, I got a conflict merging your branch into a fresh trunk copy in app/views/topology/service.js so an quick pull from trunk should make landing easier 
<bcsaller> bac: still on call, I'll ping you soon
<bac> ok
<rick_h_> hatch: ping
<hatch> hey sorry in call
<rick_h_> hatch: ah, np. got ? for you when you get off in QA here
<hatch> sure
<hatch> rick_h_ guichat?
<rick_h_> hatch: sure can, sec
<bcsaller> bac: ok, off call
<bac> bcsaller: ok.  so you want to hangout now or in a few minutes?
<frankban> benji: LGTM with a few questions
<benji> cool, thanks
<benji> I'll be done with your review in a minute.
<bcsaller> bac: we can do it now but I think normal chat room is taken
<bac> bcsaller: i'll make one
<teknico> uhm, I wonder why compiz is a bit crashy lately
<Makyo> teknico, has been for me, too.
<Makyo> Dash, too.
<Makyo> Blacklisting my work directory helped, so that it wouldn't search through branches.
<teknico> Makyo, oh, nice, if it speeds it up it's definitely worth it, how do I do that?
<Makyo> teknico, System Settings - Privacy - Files - Don't record activity in the following folders.
<Makyo> Makes a big difference, even with "Record activity" set to off.
<teknico> Makyo, why do I have no Privacy icon in system settings?
<Makyo> teknico, 12.10?
<teknico> Makyo, yep, are you on raring?
<Makyo> teknico, Not yet.
<teknico> uhm
<Makyo> Another that helped, if you have ccsm, is to go to the Unity Plugin, Experimental tab, and set Dash Blur to No Blur.
<teknico> Makyo, found that one, thanks, but now the dash is a bit too transparent
<teknico> Static Blur seems a nice compromise, whatever that means :-)
<hatch> oh man my internet is so slow right now
<teknico> rogpeppe, it's finally there: https://codereview.appspot.com/7873046
<rogpeppe> teknico: thanks! looking...
<hatch> rick_h_ FYI I have been using tmux for my ubuntu ssh and it's workign really well although it triggers a lot of 'changed' events causing my terminal tab to flash when nothing has changed
<hatch> I don't know if you have run into the same thing before?
<rick_h_droid> hatch cool. yea any activity in the Window will activate things.
<hatch> but there is no activity - does it maybe poll which triggers activity?
<rick_h_droid> hmm I use it for irc and it has a clock that updates and join/part messages
<rick_h_droid> so it's always updating 
<hatch> ahh ok no problem I was just curious really
<hatch> rick_h_droid I pushed the new merge - it all worked properly here
<hatch> try a fresh checkout
<hatch> I'm just about to run the tests in IE
<rick_h_droid> ok will do
<hatch> but first I better let these updates finish - updating a vm and tryign to use it at the same time is....well damn near impossible lol
<hatch> gary_poster: it's looking like travis can do bzr
<gary_poster> hatch, really!  interesting
<gary_poster> I thought it was github specific
<hatch> yeah - i'm trying to load more details but my internet is VERY slow
<hatch> will link in a sec
<hatch> :)
<gary_poster> hatch, I looked before and stopped reading after this sentence, actually: "As a free community service, Travis CI limits build duration to about 20 minutes"
<gary_poster> unfortunately
<gary_poster> that's not us
<rogpeppe> teknico: reviewed
<hatch> gary_poster: they have a 'pro' version in beta and it's also OSS so we could run it ourselves (if we wanted)
<gary_poster> no reason to run YA CI system AFAIK.  :-/
<gary_poster> the hosting part is the good part
<gary_poster> hatch, going to go get some lunch. biab
<teknico> rogpeppe, thanks but... oh no! latestUnit! I don't want to lose it!
<hatch> sure - I agree
<hatch> just letting you know :)
<gary_poster> cool :-)
<teknico> rogpeppe, :-) can it be useful somewhere else?
<rogpeppe> teknico: you'll just have to treasure it in your memory (and bzr history) :-)
<hatch> rick_h_droid the lock-zoom branch passes the tests in IE as well so as long as you can confirm you don't get those errors with this merge then I'll submit
<rogpeppe> teknico: nothing is lost :-)
<rick_h_> hatch: so I'm still seeing the error/issue when I go to all notifications, then click 'view details' on the first one
<rick_h_> hatch: and the same issue on the N10 with the view details, but working on the N7
<hatch> well what the...
<hatch> I can't even reproduce in IE
<hatch> haha
<hatch> this is on a fresh checkout?
<rick_h_> I get it in both stable chrome and the beta chrome on the N10
<rick_h_> hatch: yes, all merged with trunk, pulled your latest updates, make clean-all, make, make devel
<hatch> ahah!
<rick_h_> hmm, /me goes to try the test-server on the machine
<hatch> I was able to reproduce it
<hatch> :D
<rick_h_> which one?
<hatch> Uncaught TypeError: Cannot read property 'parentNode' of null
<rick_h_> ah cool
<hatch> damn I'll have to write a test for this now
<hatch> lol
<rick_h_> wow, crazy to see how tests run in 17.8s on desktop chrome, passing 50s on the N10
<hatch> rick_h_ that error is on trunk
<hatch> so I'm going to merge this then create a ticket for it
<hatch> are you ok with that?
<hatch> that's why I couldn't reproduce it :D
<rick_h_> hatch: sure thing. So my QA is that N7 looks ok, N10 has issues we don't know about yet
<hatch> ok, although not ideal, I don't have a N10 to test with
<rick_h_> though after 159s :( all tests do pass on the N10
<rick_h_> hatch: yea, I can try to help at some point but really under the gun. 
<hatch> yeah - when I was starting with the N7 - I could simulate the needed events but manually they woudln't work
<hatch> so the tests would pass but it woudln't work hah
<hatch> anyone know what ports I need for juju communication?
<hatch> just 22?
<hatch> so far I have 22, 80, 443
<gary_poster> hatch juju communication from the GUI? to what?
<hatch> I was just thinking what ports things like 'juju bootstrap' communicates through
<gary_poster> hatch, ah.  not sure.  would have guessed 22.  bcsaller, you happen to know?
<hatch> that's entirely possible - I'm just spinning up the instance now
<hatch> so I haven't gotten that far
<gary_poster> oh ok
<hatch> sorry I googled tarmac and realized I had no idea what was going on so took the EC2 setup side
<hatch> s/going/doing
<hatch> :)
<gary_poster> hatch, cool.  I may need to do ec2 also.  was about to in fact
<gary_poster> jenkins has been waiting for an m1.small for almost an hour now
<gary_poster> on canonistack
<hatch> oh that's what it was doing
<hatch> I was wondering
<gary_poster> yup
<gary_poster> for the bootstrap node
<gary_poster> fun
<hatch> oh geeze - then it will definitely fail because it won't be able to provision any more :)
<gary_poster> unless it waits forever for that.
<hatch> guichat to run over what I am to do with this micro instance?
<gary_poster> y
<teknico> rogpeppe, all tests pass, landed, fingers crossed :-)
<rogpeppe> teknico: cool, thanks!
<hatch> doing this CI I wish we were in an office so I could do this http://imgs.xkcd.com/comics/compiling.png
<hatch> :D
<hatch> gary_poster: Unexpected initial authentication state: [True, None]
<hatch> have you seen that one? IE test_staging_services error
<gary_poster> hatch that's a diagnostic I added for that test.  The good news is that I never actually got the diagnostic before because of a problem I apparently fixed in the previous revision :-)
<gary_poster> lemme remind myself...
<gary_poster> hatch, that should just be info--how did the test itself fail?
<hatch> I'm not sure I'll have to review the video
<hatch> oh wait
<hatch> it didn't fail
<gary_poster> hatch pastebin the output for me pls?
<gary_poster> yay!
<gary_poster> good that makes sense
<hatch> man do these tests fly now :)
<gary_poster> heh, good
<hatch> chrome and firefox both say " unable to complete test run." ERROR
<hatch> they are alsmost all done then I"ll link you the output
<gary_poster> hatch so let's go to guichat
<hatch> 3x-5x speed increase for Y.Base coming in the next YUI
<hatch> OOoOOOooooo
<rick_h_> yay
<hatch> that's HUGE considering that base is in everything
<hatch> haha
<benji> gary_poster: my telepathy tells me that now is a good time for you to talk about my next task
<gary_poster> benji :-) ok to the guichat
<hatch> ok it takes ~16:30 to start the tests
<hatch> gary_poster: firefox exhibits the same 'caching issue' that IE does
<hatch> that's why the GUI tests are failing
<gary_poster> hatch, ugh
<gary_poster> hatch, btw on IE I have a new opinion about the Javascript Error thing and whether we should retry.  It's not cut and dry IMO.  We can have that conversation later
<hatch> chrome finishes the unit tests then hangs
<gary_poster> hatch, should timeout eventually
<gary_poster> then we can see why the numbers are wrong
<rick_h_> hatch: got a sec to sanity check this build issue? http://paste.mitechie.com/show/914/
<rick_h_> jcsackett: maybe you know, did you deal with something like this ^^
<rick_h_> it looks like it's trying to load the module from YUI vs the gui src
<jcsackett> rick_h_: no, never saw that. has tabview been modified since i checked it in?
<rick_h_> jcsackett: no, I did move it because I wondered if it was a path issue. It was originally just widgets/tabview
<jcsackett> rick_h_: but you got this error with it as widgets/tabview too?
<rick_h_> jcsackett: yea, hmmm, you konw it was working. I have a running make devel that was working ok. I wonder if something went batty. make clean_all time
<rick_h_> I end up with a app.js.map laying around. /me goes through bin/merge-files
<rick_h_> if I don't require the tabview in my view code it works
<rick_h_> so I had a working setup, added the tabview, but didn't restart the make devel and it kept working. Once I stopped to lint/push it blows up
<jcsackett> bizarre.
<rick_h_> yea, grrr at this build stuff sometimes
 * jcsackett nods
<hatch> ok back
<hatch> rick_h_ hae you solved the issue?
<rick_h_> hatch: no, I'm tracing through how this merge-files gets it's list of files to merge/build but it's tedious 
<rick_h_> hatch: some how the script thinks yui should have a node_modules/yui/browser-tabview/browser-tabview module
<rick_h_> hatch: but we've got browser-tabview listed in our modules-debug and it's in the list and picked up as far as I can tell so far
<hatch> that will happen if the module name is not specified
<rick_h_> 'module name is not specified' where?
<hatch> well if the module name isn't registered it'll try to load it from where yui.js was loaded
<rick_h_> hatch: ok, getting closer. The if (details && details.requires) {
<rick_h_> check is failing for the tabview module
<rick_h_> looking into wtf dteails/details.requires is
<rick_h_> oh hell...tabview module was a YUI().add instead of YUI.add
<rick_h_> so it broke out of all the hacks in the build system to replace YUI.add and such I guess
<rick_h_> thanks hatch jcsackett, all good now
<jcsackett> rick_h_: well damn, sorry for that crap.
<rick_h_> jcsackett: heh, all good. Simple error. Just hard to debug. Looking at the end of the files in the requires part vs the top of the file. 
<hatch> rick_h_: haha oh I hate that - I've done that so many times
<rick_h_> jcsackett: helped me also realize that the namespaces on the browser-tabview were reversed juju.browser.widgets vs juju.widgets.browser like elsewhere
<rick_h_> hatch: hah! well lesson learned. Next time I see it it'll jump out at me more
<rick_h_> and I figured out how to pdb up a node script as well 
<hatch> pdb?
<hatch> oooo that namespace thing should probably be fixed....no?
<jcsackett> hatch: pdb is the python debugger; i'm guessing rick_h_ means he has figured out use of the node equivalent?
<rick_h_> hatch: yea, I've got it correcting here
<rick_h_> jcsackett: right, basically node debug xxxx allows you to do debugger; in a script
<rick_h_> but it's fugly ... /me misses pdb
<jcsackett> rick_h_: our tests are run via node when run in the command line, right? so we could potentially command line debug failures?
<hatch> ohh ok  :) I was like "pdb? new node debugger??" h
<hatch> aha
<rick_h_> curses!!!!! now extend failed, verify dependencies in tests. /me pulls plug
<jcsackett> rick_h_: did you add any extends?
<rick_h_> jcsackett: no, didn't think so. looking over diff 
<rick_h_> hmm, Y.TabView is undefined
<rick_h_> but it's manually defined in merge-files
<jcsackett> that's...bizarre.
<jcsackett> rick_h_: you're hitting all the fun issues with this one, aren't you?
<rick_h_> jcsackett: heh, well the dippy things works from the app. It's just getting build/test happy so I can submit some work
 * jcsackett nods.
<jcsackett> that *is* where the fun goes.
<benji> hmm, that's odd: the units in an error state are grey (like running instances); I would have expected them to be red
<jcsackett> rick_h_: do we think the charm-small widget will change size depending on where its used, or can we assume constant width? i'm thinking it should have a "width" attribute for purposes of placement in the category container. (and the slider, probs).
<rick_h_> jcsackett: so for now I'm thinking it'll be constant and determined via css. Why a ATTR?
<jcsackett> rick_h_: the charm container wants to be some multiple of the charm small width. and that will vary based on the "max" it shows before being expanded.
<jcsackett> so it would be good if it could get the width from small and set its own width correspondingly, right?
<rick_h_> jcsackett: so I'm thinking that what we'll do is to have the number to show be an ATTR on the container and let the charm-smalls just be block levels and will float/resize dynamically based on space via css
<rick_h_> jcsackett: might attach it with the grids framework later on
<jcsackett> rick_h_: ah, yeah, that works.
<jcsackett> and means less work for me, so i'm down with that.
<rick_h_> so I'd just default to say '5' in the container and we'll work the rest out from that
<rick_h_> oh man this fixes it but damn is it evil
<jcsackett> ?
<rick_h_> https://code.launchpad.net/~rharding/juju-gui/fullscreen_charmview/+merge/155595 L466
<rick_h_> jcsackett: ^
<jcsackett> rick_h_: that's bizarre.
<jcsackett> but if it works, it works.
<jcsackett> (apparently bizarre is my new favorite word today)
<rick_h_> hatch: I'm going to try to get this ready for review here in a sec. It's not complete. I'm coming up on a big diff at this point and will spend tomorrow refactoring, but it 'works' so want to close up a loop. 
<hatch> sure
<hatch> fyi - did you look into node-inspector?
<rick_h_> hatch: no, didn't look at node-inspector
<hatch> ok it's just another option for debugging node
<rick_h_> ah bah...needed a -edit on there. One more ride...
<rick_h_> cool, will keep that in mind
<jcsackett> rick_h_: isn't this way late a day for you?
<rick_h_> jcsackett: yea, well gotta get stuff done. Trying to go late from now until launch. Have a call in an hour anyway so meh
<rick_h_> go lbox go... 
<hatch> rick_h_ ok I'm ready
<hatch> just needed to fire off a potential working CI
<hatch> very potential
<hatch> lol
<gary_poster> hatch, another crazy idea: see what versions of chrome saucelabs offers on different platforms and try switching our chrome to other platforms/versions to see what happens
<hatch> sure thing
<hatch> I'm hoping it's a bug in the after
<hatch> I had to push to my own branch - it woudln't let me push to yours
<gary_poster> hatch, yeah, makes sense
<gary_poster> we can only share in ~juju-gui branches
<gary_poster> (or other teams we both are members of)
<hatch> ohh ok
<hatch> gary_poster: very simple change this time http://bazaar.launchpad.net/~hatch/juju-gui/ci/revision/467
<hatch> and it still works locally
<gary_poster> cool hatch
<hatch> so as long as that wait_for_script() works as advertised it should work
<gary_poster> :-)
<hatch> hah
<hatch> famous last words - I might as well quit now
<hatch> lol
<hatch> rick_h_ are we going to get a codereview url?
<hatch> or is it just hung up in internet land
<rick_h_> hatch: sorry, battery died at the coffee shop...lbox take 3
<hatch> lol
<rick_h_> yea, fail submit for this one...fighting me every step of the way
<hatch> for some reason I am getting a ton of visits to my blog to invalid php urls
<rick_h_> hatch: jcsackett https://codereview.appspot.com/7581045 there we go
<hatch> awesome
<rick_h_> so it's incomplete but it 'works' so I'd like to get it in and on staging for UX to play with while I spend tomorrow refacoring/solid'ing it up
<hatch> review done
<hatch> benji: your propose won't let me actually view any diffs
<hatch> could you try proposing again?
<hatch> everything looks ok as far as the merge goes
<hatch> gary_poster: are you still around?
<gary_poster> hatch, no :-)
#juju-gui 2013-03-27
<hatch> 6/6 IE, 6/6 Firefox, 6/6 Chrome
 * hatch drops mic and walks off stage
<bcsaller> hatch: on ec2?
<hatch> yup
<bcsaller> that is very good, you should try re-enabling the deploy test on IE tomorrow and see if it works with the fixes
<hatch> yeah will do - it's 7 and I'm pretty frustrated with it now so I think I'll end the day on a win
<hatch> haha
<bcsaller> hatch: I said tomorrow :)
<hatch> yup I saw that :)
<bcsaller> in that case, good job and have a good night
<hatch> thanks, you too
<frankban_> hi rogpeppe: I want to add to a charm the ability to check whether or not it is deployed by pyjuju or juju-core. One possibility is just checking that /var/lib/juju/agents exists. What do you think? Are there better approaches?
<rogpeppe> frankban_: i think that's a reasonable approach
<frankban_> rogpeppe: cool. IIRC, I can safely assume that inside that directory there is only one machine-X dir, containing and agent.conf file which includes the API address, right?
<rogpeppe> frankban_: i think it would probably be better to use the unit agent directory
<rogpeppe> frankban_: i can't remember if it's possible for a charm to find its unit name though
<rogpeppe> frankban_: you could just choose an arbitrary agent.conf file from /var/lib/juju/agents/*.conf
<frankban_> rogpeppe: AFAICT, the agent.conf file in the unit directory does not include the API address
<rogpeppe> i mean /var/lib/juju/agents/*/agent.conf
<rogpeppe> frankban_: it *should* do...
<rogpeppe> frankban_: you're right, it doesn't
<rogpeppe> frankban_: ok, for the time being you could use the machine agent.conf, but be aware that it will fail when we have a local provider and run it in that context.
<frankban_> rogpeppe: re the unit name, if the hook is still executed from the charm root, i can obtain the unit name just getting the base name of ..
<rogpeppe> frankban_: that's true. in fact that's a better way than hardcoding /var/lib/juju/agents
<rogpeppe> frankban_: because you will be inside the agent dir already, i think
<frankban_> rogpeppe: I need to hardcode that dir if I want to check juju-core vs pyjuju. Another possibility is checking that ../agent.conf exists.
<rogpeppe> frankban_: +1 to the latter
<rogpeppe> frankban_: there's no particular reason that the juju directory must live in /var/lib/juju
<frankban_> rogpeppe: ... but the presence of an agent.conf is meaningful, and it did not exist in pyjuju, right?
<rogpeppe> frankban_: exactly
<frankban_> rogpeppe: cool. re the api address. so, is it a bug? is it supposed to be stored in the unit's agent.conf?
<rogpeppe> frankban_: i'll make a change to add the API info to the uniter agent.conf - it will need to be there eventually anyway
<rogpeppe> frankban_: currently the uniter doesn't communicate through the API
<frankban_> rogpeppe: ok, I'll check in the machine for now, and switch to the uniter once ready
<rogpeppe> frankban_: sounds good
<rogpeppe> frankban_: i wonder if it might be nice to have an officially supported callback that gives the API server address
<frankban_> rogpeppe: you mean, a hook command? it would be great
<rogpeppe> frankban_: yeah. we'd have to think about the implications though
<frankban_> rogpeppe: or an env var
<rogpeppe> frankban_: yeah, that's a nice possibility too
<frankban_> rogpeppe: cool, thanks
<gary_poster> teknico, thanks for Monday national holiday submission
<teknico> gary_poster, it's not an April Fool, I promise! :-)
<gary_poster> :-)
<gary_poster> hey benji your rietveld diff for landscape is geborken
<benji> gary_poster: yeah, I'm trying to streighten it out
<gary_poster> try reproposing, or merging trunk and reproposing?
<gary_poster> k cool
<gary_poster> hey benji, lock in bottom right should be replaced with triangle as well
<gary_poster> need screenshot or screenshare?
<benji> hmm, I thought I did that, checking
<benji> aparently not, thanks!
<gary_poster> welcome
<benji> gary_poster: fixed: https://codereview.appspot.com/8038045
<gary_poster> cool will look
<benji> hatch: if you're still interested in reviewing https://codereview.appspot.com/8038045 I have fixed the diffs
<benji> gary_poster: I did have to resize one of the graphics, but I think it turned out OK
<gary_poster> ok
<gary_poster> benji LGTM
<gary_poster> ty
<benji> cool
<frankban_> behold the juju-core charm! https://ec2-54-224-95-37.compute-1.amazonaws.com/
<gary_poster> frankban_, awesome! :-)
<gary_poster> quantal?
<frankban_> gary_poster: quantal bootstrap node, precise juju-gui
<gary_poster> ah! makes sense
<gary_poster> cool
<gary_poster> frankban, try switching charm to trunk and see if we get minimal  service visibility thanks to benji's newly landed megawatcher support and the newly released juju core?
<gary_poster> I mean, switch source to lp:juju-gui
<frankban_> gary_poster: already did 1 minute ago :-)
<frankban_> waiting
<benji> note that you will have to use firefox and you will have to visit the websocket url via HTTPS first to accept the certificate
<gary_poster> cool
<gary_poster> benji, not in charm
<benji> oh yeah, I forgot it is proxied there
<gary_poster> \o/ :-)
<gary_poster> \o/ for the charm good ness I mean
<frankban_> gary_poster: charm transitioned to juju-gui trunk. still I cannot see any service deployed (I deployed wordpress from cli). The panel also freezes when I try to deploy, e.g. mysql from the GUI.
<gary_poster> frankban, :-/ but that's why we have another week or two to iron things out
<gary_poster> frankban, could you file those two obvious bugs and make cards please?
<frankban> gary_poster: anyway, the prototype seems to work well :-). sure
<gary_poster> yes frankban!  yay for charm :-)
<frankban> gary_poster: could you please try to duplicate the second bug?
<gary_poster> frankban, duplicated--and I see a flash in the alerts from blue to gold back to blue.  that means that we temporarily lost the websocket connection and rejoined.  in the past that has meant that Juju Core didn't understand us, and disconnected rather than giving us an error message. We ideally would improve that as well.  If you knew where the Go logs were we could confirm
<gary_poster> rogpeppe, ^^^ good news is that we have a charm prototype that is beginning to work against juju core!  bad news is that practically we have some bugs to fix in the intercommunication before we even begin to see it working, but hopefully this will go quickly?
<rogpeppe> gary_poster: cool!
<rogpeppe> gary_poster: the bugs are in the js side?
<gary_poster> rogpeppe, the only thing on the Go side is, *I suspect*, that Juju core API is still disconnecting when it falls over, without giving us an error message.  
<gary_poster> rogpeppe, we will get confirmation
<frankban> gary_poster: trying to find the logs
<gary_poster> thanks frankban 
<gary_poster> frankban, document it after you figure it out ;-) .  and maybe ask roger if you think it would go faster
<gary_poster> but your call
<rogpeppe> gary_poster: "when it falls over"... when the API server falls over?
<gary_poster> rogpeppe, yes.  If you recall we had some behavior at the sprint in which we sent some kind of malformed request to the API server.  The API server disconnects and reconnects, rather than returning an error
<frankban> gary_poster, rogpeppe: this is interesting: http://pastebin.ubuntu.com/5652266/
<gary_poster> precisely
<rogpeppe> frankban: yeah, that is interesting
 * rogpeppe wishes json ave a little more context for its error messages.
<rogpeppe> s/ave/gave/
<rogpeppe> frankban: i see the problem
<gary_poster> rogpeppe, so that's what I'd like fixed on the Go side: don't disconnect, and do give us a better idea of what to fix.  Meanwhile, we can probably work around
<rogpeppe> frankban: well, the superficial problem anyway
<rogpeppe> frankban: you're sending null for ConfigYAML, not ""
<rogpeppe> frankban: but the API server shouldn't chuck out clients that produce badly formed requests, i think
<gary_poster> rogpeppe, extra points if Go side can convert JSON null to type equivalent :-)
<rogpeppe> frankban: i'll look into fixing that
<gary_poster> thank you rogpeppe 
<frankban> rogpeppe: that's a problem for sure. I think gary_poster was suggesting that we should no be disconnected after an invalid request
<rogpeppe> gary_poster: in later versions of Go a null becomes an empty string
<rogpeppe> gary_poster: unfortunately we're using an old version
<gary_poster> rogpeppe, ok cool. :-/ but good that it will be better.  will that be changed for 13.04?
<gary_poster> well...
<rogpeppe> gary_poster: probably not. go 1.1 is due out soon, but i very much doubt it'll be there for 13.04
<gary_poster> rogpeppe, I'm confused/interested, but don't spend much time on my request: I thought we could just change how we built Juju releases, using the newer version, and then it wouldn't matter what the host had?
<gary_poster> if any version of go at all, in fact
<rogpeppe> gary_poster: perhaps, but we tend to standardise on using the version of the language which is distributed as standard
<frankban> gary_poster, rogpeppe : from that log, I suspect there is another error: after logging in again and obtained the watcher id, the "Next" request fails
<rogpeppe> gary_poster: which is why we're using 1.0.2 not 1.0.3
<rogpeppe> frankban: you'll need to call WatchAll again
<rogpeppe> frankban: or perhaps you *are* doing that?
<frankban> rogpeppe: ISTM that we do that, RequestId 8
<gary_poster> rogpeppe, if that has negative effects on the Juju experience, maybe that's worth reconsidering, but conversation for later
<rogpeppe> gary_poster: yeah. quite a lot of nice changes coming: http://tip.golang.org/doc/go1.1
<rogpeppe> frankban: can you post a log of events? (how does the Next request fail?)
<gary_poster> http://pastebin.ubuntu.com/5652266/
<frankban> yes
<rogpeppe> gary_poster: thanks. interrresting.
<rogpeppe> gary_poster: i'll have an investigate after i've done what i'm currently doing
<gary_poster> frankban, I wonder if GoEnvironment._send_rpc ought to strip out all nulls before sending?
<gary_poster> rogpeppe, thanks
<rogpeppe> gary_poster: that sounds like a reasonable approach
<gary_poster> cool rogpeppe thanks
<rogpeppe> gary_poster: assuming you can't just stem the nulls at source, of course
<gary_poster> rogpeppe, we can, but idiomatically sending nulls in JS is quite reasonable
<rogpeppe> gary_poster: right
<rogpeppe> gary_poster: i think that's why they changed the behaviour in later Go versions.
<gary_poster> yeah
<gary_poster> rogpeppe, if I were going to stir up trouble about th1 1.1-for-releases thing, would I do it on the juju-dev list?
<rogpeppe> gary_poster: well, i'd wait until 1.1 is actually released :-)
<gary_poster> heh, ok, I'll hold horses :-)
<frankban> rogpeppe: I confirm the "Next" call always fails with "unknown watcher id" 
<rogpeppe> frankban: yeah, seems odd. there's something fishy going on :-)
 * benji looks forlornly at https://codereview.appspot.com/8038045, hoping for a second review.
 * gary_poster has done his duty
<rick_h_> benji: I'll take a peek if that helps
<benji> rick_h_: it would, thanks.  It's a simple branch.
<frankban> gary_poster, rogpeppe: it seems we have three bugs: 1) gui: null sent by _send_rpc 2) core: disconnections on invalid requests 3) core: Next not working . do you want me to file these?
<gary_poster> hatch, when you are around, good work on the login hack for the CI test.  I wish we had a better approach, but I'll take it. ;-) I encountered the stale cache issue this morning repeatedly in IE and investigated some more.  there is a driver.refresh() and I have tried incorporating it.  The next test run passed, but that's not necessarily correlated
<rogpeppe> frankban: +1
<gary_poster> frankban yes on 1, yes on 2.  For 3, it does work sometimes, yeah?
<gary_poster> benji, did you see Next working? ^^
<gary_poster> via the GUI
<rogpeppe> frankban: if you could file 2 and 3 with some code that reliably reproduces the issues, that would be lovely.
<gary_poster> rogpeppe, how about JSON API calls?
<gary_poster> rather than code, per se
<rogpeppe> gary_poster: that would be fine actually, yeah
<benji> gary_poster: I got a service to show up in the gui, so I assume so, but I didn't check that in particular
<gary_poster> cool
<frankban> gary_poster: looking at the bootstrap node logs it seems it never works, and this could also explain why we don't see services in the env view.
<gary_poster> benji, yeah it must have worked then
<gary_poster> benji, what did you do to prepare for that test?
<hatch> goooood morning
<gary_poster> hey hatch
<benji> gary_poster: I deployed go-juju and did the certificate dance
<benji> and tweaked the GUI config to point to the right place
<gary_poster> hatch, was also going to say that selenium exposes an application_cache object, but very under documented and we don't see a problem with it right now.  something to file away though
<gary_poster> http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.application_cache
<gary_poster> benji, did you have any services deployed?
<benji> yep, I deployed mysql
<gary_poster> via command line
<gary_poster> on same series
<benji> yep and I guess so... :)
<gary_poster> benji did you deploy go juju from source (-update-whatever or something like that) or from release?
<benji> from source
<gary_poster> hm
<benji> juju bootstrap -e ec2 --upload-tools
<gary_poster> right
<hatch> gary_poster: lol even the source doesn't show anything
<gary_poster> yeah I know tried that too :-_)
<gary_poster> :-)
<gary_poster> I think it is exposed Java
<hatch> print('hi') # prints hi
<hatch> lol
<benji> my trunk checkout is probably several days old, so it might have broken recently
<hatch> gary_poster: if you log into the sauce labs account and watch the test as it happens - you can click on the video and take control of the browser
<bac> gary_poster: can i ask you about service names, real vs ghost?  when a service is added to the services modellist it still has it's ghost name [i.e. "(haproxy-1)"] and that's all i've got to index into the endpoints map.  thoughts on how to get the deployed name?
<hatch> not that that helped solve the issue - BUT it might help with the caching one
<rick_h_> hatch: morning, can you look over https://codereview.appspot.com/7969043/ and help unblock that so he can start landing follow ups to get the ball rolling please?
<gary_poster> benji thank you.  frankban, you're definitely using the most recent Juju release from today-ish, right?  mm...frankban, benji, here's what I suggest.  frankban, please file #1 and #2. I think you have enough details to be clear and reproducible.  For #3, benji would you be willing to take over exploring/filing that bug?  frankban and I can give you any background necessary, and then you can figure out API repro inst
<gary_poster> ructions
<hatch> rick_h_ yup
<gary_poster> frankban, unless you are already digging into #3 and are interested :-)
<gary_poster> I don't mean to rip it away from you but want to let you get back to the charm
<rick_h_> hatch: thanks, appreciate it. He's got a second branch in the chain I'll push up shortly but he had issues using lbox with the 'req' option doh
<gary_poster> hatch, cool!  good to know, thanks
<benji> gary_poster: sure.  I'll even read the scroll back to figure out what y'all are talking about. ;)
<gary_poster> benji :-) thanks
<gary_poster> bac, um. thinking
<gary_poster> bac, can you just ignore the ghosts?
<gary_poster> and then pay attention when they become real?
<gary_poster> because they will change their charm urls when they become real
<benji> out of context quote for the day: "bac, can you just ignore the ghosts?"
<bac> gary_poster: i don't think so because the actual deployment doesn't generate the modellist 'add' event i'm looking for
<gary_poster> so that listener that you already need for charm changes will work
<gary_poster> benji :-)
<gary_poster> bac, you see what I mean?
<gary_poster> oh
<gary_poster> the charm won't change
<gary_poster> hm
<bac> gary_poster: hmm, listen for services 'add' to force the charm to load and then listen for another event to actually process it?
<gary_poster> bac, it would be more like this in theory (not sure it would work):
<gary_poster> services add: force charm to load.  
<gary_poster> no try again
<frankban> gary_poster: sounds good. I have a code snipped that reproduces the "Next" bug: http://pastebin.ubuntu.com/5652357/
<gary_poster> bac, guichat in 5?
<frankban> rogpeppe: ^^^
<bac> ok
<hatch> rick_h_ why are we converting to yui responsive but leaving the bootstrap responsive css in there?
<rick_h_> hatch: because there's more bits using it that's he's diong in a series of branches vs an all in one :/
<rick_h_> hatch: per my comments in there, not the way I'd prefer to see it, but that's how he'd like to go about it. part by part
<hatch> but we have responsive and not responsive bootstrap loaded
<hatch> we need both?
<gary_poster> rock, thanks frankban.  benji, that pastebin would be for your bug.  You would see if it works when you try it for your deployment method.  If it doesn't work, yay, file a bug! if it does work, uh-oh, figure out when it fails! 
<hatch> ok well I guess just to get this ball rolling
<rick_h_> hatch: the idea was to remove bootstrap with the new redesign. Go YUI, and use the YUI bits in the new browser code
<gary_poster> and then file a bug :-)
<frankban> gary_poster, rogpeppe: you should be able to reproduce bug 3 by saving that script , setting up dependencies, and the running it passing the bootstrap node address, e.g.: right now you can use ec2-54-224-95-188.compute-1.amazonaws.com
<bcsaller> bac: It seems like you can use http://yuilibrary.com/yui/docs/api/classes/AsyncQueue.html and add callbacks to load the charm and then update the endpoint map. Then run() the queue
<_mup_> Bug #3: Custom information for each translation team <feature> <lp-translations> <Launchpad itself:Fix Released> <MTestZ:Invalid> <Ubuntu:Invalid> <mono (Ubuntu):Invalid> < https://launchpad.net/bugs/3 >
 * benji looks
<rick_h_> hatch: so yea, it looks strange from this MP, hopefully it'll get cleaner and we'll be sync'd with YUI releases css and js
<hatch> alright done
<rick_h_> hatch: https://codereview.appspot.com/8043043 is a follow up for instance that he didn't use a req= with so it's looking like both branches lol
<bac> bcsaller: let me look at that
<benji> Microsoft is now sending me spam about developing Windows phone apps to my @canonical.com email address.
<hatch> rick_h_ so do I need to QA https://codereview.appspot.com/8043043 ? or is it still a WIP?
<hatch> benji: well what are you waiting for? get coding!
 * benji begins porting xterm to Windows phone.
<bac> gary_poster: i'm in guichat
<gary_poster> I'm not :-)
<gary_poster> but will be there soon
<goodspud_> Could you please send me the link to the gui hangout 
<goodspud_> Currently stuck in a pub 
<Makyo> http://tinyurl.com/guichat
<bcsaller> *stuck*
<gary_poster> jujugui call in 2, bring party hats for goodspud 
<bac_> worse fates
<rick_h_> hatch: I was going to resubmit it since it's a mix of the two branches. I'll ping you one I get it submitted.
<teknico> grr, telecom broke both lines *again* :-P
<teknico> rogpeppe, is it possible to debug while running juju-core tests? something like import pdb; pdb.set_trace() in python
<goodspud> Hi all. Apologies about the pub meeting. I'm blaming Greg. 
<rogpeppe> teknico_mobile: theoretically you can use gdb, although i haven't tried it when running tests.
<rogpeppe> teknico_mobile: i've always found it easier to insert printfs :-)
<teknico_mobile> rogpeppe, I need to get the info about a newly created relation from the API client
<teknico_mobile> rogpeppe, when you get a chance can you please have a look at the diff and check if I'm doing it right? lp:~teknico/juju-core/support-add-relation-in-go-env-2
<rick_h_> hatch: https://codereview.appspot.com/8055043 is the updated/resubmitted branch if you get time.
<teknico_mobile> I'll need to get relation endpoints, interface and scope, even if I'm not totally sure what they are :-)
<goodspud> bac_, bcsaller, benji, fankban, gary_poster, hatch, Makyo, rick_h_, teknico_mobile, hazmat,    I have really enjoyed working with all of you over the past months.
<Makyo> goodspud, cheers, it's been great
<bac_> me too goodspud
<gary_poster> Best wishes and thanks goodspud 
<rick_h_3> goodspud party on! 
<bcsaller> goodspud: hopefully we'll see you again 
<hatch> goodspud: likewise! Be sure to poke your head in here from time to time :)
<benji> goodspud: I hate to see you go!  Have fun at your next stop.
<teknico_mobile_> goodspud, it's been a pleasure, sad to see you go. Please come back soon! :-)
<rogpeppe> teknico_mobile: what was the rationale for making juju add-relation print the resulting relation to stdout?
<rogpeppe> teknico_mobile_: or did it do that before?
<teknico_mobile_> rogpeppe, a likely mistaken attempt to get those values out, modeled on get.go :-)
<teknico_mobile_> rogpeppe, no, it did not
<teknico_mobile_> rogpeppe, stand by, switching net connections...
 * rogpeppe stands well out of the way
<teknico> that's better, I hope it lasts :-P
<teknico> rogpeppe, is the rest of the diff vaguely reasonable?
<rogpeppe> teknico: i'm wondering why you need to return interface and scope separately from endpoints
<rogpeppe> teknico: i think both of those are derivable from the endpoints
<teknico> rogpeppe, are they? we use to get those from pyjuju, and use them when adding a relation in the gui
<teknico> I mean, we get those explicitly from pyjuju
<rogpeppe> teknico: i guess it depends what you mean by an "endpoint"
<rogpeppe> teknico: in the go state, it's a struct containing service name, interface, relation name, role and scope
<rogpeppe> teknico: but it looks like you're expecting to return a simple string that specifies an endpoint.
<rogpeppe> teknico: and in fact, i think that would be good, as we use a similar string elsewhere
<rogpeppe> teknico: so the endpoint identifier would be service:relationname
<teknico_> rogpeppe, this gui test shows what I expect: http://pastebin.ubuntu.com/5652518/
<teknico_> oh, and I need the relation id too
<rogpeppe> teknico: hmm, the "{'mysql': {'name': 'database'}}" thing seems a bit odd
<rogpeppe> teknico_: can there be more than one thing in that outer map?
<teknico__> rogpeppe, yeah, I guess it's a pyjuju thing, it's actually more like {'mysql': {'name': 'database', 'role': 'server'}}
<teknico__> but I can massage that in the gui based on what I get from juju
<rogpeppe> teknico_: i'd be tempted just to send back the endpoints as returned by Relation.Endpoint(svcName).
<rogpeppe> teknico: unless there's a compelling reason to do otherwise.
<rogpeppe> teknico: less work (on the Go side at any rate!) to do
<teknico> rogpeppe, what shape would they have? and how do I get relation id, interface and scope from them?
<rogpeppe> teknico: http://paste.ubuntu.com/5652527/
<hatch> gary_poster: I wonder if the if/try/except in charm_panel_loaded is required anylonger now that we are destroying it
<teknico_mobile> (sorry, landlines are still unstable, I'm back to mobile)
<gary_poster> hatch try it :-)
<teknico_mobile> rogpeppe, that's good, so I return two of those Endpoints and deal with the data on the GUI side
<rogpeppe> teknico_mobile: yes, but there's a catch
<teknico_mobile> rogpeppe, state.AddRelation returns a Relation, so I need to get the Endpoints from it
<rogpeppe> teknico_mobile: that's not the catch :-)
<hatch> gary_poster: can do
<teknico_mobile> it was too easy, I guess :-)
<hatch> `from retry import retry` is this a typo or some python mumbo jumbo? :)
<hatch> ^ gary_poster
<gary_poster> hatch, from [MODULE] retry import [FUNCTION] retry
<hatch> ahh :)
<rogpeppe> teknico_mobile: the catch is that you can't use state.Endpoint from api
<benji> gary_poster: here is a tweaked vertion of the Next bug repro script that works: http://paste.ubuntu.com/5652551/
<rogpeppe> teknico_mobile: so... me and fwereade have come up with a cunning plan
<benji> I have no idea how the GUI is working, because it appears to do it the way the non-working repro script does, and not this way.
<hatch> is Friday a holiday for everyone?
<teknico_mobile> rogpeppe, yeah, (not really) following ;-) on #juju-dev
<teknico_mobile> hatch, nope
<hatch> hmm the calendar is confusing me
<hatch> heh
<hatch> gary_poster: have you seen success with the self.driver.refresh() ?
<frankban> rogpeppe: filed bug 1160971
<_mup_> Bug #1160971: WebSocket disconnects when an invalid request is sent <juju-core:New> <juju-gui:Triaged> < https://launchpad.net/bugs/1160971 >
<rogpeppe> frankban: thanks
<hatch> in python the exe() command does it concat items on each line?
<frankban> hatch: exe? 
<hatch> oh
<hatch> self.driver.execute_script heh
<hatch> ok...in python when you have strings across multiple lines
<hatch> will it concat them without spaces?
<frankban> hatch: yes, even if they are in the same line
<hatch> ok thanks - I didn't want to make this change and then have it break 20mins into running hah
<teknico_mobile> rogpeppe, what happens now? how can I help you to help me?
<frankban> hatch: for multiple lines the strings must be inside round brackets
<rogpeppe> teknico_mobile: i'm just doing the branch that will move this forward
<rogpeppe> teknico_mobile: i've put Name into charm.Relation (tests now pass)
<gary_poster> hatch I have seen success with refresh, but as I said this morning there's no proof of correlation that it helped, only that it didn't hurt
<hatch> pfft -according to modern media "correlation === causation"
<hatch> ;)
<gary_poster> :-)
<teknico_mobile> rogpeppe, however statecmd.AddRelation calls state.AddRelation, which in turn returns state.Relation, not charm.Relation
<teknico_mobile> rogpeppe, or are you changing that too?
<gary_poster> benji, so your fixed script (the Id change) represents how the GUI needs to change
<rogpeppe> teknico_mobile: that's fine. state.Relation.Endpoint will probably return charm.Relation
<gary_poster> benji, see http://pastebin.ubuntu.com/5652266/
<gary_poster> line 13
<gary_poster> that's a log from the GUI talking with Go
<benji> gary_poster: I believe so.  I'm working on a branch to make the GUI work properly.
<gary_poster> benji, perfect thank you
<benji> I need to make a card.
<gary_poster> and a bug if you feel really excited but not required
<benji> That would be the right thing to do, so I guess I will. :)
<gary_poster> ok bac, sorry, can talk now.  when is good for you?  I have another scheduled call in 3 hours
<hatch> gary_poster: bcsaller using EC2 during bootstrap have you ever seen an error saying that the DNS lookup failed for s3.amazonaws.com ?
<gary_poster> no
<gary_poster> unless my network was hosed :-)
<hatch> hmm ok it happened a couple times last night and this morning
<hatch> so it might just be my network
<benji> I'm going insane or something.  I can not for the life of me get Firefox to send any console.log() messages to the JS console.
<gary_poster> benji in what context
<gary_poster> tests?
<benji> just the app running
<benji> this is the only error I see:
<benji> Error: not well-formed
<benji> Source File: http://jujucharms.com/search/json?search_text=series%3Aprecise%20owner%3Acharmers
<benji> Line: 1, Column: 1
<benji> Source Code:
<benji> {
<gary_poster> benji with make devel?  Anyway, in other contexts, this is a symptom of our console manager squelching, which we want in production
<gary_poster> to try and see if that is the case...
<benji> yep, make devel
<gary_poster> and fix it...
<gary_poster> 1 sec getting details
<benji> hmm, that is a possibility, looking
<gary_poster> benji, just type "console" in console
<gary_poster> if it is JS object with noop methods then you are being squelched
<benji> if only I could... my Firefox locks up if I start the dev tools
<gary_poster> you can then type consoleManager.native()
<gary_poster> oh you may have deeper problems :-P
<benji> I haven't tried today.  Maybe it has turned over a new leaf.
<benji> heh, that is a certainty
<benji> yep, Firefox is broken.  It is totally locked up and at 106.8% CPU (good job on the multi-processing, guys)
<gary_poster> heh
<benji> I have started it in "safe mode" (which disables all extenstions) and have the same results.
<benji> I guess I need to go down that rabbit hole before I can make progress on this bug.
<hatch> gary_poster: looks like the IE test deploy passes :)
<gary_poster> hatch, awesome!!
<hatch> so all 6 tests pass on ec2 :)
<gary_poster> hatch I have one other trivial change on my branch, to make juju failures give us more information.
<gary_poster> Maybe merge, and I'm also going to merge yours
<gary_poster> and test on canonistack
<gary_poster> where it should work fine
<hatch> sounds like a plan
<gary_poster> assuming canonistack itself works
<hatch> lol
<hatch> with the back end going to go - I wonder if we shouldn't convert our selenium tests to use node.js to remove the dependency on python
<gary_poster> hatch, propose it on Friday.  I don't think the back end switch is really relevant--Python is Canonical's preferred scripting language either way--but maybe you'll get enough buy-in
<gary_poster> I'll recuse myself :-)
<hatch> oh alright - I'm not really 'for' it just an idea
<hatch> well that's a lie
<gary_poster> lol
<hatch> I am for it because I know node haha
<hatch> but it's not that learning python is a bad thing :)
<gary_poster> :-)
<gary_poster> bac_, pinged you before, but repinging you in case you did not see
<gary_poster> I may have pinged bac
<bac_> gary_poster: ack
<gary_poster> bac, can talk any time
<gary_poster> till 3 
<bac> gary_poster: ok.  let me re-up my beverage
<gary_poster> k
<bac> upped
<hatch> gary_poster: I was just starting on this documentation and I'm thinking we should pair on it
<hatch> if you have time later
<gary_poster> hatch, can do
<hatch> we'll probably produce better docs that way
<rogpeppe> teknico: i've done a CL to make it feasible to return charm.Relation instead of state.Endpoint: https://codereview.appspot.com/8055044/
<teknico> rogpeppe, thanks, looking
<teknico> rogpeppe, wow, a bit on the big side :-)
<rogpeppe> teknico: it's almost all mechanical changes
<rogpeppe> teknico: it was a pain to do though
<teknico> rogpeppe, hopefully it's going to be useful for more than my immediate problem
<rogpeppe> teknico: yeah, it feels better actually
<rogpeppe> teknico: and a lot of the changes are to use field names rather than unnamed fields in struct literals, which is a good change anyway
<rogpeppe> teknico: the alternative was to define a parallel-universe Endpoint in params, and i really don't think that's worth doing.
<teknico> rogpeppe, so, how about an example of how I use this? you mentioned calling state.Relation.Endpoint...
<rogpeppe> teknico: so, you've just called AddRelation between two services, right?
<rogpeppe> teknico: that gives you a Relation
<rogpeppe> teknico: you can call r.Endpoint(svc1) and r.Endpoint(svc2)
<teknico> rogpeppe, yes, in state/statecmd/addrelation.go
<rogpeppe> teknico: which will give you the Relation values you want to return.
<rogpeppe> teknico: i suggest returning Relations []charm.Relation
<rogpeppe> teknico: where the first item is the relation for the first service, and the second is the relation for the second service
<rogpeppe> teknico: oh yes, state.Endpoint now embeds charm.Relation
<teknico> rogpeppe, however in that context I don't have the services, only args.Endpoints
<rogpeppe> teknico: you've got the service names, right?
<rogpeppe> teknico: and the Relation?
<rogpeppe> teknico: state.Relation, that is
<teknico> rogpeppe, yes, I have state.Relation returned by state.AddRelation
<teknico> rogpeppe, how do I get the service names from the endpoint names?
<rogpeppe> teknico: you've already got the service names, no?
<teknico> (that's what is in args.Endpoints, right?)
<rogpeppe> teknico: i guess so, one mo
<teknico> rogpeppe, http://bazaar.launchpad.net/~teknico/juju-core/support-add-relation-in-go-env-2/view/head:/state/statecmd/addrelation.go
<rogpeppe> teknico: ah yes.
<rogpeppe> teknico: you can get the service names from the endpoints returned by InferEndpoints, i think
<teknico> rogpeppe, yes, I see it now
<rogpeppe> teknico: cool
<rogpeppe> teknico: it's possible you might want to return map[serviceName]charm.Relation actually
<teknico> rogpeppe, right
<teknico> rogpeppe, thanks for all this
<rogpeppe> teknico: no probs
<teknico> rogpeppe, one more thing though :-)
<teknico> is there any concept of a relation id? I can't see it anywhere
<hatch> gary_poster: so that last jenkins test failed - but it actually passed
<gary_poster> hatch wondered about that but on call will ping
<hatch> it looks like it failed because some of the resources 404'd
<hatch> oh alright
<gary_poster> hatch guichat?
<hatch> sure
<rogpeppe> gary_poster: this should fix the rpc connection-dropping issue: https://codereview.appspot.com/7518052
<rogpeppe> teknico: not really
<rogpeppe> teknico: a relation id is just the concatenation of the two relation names
<rogpeppe> teknico: sorry i didn't see your message earlier
<teknico> rogpeppe, no problem
<teknico> rogpeppe, I see. pyjuju returns stuff like relation-00000001
<gary_poster> awesome thanks rogpeppe 
<rogpeppe> teknico: yeah. we don't have relation ids like that
<rogpeppe> gary_poster: np!
<teknico> rogpeppe, I guess concatenating the relation names should still be unique and amenable to the same purpose
<rogpeppe> teknico: that's the idea, yeah
<rogpeppe> teknico: that's what you'll see in the RelationInfo too
<rogpeppe> teknico: (as returned by the AllWatcher)
<teknico> rogpeppe, ah, so the concept has already been explored, great
<teknico>  great, tomorrow we'll see how this goes :-)
<teknico> bye all, have a nice evening/afternoon/whatever!
<rogpeppe> teknico: see ya!
<rick_h_> hatch: did yuo get a sec to poke at qa on https://codereview.appspot.com/8055043/ ?
<hatch> negative, I can do that now
<rick_h_> hatch: appreciate it. If it's cool and I can land before huw starts for the day would be awesome and unblocking to him :)
<hatch> rick_h_ should I check out your branch or his?
<rick_h_> hatch: so I re-submitted his branch. So that one is safe to check
<rick_h_> it's just a merge of his but sumitted with the -req so the diff is clean
<hatch> ahh ok
<hatch> rick_h_ done - it looks like you need to use LGTM instead of lgtm as it's not showing up green for yours
<rick_h_droid> oh missed that all along 
<hatch> :) I saw it a couple times and just brushed it off as something else - but that's all I can think of that it might be :)
<rick_h_droid> I didn't put the green together with approval. 
<hatch> oh that's ok - it's a fairly new development - you may not have been in that call
 * hatch just opened up a new Wired ......mm the smell of a new magazine
<rick_h_> magazine? what is this thing you speak of?
<hatch> :) I prefer to read on dead trees
<hatch> it's a much more fulfilling experience
<benji> rick_h_: he's reloading his gun
<rick_h_> yea, just don't read magazines
<rick_h_> benji: ah, that explains it. Yea a fresh magazine is a wonderful thing. Hope it was larger than the one you had before
<hatch> lol
<benji> heh
<hatch> aren't they banning large magazines in the US now?
<hatch> I only catch bits of news so I could be totally missinformed
<gary_poster> bac or benji are you available for a quick skype (!) call to check something out with Antonio and me?
<bac> gary_poster: sure
<gary_poster> thanks bac
<bac> skype?
<bac> hold on, let me queue up Flock of Seagulls
<gary_poster> yes bac
<gary_poster> lol
<benji> gary_poster: I am taking a late lunch, but if you don't mind the occasional interruption to give Owen another bite, I'm up for it.
<gary_poster> benji, we're good thank you
<benji> cool
<sinzui> oh happy days. Looks like lxc-ls broke again...sso is trying to make it run as a py2 script
 * benji has lxc flashbacks from the last project.
<benji> rick_h_: is there a way to fetch all subscribers to an event?
<rick_h_> benji: hmmm, not something i know of but I guess there must be some way as chrome can list them
<benji> ok, thanks
<rick_h_> benji: I'd ask in #yui 
<benji> that sounds like a fine idea
<rick_h_> benji: is the code you're looking to test up? Normally you just test the two sides of a test and rely on the framework to make the connection as it's tested
<rick_h_> heh, or just do what ln_s says. That sounds darn handy. /me writes that one down
<benji> rick_h_: this is more about testing to see that the subscription is wired up right.  I am reacting to a self-inflicted bug in which I did it wrong and it bit me.
<rick_h_> benji: ah, cool
<hatch> benji: so you're testing that the .on() functioned properly?
<benji> hatch: nope, I'm testing that I called it properly
<hatch> ohh I gotcha
<benji> new branch up for review: https://codereview.appspot.com/8058043
<hatch> benji: looking now - so you're saying that there should only be a single listener on _rps_response ?
<benji> hatch: that assertion is more along the lines of a non-test assertion.  In other words, the test assumes that there is only one.  If others are added the test should be updated as is appropriate.
<benji> I will add a comment to that effect.
<hatch> alright - and maybe add why that's necessary
<hatch> adding extra events usually isn't a testable offence :)
<benji> :)
<gary_poster> bcsaller, I don't know how to dupe the problem you were fixing but code looks fine. :-P I guess that is a "LGTM"?  I'll mark it as such unless you want me to qa in a particular way
<gary_poster> this is the ghost service one
<gary_poster> bug 1112771
<_mup_> Bug #1112771: Newly deployed service box not drawn <ie10> <juju-gui:In Progress by bcsaller> < https://launchpad.net/bugs/1112771 >
<bcsaller> gary_poster: thanks for looking. I think with landscape annotations on you could see this by ghost deploying any new service before. What was being seen in IE was the result of it throwing an error during the draw process
<gary_poster> ah gotcha.  cool, thank you
<gary_poster> approved
<gary_poster> hatch any brilliant thoughts on test failures?  it passed again most recently. :-/
<hatch> gary_poster: I'm still waiting for their reply - I am wondering if it's always the last browser
<hatch> I think when it was in IE it was also the last browser
<gary_poster> hatch I don't think so.  it was the last we ran because we always stopped if theer were errors :-)
<gary_poster> hatch, the thing I noticed is that the same tests failed, between the two failing tests
<gary_poster> also for the reload thing: 
<gary_poster> I mean the cacheing thing:
<gary_poster> the big cache problem we have is the manifest cache/index.html
<gary_poster> there's no reason for us to have cache problems with the unit test
<gary_poster> and we don't see cache problems with index.html
<gary_poster> we could verify this by changing index.html
<gary_poster> and rerunning test
<hatch> what if we concatted our test files?
<hatch> I'm wondering if maybe there are too many
<hatch> maybe it's trying to load too many things before the tests start across the wire
<gary_poster> hatch, I was wondering about their vm memory size, but we rely on YUI loadr
<gary_poster> and I haven't seen any issues with that
<gary_poster> we don't proceed until the YUI loader is OK
<gary_poster> hatch did you get our branch up for review yet?  we ought to get that merged
<gary_poster> even with this annoyance
<hatch> I'm attempting too :)
<hatch> I am fighting with some nfs garbage
<gary_poster> ah ok
<hatch> ahah fixed
<hatch> not sure what was up with that
<benji> hmm, the latest YUI release 3.9.1 includes feature changes; tsk tsk
<hatch> gary_poster: did you merge in my change adding back ie deployment stuff into your branch?
<gary_poster> not sure hatch, will look in a sec
 * Makyo walkdogs.
<hatch> benji: yeah? I haven't looked yet, which ones
<gary_poster> hatch, related to unit bugs, try this "./test-server.sh prod true"
<gary_poster> I see bugs
<gary_poster> failures I mean
<benji> I'm just reading from the release announcement: "Ryan also added a feature to Y.Tree adding a src option to all methods that trigger events."
<hatch> gary_poster: and after you clear cache?
<hatch> oh yeah...and that's a bad thing? The API didn't change
<gary_poster> hatch, same
<gary_poster> oh, wait
 * bac -> daily dog appeasement march
<gary_poster> hatch, nm, forgot to run make build :-/
<hatch> :D
<hatch> gary_poster: so just to confirm you don't get errors in FF now?
<gary_poster> hatch locally no
<gary_poster> and most recent test run passed.  another running now...
<hatch> ok and the last two which failed - idential failures happened
<gary_poster> y
<hatch> ok I'm going to pull up the vids and see if I can find out why
<hatch> see if those rely on some common file
 * hatch working on a hunch
<gary_poster> hatch, was thinking: tests are against prod, compressed files
<gary_poster> the only files not compressed are tests themselves
<gary_poster> but the main app is running from compressed bits
<gary_poster> equivalent to "make build && ./test-server.sh prod true"
<gary_poster> if you want to see what I mean
<hatch> yep - but that passes locally
<hatch> so I'm wondering if there is a common file which the failing tests rely on
<gary_poster> hatch, IE failed that time
<gary_poster> on unit tests
<hatch> arg
<gary_poster> https://saucelabs.com/jobs/cfa9fd980c1946038da32d5dca518997
<hatch> notice how in the video it's shows the tests
<hatch> flashes, then starts running them?
<hatch> I wonder if i'ts running two at the same time
<gary_poster> hatch remember I put in a refresh
<hatch> oh right
<gary_poster> maybe making things worse.  I did have this crazy idea
<gary_poster> run tests twice :-/
<gary_poster> unit tests
<gary_poster> will try
<hatch> the errors look like they are a result of the app instance screwing up
<hatch> ok I'm tracing back one of the errors
<hatch> Unable to get property 'services' of undefined or null reference
<hatch> which is in updateData in topology/services.js
<gary_poster> on compressed code that will be interesting :-/
<hatch> and it's trying to get services of topo.get('db')
<hatch> so 'db' is undefined in topology/services.js
<gary_poster> race?
<hatch> that's my first thought
<hatch> just tracing it back
<hatch> yeah so it looks like Y.juju.models.Database is undefined
<gary_poster> hatch you mean the class itself
<hatch> yeah because it looks like db is set with a new instance of it
<hatch> but I'm not sure how it could be undefined and not throw an error at 'new'
<gary_poster> yeah that's what I was going to say
<hatch> new undefined or null would both throw typeerrors
<gary_poster> if it were possible then it could maybe be explained by poor dependencies
<gary_poster> but new undefined makes no sense
<gary_poster> hatch fwiw trying this crazyness: http://paste.ubuntu.com/5653490/
<gary_poster> try running the tests
<gary_poster> if they fail
<gary_poster> refresh and try again
<gary_poster> :-/
<gary_poster> shrug
<gary_poster> we fail fast
<gary_poster> so shouldn't add much time
<hatch> ahh
<hatch> of course for the next 10 runs everything will run properly lol
<gary_poster> no real reason to believe this will have diff behavior though
<gary_poster> heh
<gary_poster> hm idea: if it fails again, we can try running the /test/ url directly through saucelabs while charm is up
<gary_poster> using their immediate feature
<hatch> ok I'm getting somewhere
<hatch> juju charmworld0 api tests fail
<gary_poster> hatch what do you mean?
<hatch> but one of the failing tests isn't even in that describe
<gary_poster> oh
<gary_poster> that does sound suspicious
<hatch> I can show you - guichat?
<gary_poster> syre
<gary_poster> there now
<hatch> lately I have been piping my diffs to colordiff
<hatch> I attempted to put in a bzr alias to overwrite diff but that broke the reviews
<hatch> do you guys do anything similar under a separate alias?
<rick_h_> hatch: I just use a pipe to vim. 
<hatch> ahh I would have guessed as much :P
<rick_h_> hatch: I've got a zsh pip alias V that is `vim -` so I can bzr diff V
<rick_h_> and it opens up vim and syntax higlights it nicely
<rick_h_> and VV maps to gvim -
<rick_h_> so if I want gui-ness
<hatch> ah that's pretty cool
<hatch> I really have to decide on an OS at some point
<rick_h_> only one choice :)
<hatch> unfortunately I can't purchase music without windows or mac
<hatch> lol
<hatch> no itunes on linux :P
<rick_h_> heh, itunes if your problem there
<rick_h_> Google/AMZ ftw
<hatch> they won't sell to Canadians
<hatch> our money is no good to them
<hatch> :)
<rick_h_> orly?
<hatch> yep, we can't even get spotify, hulu, pandora etc
<rick_h_> well...it's what VMs are for. Even with AMZ I have to download on a windows VM and transfer the files over to linux/google to upload
<hatch> oh really? I thought it was all web based
<rick_h_> sounds like you've got a bigger problem. We have houses here you know
<hatch> lol
<hatch> yeah and they are A LOT cheaper haha
<rick_h_> you can buy/play but if you want to download from AMZ you have to use a client
<hatch> ohhh
<rick_h_> I'm just N of detroit. Lots of cheap houses down there
<hatch> I would have to move to aspen or something
<hatch> no snow, no go
<hatch> ;)
<rick_h_> well we get some snow. Nothing horrible
<hatch> odly enough when I'm in the US my Google Play store points to the US store, but won't let me buy with my CAD credit card, and won't let me switch to the Canadian store
<hatch> lol
<hatch> I was bored waiting for my flight and wanted to buy a movie - I was like wth? haha
<hatch> gary_poster: if the CI stuff hangs on the ADDRESS... part does that mean it's waiting for a machine?
<hatch> it's been over an hour
<gary_poster> hey hatch.  I saw that.  both instances say that they are running.  lemme look a little farther
<hatch> oh it just dumped a ton of python errors
<hatch> heh
<gary_poster> hatch, there ya go :-)
<gary_poster> I'd say the -v worked :-P
<hatch> lol
<hatch> I'm going to kill it and try again
<hatch> nothing I changed from your branch should have done that
<gary_poster> it's already dead
<gary_poster> just rebuild
<hatch> alright #182
<gary_poster> :-)
<gary_poster> If the retry functionality worked it would automatically retry
<hatch> oh maybe it did and I stopped it
<hatch> oops
<gary_poster> no it didn't :-/
<gary_poster> it ;s not working
<gary_poster> oh!
<gary_poster> yes
<gary_poster> ooh!
<gary_poster> you are right!
<gary_poster> Started by Naginator!
<hatch> nanananananananananaginator
<gary_poster> :-) 
<hatch> ok well I'll leave this run again I guess
<hatch> I want a successful run before I push the code :)
<gary_poster> that's awesome that the retry worked!  well, kind of sort of awesome within the larger context of non-awesomeness of canonistack flakiness!
<hatch> yeah I just hope it stops polling when it's running
<hatch> or - more imporatantly - continue poling and queue up those changes
<hatch> I mean...it should ;)
<gary_poster> hatch, canonistack is down for the count again.  I'm going to implement the health check for the juju commands.  meanwhile you can kill the run.
#juju-gui 2013-03-28
<hatch> oh ok
<hatch> gary_poster: just ran it through on ec2 and it completed successfully with ie and firefox both failing the unit tests first then retrying
<hatch> so...yay!
<hatch> now....canonistack....
<gary_poster> hatch, heh, weird, but kinda good.
<hatch> I just forwarded you the response from sauce labs
<hatch> basically saying that it can't be caching
<hatch> but now....haircut :)
<hatch> have a good night
<gary_poster> you too hatch, thx
<teknico>  rogpeppe, hi, are you landing your lp:~rogpeppe/juju-core/259-charm-relation-name branch soon? it's conflicting with trunk in state/state.go, and I'm not confident enough to fix it myself
<rogpeppe> teknico: yeah, i was planning to land it any time now. would you like me to hold off for a bit?
<teknico> rogpeppe, uh? not at all, why would I? please go ahead :-)
<rogpeppe> teknico: oh, cool; sorry i misunderstood.
<teknico> rogpeppe, my command of the English language is definitely not up to these kinds of nuances :-)
<rogpeppe> teknico: your english is great! i wasn't quite clear what you wanted though.
<teknico> rogpeppe, since the AddRelationResults struct is now going to contain just Endpoints []state.Endpoint , I wonder whether I even need to define it
<rogpeppe> teknico: the result of an api call must always be a struct
<teknico> rogpeppe, oh, ok then
<rogpeppe> teknico: i think i was thinking it would probably be better as Endpoints map[string]state.Endpoint
<teknico> rogpeppe, oh right, sorry, I neglected that part
<teknico> thanks for reminding me
<teknico> rogpeppe, uhm, actually yesterday you suggested returning map[serviceName]charm.Relation, I wonder which one's best
<rogpeppe> teknico: sorry, that's what i mean
<rogpeppe> teknico: you can't return state.Endpoint
<teknico> right
<rogpeppe> teknico: that branch has now landed
<teknico> rogpeppe, awesome, thanks again for all your work!
<rogpeppe> teknico: np
<gary_poster> rick_h_, hi.  I haven't been looking too carefully at the latest css changes, but please don't break the degree of responsiveness we had before.  Things look more or less ok right now, but I get nervous when I read "The new header is not yet responsive." from huwshimi.  Note that I do currently see a regression on the behavior when I resize the window: the right and bottom scrollbars are in place when calculations a
<gary_poster> re made, add then removed when the new size is set.  This leaves gray bars at the right and bottom when it happens.  The way we solved that in the past was to shrink the interface to the smallest acceptable size before calculating dimensions, and then expanding it back out.
<bac> guihelp: last week did we agree to not require "one 'var' per variable" or to forbid it?
<rick_h_> gary_poster: definitely, I make sure to qa these before they ok'ing them. I'm also nervous as he's trying to start big picture where I'd prefer if he worked from our browser code up
<bac> except in the case where it is multiline
<gary_poster> bac we agreed to have multiple single line variables per "var"
<bcsaller> bac: for simple assignments I think we made it optional, for complex (multiline) assignments its required
<gary_poster> but one "var" per multiline variable
<gary_poster> yeah, would be fine with what bcsaller said, though I don't remember that specifically.
<rick_h_> gary_poster: yes, hatch caught the width issue and noted it in the MP but ok'd it. I'll create a bug and assign it to Huw. I asked him last night to create bugs where appropriate from the comments made in the last MP
<bac> in cases of ambiguity defer to bcsaller is my rule
<bcsaller> ha
<gary_poster> cool thanks rick_h_ .  It is pertinent to both width and height.  sounds good.
<benji> gary_poster: am I making a "Stable" release or a "Developer" release?  My guess is "Stable" but... development doesn't seem all that stable right at the moment. :)
<gary_poster> benji why not?
<benji> it's just that we are undergoing very active development, which I suppose is reflected in the 0.x nature of the verison numbers.  I just wanted to be sure I was doing the right thing.
<gary_poster> stable and dev both benji, but let's have a quick guichat to make sure I am on the same page with you
<benji> k
 * frankban lunches
<rick_h_> hatch: bcsaller looking to include a markdown converter, any opinions on a library? Currently looking at PageDown https://code.google.com/p/pagedown/wiki/PageDown
<bcsaller> rick_h_: you mean different from the gallery one we already provide in a handlebars helper?
 * gary_poster was just trying to connect those dots
<rick_h_> bcsaller: /me goes peeking in the tree for something that might already be ther
<bcsaller> app/views/utils.js markdown helper
<rick_h_> bcsaller: never mind :) 
<hatch> gary_poster: any ideas what to do when canonistack fails?
<gary_poster> hatch, weep?  consider tackling other tasks?  stare out the window?  rotate in chair?
<hatch> lol
<gary_poster> hatch :-P for your branch just keep getting that prepped for review.  I have a plan for at least killing the canonistack failures faster
<gary_poster> I sketched it last night
<gary_poster> the only problem is a dependency
<hatch> gotcha ok I'll get this up right away
<gary_poster> cool
<teknico> gary_poster, hi, sorry, I'm late
<gary_poster> teknico, oh hai :-)
<gary_poster> teknico, one sec
<teknico> sure
<hatch> ugh I hate it when I commit and forget to run make lint before lbox :)
<hatch> we should change lbox so that it runs lint before check :D
<hatch> proposed
<gary_poster> jujugui call in 2
<benji> noooooooooooooooooooooo
 * benji reboots
<bac> hatch: the modellist bubble event did work as you described.  thanks.
<hatch> excellent
<Makyo> It's a hard life.  http://ubuntuone.com/gallery/56atUQ5IHr3CkOXeT605zL/IMG_20130328_084932.JPG
<frankban> rogpeppe: re apiinfo in the uniter agent.conf, do we have a bug for that, or do you want me to file one?
<hatch> Makyo: hehe
<rogpeppe> frankban: yeah, if you could file one, that would be great. but perhaps phrase it slightly differently: "we want our charm to know the address of the API. we're currently doing it like this. this solution (in uniter agent.conf) might be better"
<frankban> rogpeppe: filed bug 1161443
<_mup_> Bug #1161443: Make the API address easily accessible by charms <juju-core:New> <juju-gui:Triaged> < https://launchpad.net/bugs/1161443 >
<rogpeppe> frankban: thanks! (and i added a comment giving my preferred solution - i'm still not sure if fwereade will go for it though)
<frankban> rogpeppe: thanks, an env var would be great
<gary_poster> hey frankban, where is the charm log in juju- core
<gary_poster> I found charm
<gary_poster> /var/lib/juju/agents/unit-juju-gui-0/charm
<frankban> gary_poster: /var/log/juju/
<gary_poster> ah
<gary_poster> cool
<gary_poster> thanks
<frankban> gary_poster: welcome
<gary_poster> rick_h_, benji, the scrollbars are a worse regression than I thought
<benji> scrollbars?
<gary_poster> rick_h_, benji, yes, I think we may need to revrt before we release
<benji> oh, the "regression" part was what is meant to me
<benji> s/to/fo/
<gary_poster> yes :-)
<benji> s/fo/for/
 * benji goes back to typing school.
<benji> k, I'll not release until that is fixed
<gary_poster> benji, rick_h_ no matter how big my browser is, whhen I go to https://ec2-54-235-226-84.compute-1.amazonaws.com/ (which is trunk) I see scroll bars until I adjust
<gary_poster> trying on uistage as well
<gary_poster> btw frankban qa for charm is great.  ,arking...
<gary_poster> marking...
<frankban> gary_poster: :-)
<benji> https://ec2-54-235-226-84.compute-1.amazonaws.com/ has scrollbars for me in Chrome, none in Firefox
<gary_poster> benji what about http://uistage.jujucharms.com:8080/
 * benji looks
<benji> FF OK
<benji> Chrome OK too
<gary_poster> benji me too. :-/ ok call off the dogs.  I guess we can make a release.  weird that it is specific to go env
<benji> quite weird
<hatch> anyone have any objection to me upgrading us to Node 0.10.1 now that the regression is fixed?
<hatch> bcsaller: gary_poster changes have been re-proposed
<hatch> bcsaller: created a slacktask for your comments
<hatch> I*
<bcsaller> hatch: thanks
<hatch> my dogs can hear my neighbours car door close from 2 houses down but somehow they can sit right infront of my sub while my music is on
<hatch> the force is strong with these ones
<frankban> gary_poster: http://jujugui.wordpress.com/2013/03/28/deploying-the-gui-in-a-juju-core-environment/
<benji> hatch: upgrading sounds fine to me, with due caution of course
<hatch> http://starwars.com/This-Is-Madness/
<hatch> ugh I can't believe Ahsoka Tano won over Captain Rex
<hatch> benji: yep of course :)
<hazmat> frankban, cool
<hazmat> frankban, how does the gui charm know if its py or go?
<frankban> hazmat: it checks whether or not ../agent.conf exists
<benji> gary_poster: this bit of the release process doesn't seem right: "Check that read and execute permissions for all are present on all files
<benji>   and directories, especially in the ``node_modules/`` directory.
<benji> "
<benji> the not-right part is that not all the files do have the a+x bit set
<benji> should it be more like "all files are a+r and the files in node_modules are a+rx"?
<benji> (I am writing a "find" command that will verify this for us in one step that I will add to the release instructions.)
<gary_poster> hatch: no objections to Node 10.1
<gary_poster> hatch I gave you a LGTM so will only re-review if you request.  would you like me to look at it again?
<gary_poster> frankban, cool :-)
<frankban> :-)
<hatch> gary_poster: no I think the emails were delayed
<hatch> it's been merged for a while now :)
<gary_poster> cool hatch :-)
<gary_poster> benji maybe so.  OTOH we can clean up that tarball now
<gary_poster> do we need node_modules now?
<gary_poster> I forget
<gary_poster> but don't think so
<benji> I have no idea.  Shall I investigte?
<benji> or shall I make a release and a card to investigate?  <hint> <hint>
<gary_poster> benji :-) +1
<benji> I'll assume that the instruction that they should be executable is erronious and I will remove it.  If I am wrong, QA will tell me.
<gary_poster> ok benji
<hatch> bcsaller: I'm pretty sure that we can utilize the new YUI Promises stuff to avoid our multiple rendering stuff
<benji> all these double backticks irritate me; probably the single biggest failign of reST
<hatch> jcsackett: are you around?
<jcsackett> hatch: for some definition thereof, sure. :-)
<hatch> haha - just wondering if you had a sec for a guichat so I can explain the questions
<jcsackett> hatch: sure. guichat?
<jcsackett> e.g. hangout?
<hatch> yup
<hatch> i'm in
<jcsackett> in what? is there a saved one i don't know about?
<hatch> pmd
<gary_poster> rogpeppe, hi.  is the "put all the info in the watcher that we need" branch already in review or near review, out of more than merely idle curiosity? :-)
<rogpeppe> gary_poster: no, i've been on other fixes, i'm afraid
<gary_poster> ah ok understood
<rogpeppe> gary_poster: if benji wants to take the reins, that would be fine
<rogpeppe> gary_poster: currently i'm delving into a couple of odd looking bugs in the AllWatcher
<gary_poster> rogpeppe, ok it sounds like we ought to take the expose stuff then.  thank you
<gary_poster> expsoing the attrs we need, I mean
<rogpeppe> gary_poster: that would be great if you could, thanks.
<gary_poster> np, thank you
<rogpeppe> gary_poster: i think i'm better doing what i am currently
<gary_poster> rogpeppe, that was what I heard as well :-)
<Makyo> Nexus 10 just showed up in a box, wrapped in bubble wrap, inside another box, inside a bag, inside another bag.  V. thorough.
<gary_poster> :-)
<gary_poster> glad it appeared
<Makyo> Good timing, too.  Should start getting dog ready for vet.  Won't be long.
<hatch> Makyo: that's how my paperwork showed up from head office too
<hatch> wrapped in about 3 recursive layers
<hatch> :D
<hatch> maybe it's a policy
<hatch> lol
<Makyo> Hah, yeah :)
<Makyo> No US wall charger, but oh well, just USB.
<hatch> now all we have to do is figure out how to run 120volts through a USB cable and we will have a universal power system
<hatch> :)
<Makyo> Still want my wireless charger.
<Makyo> Anyway, dog to vet.  Back in a few.
<hatch> cya
<gary_poster> bye
<hatch> :lbox: command not found
<hatch> wth
<hatch> heh
<hatch> gary_poster: yep it needs to be changed in the charm too - but that's another branch
<hatch> :)
<gary_poster> cool hatch
<rogpeppe> gary_poster: you might be relieved to hear that the first bug wasn't actually a bug in the allWatcher itself, but in the testing infrastructure around it.
<gary_poster> :-) cool rogpeppe 
<teknico> rogpeppe, have a look sometime? https://codereview.appspot.com/8094045
<rogpeppe> gary_poster: i'm still not sure how to fix it though :-)
<gary_poster> rogpeppe, lol, I have confidence
<rogpeppe> teknico: looking (makes light relief!)
<rogpeppe> gary_poster: the problem is that we create the allWatcher immediately the mongo State is created, but then the test stuff sets the admin password, and that then denies access to the currently-running allWatcher...
<gary_poster> heh
<rogpeppe> gary_poster: it was one of those "what the frick is happening?" bugs
<gary_poster> yeah, I can imagine
<benji> I see these errors in Firefox:
<benji> Timestamp: 03/28/2013 12:24:13 PM
<benji> Error: not well-formed
<benji> Source File: http://jujucharms.com/search/json?search_text=series%3Aprecise%20owner%3Acharmers
<benji> Line: 1, Column: 1
<benji> Source Code:
<benji> {
<benji> it doesn't seem to affect the apps performance, but it is still disquieting
<rick_h_> benji: hmm, the json from there passes json linting
<rick_h_> benji: maybe the response isn't sending a content-type back and FF wants to try html on it or something?
<hatch> rick_h_ the events stuff was moved to an attr on purpose to avoid cross instance issues
<hatch> as prototype properties are shared cross instance
<rick_h_> hatch: but cant' it just go into the same section ATTRS lives in?
<rick_h_> { _events: [], ATTRS }
<rick_h_> isn't that all isntance related stuff there from Base?
<hatch> oh you want it to be a static?
<hatch> honestly I've never put it there
<rick_h_> hatch: well, I just don't want to create events and such tied up to something that doesn't need it like this
<hatch> hmm
<rick_h_> a Base drive ATTR is a lot heavier than a private property
<hatch> well...
<rick_h_> 'feels wrong'
<hatch> if we don't define the property then we can use 'this._events'
<hatch> then it will be scoped to the instance
<rick_h_> right, that's what I mean
<hatch> although then we have to be VERY sure that we are never calling this._events when the context is different
<rick_h_> _events is meant for two things, creating events and destructor cleanup
<rick_h_> how else should it be accessed?
<rogpeppe> teknico: reviewed
<hatch> assume we have a callback executed under some other context and we go this._events...
<hatch> then it will point to the wrong context and those events won't be detached
<hatch> whereas this.get('_events') will fail
<rick_h_> we should just get to adding an extesion for Base that adds methods addEvent, cleanEvents
<hatch> lol
<hatch> agreed
<rick_h_> well, that type of scope issue is always present in any JS work being done
<hatch> yeah but usually it doesn't come with the penalty of zombie event listeners
<hatch> :)
<hatch> for the record I totally agree with you
<rick_h_> ok, is there a way to generate a unique id for an instance of Base?
<hatch> I'm just erring on the side of caution
<rick_h_> make events a global watcher and add all events to it. Then destructor references it on cleanup
<rick_h_> at then we can track/check for left over events in tests/etc
<teknico> rogpeppe, thanks, looking
<hatch> hmm
<hatch> now that's an interesting approach
<rick_h_> well for this branch it's referencing both _events and .get(_events) and I don't think a ATTR is the right place for this stuff
<rick_h_> I'd vote investigating sticking it next to ATTRS and make sure it's instance scoped, if it's not then worst case just this._events = [] in the initializer
<rick_h_> this is a really simple bit of code and scope shouldn't be an issue
<hatch> sure ok ok
<jcsackett> rick_h_, hatch: does handlebars provide any helpers to easily handle pluralizing? e.g. if extra is 1 "result" if extra is > 1 "results"?
<hatch> not that I know of
<rick_h_> jcsackett: I find sometimes just changing the text is good. "View X more" 
<rick_h_> no plurals needed :)
<jcsackett> rick_h_: if you're good with that; you pointed out the wireframe's actually say "see x more results"
<rick_h_> let UX catch us before we waste time on it
<rick_h_> yea, so "See X more" then :)
<rick_h_> but if it's pulled out from the method into a template we can easily change it to a functino call to do plurals if needed
<gary_poster> hatch, bcsaller, I added docs about our Jenkins setup on the wiki page.  https://wiki.canonical.com/JujuGUICI#preview Good enough?
<bcsaller> checking
<jcsackett> rick_h_: you alright with it remaining "see less" then? "see fewer" feels awkward.
<rick_h_> really? less seems to not fit my tongue but I can't figure out why. 
<rick_h_> jcsackett: but yea, if it's just my strangeness leave it for sure
<gary_poster> fewer is count
<rick_h_> where's deryck when you need some english 
<gary_poster> have no idea what you are talking about :-)
<jcsackett> rick_h_: see gary's point. fewer is when you have a number.
<rick_h_> gary_poster: in the search results you see XX by default with a link to "show more" and then when you show more the link is "show less"
<jcsackett> we could do "see X fewer", but that seems uneccesary for the intent.
<rick_h_> jcsackett: maybe that's what's strange is that it's XX more (numbery) but not on the way back
<rick_h_> jcsackett: yea, so just ignore me
<gary_poster> we are accustomed to "less" in vbrowser because it is viaual
<gary_poster> visual
<gary_poster> less information
<gary_poster> fewer pieces of data
<jcsackett> rick_h_: ignoring away. :-)
<rick_h_> lol, "fewer pieces of data" though. It's not "less pieces of information" is it?
<bcsaller> gary_poster: If the wiki is the place we save the Jenkins script we should put a note at the top of that script saying to save any changes back to the wiki. Other than that looks good :)
 * rick_h_ goes back to english school...been too long
<gary_poster> bcsaller, was doing that in description on jenkins.  will also put it at top of script.  Not sure if wiki is best place but it is OK and easy :-)
<rick_h_> jcsackett: let me go play with a jsbin for a minute on the _event stuff. 
<gary_poster> thank you for review
<teknico> rogpeppe, re: AddRelation(endpoint0, endpoint1 string) -> (endpoints .. string), I guess I'll have to change DestroyRelation too
<jcsackett> rick_h_: argue with jeff. i don't care, honestly, but i don't want to go back and forth between you two. :-P
<rick_h_> jcsackett: rgr
<hatch> gary_poster: looks good - thanks for doing that! bcsaller heh that script is a lot longer than our original lol!!!
<rogpeppe> teknico: good call, yes please, thanks
<rogpeppe> teknico: you could probably do it in the same CL if you wanted.
<gary_poster> cool thanks hatch
<teknico> rogpeppe, that's what I'm doing, yes
<rogpeppe> gary_poster: so, my current take on the SetAdminPassword issue is that if you call SetAdminPassword, you poison all existing watchers. i *think* that's a reasonable stance, but YMMV.
<gary_poster> rogpeppe, I think paranoia is reasonable for juju's use cases.  however the watcher seems like the wrong place to be paranoid
<rogpeppe> gary_poster: i don't see a reasonable alternative unfortunately.
<gary_poster> if you are going to take that stance--and I think it is a reasonable one--then it would make more sense to dump users off and require reauthentication.  
<rogpeppe> gary_poster: they're all using the same mongo client, and that's been shut out
<rogpeppe> gary_poster: i think that's what will happen in practice actually
<gary_poster> rogpeppe, but only when you try to use a watcher?
<gary_poster> rogpeppe, I also think that ideally the error message would clearly indicate what's going on and why, but that's arguably nice to have in comparison
<rogpeppe> gary_poster: hmm, i've just realised my solution won't work. SetMongoPassword really does poison all other clients.
<gary_poster> heh
<rogpeppe> gary_poster: and in this case we've got two clients
<gary_poster> juju itself being the other?
<rogpeppe> gary_poster: the one started by the dummy environ, which starts at Bootstrap time, and is what the API server is running on. and one in the juju.Conn which the clients are using.
<gary_poster> where dummy environ == roughly "juju itself" in the context of the tests IIUC
<rogpeppe> gary_poster: on the first connection, the client connection sets the password (so that we can avoid sending it up plaintext in the cloudinit data)
<rogpeppe> gary_poster: yeah
<rogpeppe> gary_poster: and this *is* an issue for the real live environment, i now realise
<rick_h_> hatch: so if we change _events to being set in the intializer so it's per instance does that change your LGTM for jcsackett? If so I'll cave and let the ATTR go just feels dirty, but maybe less error prone potential. 
<teknico> rogpeppe, replied to your review, thanks. I added a few questions myself, please have another look
<rogpeppe> teknico: will do (although i have to go *very* shortly, and won't be back until Tues, i'm afraid)
<hatch> nope that's fine
<rick_h_> jcsackett: ok? ^^
<gary_poster> rogpeppe, I'm out Wed-Fri next week btw
<rogpeppe> gary_poster: ok, good to know
<hatch> you're right that it's more performant I was just concerned with the potential issues associated with it
<rick_h_> hatch: understand. Yea, we need a better long term solution. 
<teknico> rogpeppe, it's actually just *one* question :-)
<hatch> rick_h_ when we do build this solution it should be done to be contributed back to yui
<rick_h_> hatch: +1
<rogpeppe> teknico: replied
<teknico> rogpeppe, thanks, have a great weekend!
<rogpeppe> teknico: and you!
<teknico> I'm working tomorrow (but I'll be off on Monday) :-)
<rogpeppe> gary_poster: actually i've realised it's *not* an issue live (the bootstrap process creates a new user) and that points me to the right solution...
<rogpeppe> gary_poster: thanks for being a fine sounding board for my thoughts
<gary_poster> ah, make a new user?  echo chamber, perhaps ;-) but glad I helped
<rogpeppe> gary_poster: think of yourself as a stuffed bear :-) http://talkaboutquality.wordpress.com/2010/08/30/tell-it-to-your-teddy-bear/
<gary_poster> lol
<rogpeppe> am off now. happy weekends all.
<gary_poster> hatch we don't need npm as a build dependency because node now includes it right?
<gary_poster> bye rogpeppe !
<hatch> gary_poster: correct - and verified locally
<gary_poster> cool thanks
<gary_poster> LGTM
<hatch> which I am kind of sketched out about because they are two different applications with obviously conflicting apis
<hatch> hmm looks like I need to create a wordpress account
<hatch> I gota spread my beliefs to the world!
<hatch> gary_poster: do we know what happens if trunk commits happen prior to it completing a test? does it queue them up?
<hatch> or run the latest
<gary_poster> hatch, queu
<gary_poster> e
<hatch> ok good :)
<gary_poster> benji how goes release?
<hatch> could I get one more review on this 4ln diff :) https://codereview.appspot.com/8105043/
<hatch> ppllllleaaaasseee
<hatch> gary_poster: anything in particular you would like me to tackle ?
<gary_poster> hatch, yes.  congratulations on finishing CI.  We will improve it later as a separate task.  Meanwhile, we have a new "Story A"
<gary_poster> I've created cards for the tasks, but I need to talk you through it.
<hatch> sure - now?
<gary_poster> I have a call with bac.  bac, can we postpone our call by 30 min or so?
<gary_poster> or would now be better?
<hatch> nope take your time
<bac> gary_poster: either
<hatch> I'll take a 30min lunch
<gary_poster> hatch ok cool talk to you then
<gary_poster> bac, joining
<benji> gary_poster: back from lunch; I figured out the little problem I had (relating to version.js) and am in the middle of QA now
<gary_poster> cool benji thx
<benji> our two-factor auth setup is aweful; my phone and the server keep getting out of sync and have to be reset
<Makyo> Hm, Ubuntu's pretty on the tablet, though a little flaky. gary_poster - if I read the email right, I should put android on this, right?
<benji> wait!  this is staging, two factor auth doesn't work here.... <sigh>
<gary_poster> Makyo, no
<gary_poster> Makyo, Ubuntu touch.  Though you will probably want to flash it to get it to newest
<gary_poster> daily
<gary_poster> Makyo will also forward you a few emails for contact and debugging info
<Makyo> gary_poster, thanks.  Can't open the browser on the current version :)
<gary_poster> Makyo, heh
<gary_poster> Makyo, to flash new version, you start in ubuntu (not bootloader, despite instructions that confused me) and do step 4 of https://wiki.ubuntu.com/Touch/Install
<gary_poster> You'll need step 1 before that
<gary_poster> but step 2 and 3 are unnecessary now
<gary_poster> steps
<gary_poster> hatch, I think the most recent Jenkins failure indicates that you broke the charm :-)
<gary_poster> yay CI! :-)
<jcsackett> rick_h_: sorry, was finally taking a lunch break. so, just in initializer create. this._events?
<rick_h_> jcsackett: correct
<gary_poster> hatch, http://pastebin.ubuntu.com/5656043/
<gary_poster> that's from charm machine from Jenkins
<gary_poster> I'm going to make a fresh build locally and see if I can dupe
<hatch> awwwww mann
<hatch> oh wait
<hatch> no that's a grunt error
<gary_poster> hatch, dunno, that's from benji, and it is doc only :-/
<gary_poster> so maybe a new spurious failure?
<hatch> hmm
<benji> or I screwed up the docs THAT bad
<gary_poster> :-)
<hatch> how do you deploy the charm locally? I have always spun up ec2 instances :)
<gary_poster> hatch, dunno, rerunning make was fine. :-/ maybe crazy virtualization issue?
<gary_poster> never seen that one before
<hatch> maybe if we get an install error we should dump the machine and juju logs
<gary_poster> maybe so
<gary_poster> ran make clean-all && make build
<gary_poster> everything fine.
<hatch> hmm that's odd
<gary_poster> Going to re-run test on jenkins
<gary_poster> seems spurious
<gary_poster> :-(
<gary_poster> hatch guichat?
<hatch> sure
<bac> gary_poster: my endpoints change introduces the new requirement that adding a service causes it to fetch the charm.  that modification is impacting lots of tests that assume the old behavior.  just giving you a heads up.
<gary_poster> ack bac sounds ok on the face of it
<hatch> bcsaller: do you know what grunt modules we use?
<hatch> you were saying that we didn't upgrade because some modules needed to be updated
<bcsaller> hatch: very little, just the spritegen stuff afaik. I cut a branch once that did more stuff with it, but with the 0.4 transition it wasn't time to change 
<hatch> ok and it looks like spritegen (node-spritesheet) isn't a grunt module
<hatch> `npm show node-spritesheet`
<hatch> and it was updated march 1
<rick_h_> hatch: when you get a second have a Y.View/events ? for you
<hatch> sure
<hatch> go for it
<rick_h_> hatch: so my events: {} aren't working and I recalled that there's some lazy-ness in there. Do you recall that all you have to do is this.get('container') to activiate it?
<rick_h_> I thought I ran into something before but brain is not recalling
<rick_h_> obviously, doing a this.get('container') in render isn't working so assuming it was something diff
<hatch> on showView() those events are delegated on the container
<hatch> so if there is no container then it can't delegate on anything
<rick_h_> ah, only on showView?
<rick_h_> I'm using a view in a view
<rick_h_> so there's no 'showView' to handle this 
<hatch> are you rendering the view?
<rick_h_> hatch: rgr
<rick_h_> https://code.launchpad.net/~rharding/juju-gui/clean_charmview/+merge/156054 line 129 is the start of the view I'm trying to get working/writing tests for. 
<hatch> ok one sec
<rick_h_> line 343 is the rendering of it from the Fullscreen main view. 
<rick_h_> hatch: cool, np
<hatch> ok just reviewed the view source and the events are attached on view initialization XOR when the container attribute is changed
<rick_h_> hatch: hmm, ok. That's what I thought then. /me goes back to debugging
<hatch> does tplNode.one('.bws-view-data') return a node?
<rick_h_> hatch: yea
<hatch> event callbacks are supposed to be strings
<rick_h_> hatch: doh!
<rick_h_> I was also doing a this.set('container') before I rendered the template into the container so it didn't have any matches
<rick_h_> hatch: there we go. Thanks!
<rick_h_> Knew I was missing stupid
<hatch> :D \o/
<gary_poster> hatch what's the word on the test issue?  Making progress, or want to pair?  I can deploy trunk and see if it works for me.  You can too actually, trivially: juju deploy cs:~juju-gui/precise/juju-gui
<hatch> I'm rolling it back to 0.8 to be sure it's an issue with the upgrade
<hatch> I am thinking its an internal dependency failure
<gary_poster> ok
<hatch> like something inside the modules we require
<gary_poster> maybe so
<hatch> some of the deps our deps rely on haven't been touched in fo'eva!
<hatch> as in , say they require node >0.4
<hatch> lol
<hatch> gary_poster: reverting back to 0.8 works just fine :/
<hatch> so theer is some unsupported dependency somewhere in the dependency mess
<hatch> so can I easily revert the changes?
<hatch> or do I need to re-commit
<gary_poster> hatch, tbh I forget.  I think the preferred way is to merge in reverse
<gary_poster> lemme see if I can figure it out, oone sec
<hatch> alright
<gary_poster> hatch I think bzr merge -r38..37 will do what we want:
<gary_poster> it changes trunk to revert your revision
<gary_poster> which you will then commit as a new change, with a message about reverting
<gary_poster> and push
<gary_poster> look at bzr diff after the merge to make sure it looks like what you want
<hatch> alright thanks
<hatch> good news is that the CI tests all pass :)
<gary_poster> yay! :-)
<gary_poster> also good news is that CI actually did what it is supposed to do!
<gary_poster> keep us from having a problem for long
<hatch> haha yay
 * hatch has the badge for the first person to actually breaking the build
<hatch> lol
<hatch> annnd done
<hatch> i'll fire off another ci run
<hatch> O K now to doing real work
<gary_poster> thanks hatch :-)
 * hatch mumble rants about node.js dependencies
<gary_poster> hatch, maybe make a bug to represent the fact that we still have a node issue that we want to resolve at some point?
<hatch> yep
 * gary_poster suspects it will bother hatch until he fixes it with or without the bug :-)
<hatch> lol yes it will
<hatch> yay the tests are running on canonistack
<gary_poster> yay
<hatch> and more importantly passing :)
<gary_poster> that too :-)
<gary_poster> benji, I'm not going to send the email to Francesco.  I'll send it to you.  The more I dig into his the more I am skeptical that we will be able to accomplish this without Roger.  This is a big deal: I am afraid there may be some serious issues with the allwatcher.  AFAICT, the config and constraints are in their own separate docs, and I don't think they are watched by the allwatcher.  therefore, if they change, we 
<gary_poster> won't hear about it.  hopefully I am wrong.
<gary_poster> Anyway, for Francesco, he has a task that he can get done.  If I do send him the email, it will be "if you get the other task done, think about this one, and maybe tell us if things are not as dark as they seem to me"
<hatch> looks like when the CI passes it just gives a link
<hatch> :)
<benji> gary_poster: ok
<gary_poster> bcsaller, could you remind me what a relation's scope is in juju?  I only see "global" in improv output
<bcsaller> gary_poster: it can also be "container" for subordinate relations
<gary_poster> bcsaller, ah ok.  nobody has those atm so it is always global, right?
<bcsaller> if you add puppet and a sub relation you should see it as an example
<gary_poster> oh ok
<gary_poster> I see
<gary_poster> thank you
<bcsaller> the sample env should really have a sub
<gary_poster> bcsaller, btw notice that I added cards fro in-memory environment to story a
<gary_poster> you might want to dig in there if you feel like it
<bcsaller> gary_poster: ahh, nice
<bac> guihelp: how does one deal with: extend failed, verify dependencies
<hatch> step 1
<hatch> verify dependencies
<hatch> :P
<bcsaller> ha
<gary_poster> :-P
<bac> step 0?
<hatch> ok but really haha
<hatch> that means that the object you're trying to extend doesn't exist
<hatch> so unfortunately that's pretty much all the advice there is - you will need to track back to find out why it's undefined
<hatch> the good news, is that it's usually a typo, or you forgot to add the module into the sandbox
<hatch> those are the first places to check
<hatch> the next are syntax issues
<hatch> which would cause the instantiation of the parent to fail
<bac> hatch: it seems to be transient, which is confusing
<hatch> is this in tests?
<bac> yeah
<hatch> try commenting out every other test case so it only loads your file
<hatch> <!-- test cases -->
<hatch> then make sure that you have added the file into the merge-files (if required) or into the modules-debug
<hatch> annnnd now I can't build trunk
<bac> hatch: it isn't a new test file, so none of that is applicable.
<hatch> oh hmm
<hatch> is the class you're trying to extend new?
<bac> not extending a new class.   just add some methods on a pre-existing one.
<hatch> oh ok
<hatch> that sounds like a syntax error
<hatch> try linting it
<hatch> or push the code up somewhere so I can take a peek
<bac> that's a good idea
<hatch> gary_poster: looks like the CI failed even after retrying with similar issues
<hatch> maybe we should increase the attempts
<gary_poster> hatch, oh you mean firefox?
<gary_poster> suck.
<hatch> oui oui
<gary_poster> naginator worked, which is kind of nice. :-/
<bac> dang, no syntax errors
<gary_poster> I have no freaking idea hatch.  Yeah, do five retrys if the number of tests run < 100?
<gary_poster> hatch, we will need to solve this, but I don't want to solve it now. 
<gary_poster> I'll be back later.  must run
<hatch> rick_h_ jcsackett either of you guys around?
<rick_h_> hatch: what's up?
<hatch> if you run describe.only('notifications' in test_notifications.js there is an extend failure
<hatch> and the traceback points to the charm-slider.js
<hatch> this doesn't happen when you run all the tests
<rick_h_> hatch: hmm, that sounds like the error I brought up before where it was the slider with a 0 item set causing issues
 * rick_h_ tries it out. 
<rick_h_> hmmm, the 'base' in Base.create is undefined
<rick_h_> so Y.ScrollView doesn't exist
<hatch> das very odd ya?
<rick_h_> yea, but we had the same issues with TabView
<rick_h_> I wonder if it's simliar
<rick_h_> we never did figure out wtf with TabView, just cheated on it 
<rick_h_> maybe the modules names aren't quite right? /me checks his requires vs the dir/file names in YUI
<rick_h_> hmm, no they seem to match up
<hatch> yeah I stared at it for a bit and coudln't figure it out
<hatch> unfortunately this issue is stopping bac from resolving his issues
<hatch> so should I create a critical ticket?
<rick_h_> yea, I mean for some reason it's not fetching the required module.
<hatch> yeah I have no idea what's up
<hatch> as far as I can tell all of those modules ARE available
<rick_h_> yea, I mean this is going to be a bit hard for jcsackett to figure out. The build/dep system in here is already hard to follow
<rick_h_> Now if you remove the rest of the tests does it still do it?
 * rick_h_ wonders how the globalconfig is setup to fetch yui deps
<hatch> rick_h_ looks like if I comment out every other test it all passes
<rick_h_> yea, ok. So it's some kind of interaction. Ugh I hate this one test thing to rule them all. 
<rick_h_> so yea, the YUI files are there in the build-debug which this is using I believe
<rick_h_> so not an issue getting them into the build dir
<rick_h_> and hitting the url directly works, so why is it not fetching the file...does it think it's already got it or something?
<hatch> rick_h_ looks like test_model.js causes it to go wako
<rick_h_> hmm, ok. That's good to know then. /me goes look into there
<hatch> 550ln test file....boooo
<hatch> lol
<hatch> 390-544
<hatch> ^^ rick_h_ if you comment that out in test_models then it works
<rick_h_> hatch: cool, now wtf since slider has nothing to do with models lol
<hatch> 394-415
<rick_h_> but all that is, is just the beforeEach/afterEach
<rick_h_> hmm, these tests aren't in a closure?
<rick_h_> neither are the slider ones
<hatch> that block of tests has a describe inside a YUI.use() not outside like everything else
<hatch> I bet that has something to do with it
<rick_h_> oh, interesting
<hatch> and I bet charm-slider is just failing becaise it's next
<hatch> heh
<rick_h_> notifications is next
<rick_h_> but yea, something like that
<rick_h_> not sure how slider fits into it all atm. 
<rick_h_> hatch: so are you cool then tweaking that test and see if that helps?
<rick_h_> I've got to get ready to put the boy to bed and can hop back in an hour or so. 
<rick_h_> if you don't get to it, I'll try to adjust that test and see if we can clean this up
<hatch> sure thing I'll create a new branch to try and fix this and see how far I get
<hatch> ping me when you get back if I haven't posted anything :)
<rick_h_> ok, if you get done before I get back just shoot me an email if you need help carrying it through
<rick_h_> hah, ok will do
<hatch> rick_h_ just doing a quick hack job on it placing the yui inside the describe has solved the issue
<hatch> so now to clean this code up
<rick_h_> hatch: ok, awesome! Glad that worked out. Still wonder wtf caused it to blame slider, but fixed > * 
<hatch> rick_h_ my guess is that it just happened to be the first module requiring a new dependency
<hatch> but thats just a twag
<rick_h_> hatch: yea, all good
<rick_h_> hatch: if you get a chance before tomorrow gets crazy pushing up my branch for review https://codereview.appspot.com/8103046
<rick_h_> thanks again for the help wtih the events. Stuck me for a bit :/
<hatch> sure - I'm actually off tomorrow and monday but I'll stop in to goto the meeting and stuff so I'll probably do it then
<hatch> no problem :)
<rick_h_> hatch: ah ok. I can ask another from the team if you're afk
<rick_h_> let me know. Thanks!
<hatch> I need a faster machine to run these unit tests
<rick_h_> yea, runs in 20s here (browser at least)
<hatch> pfft
<hatch> 40s here
<rick_h_> :P
<hatch> lol
<rick_h_> 9s for test-debug
<rick_h_> chrome must be slowing me down :)
<hatch> lol it's all the DOM manipulations
<rick_h_> yea
<hatch> yeah I'm about 20s on the terminal
<gary_poster> 14 or 15 sec for me--go desktop!
<rick_h_> yea, I've been debating a desktop this year
<hatch> haha
<rick_h_> I've been laptop only so long, but with all this vm/lxc/etc going on I'm itching for something I can actually run an environment on nicely
<hatch> you two should stick around a bit so I can merge this fix into trunk tonight
<hatch> it's proposing right now
<rick_h_> hatch: I'll be around. Waiting for australians to show up adding more cards to the board bwuhahaha
<hatch> lol
<hatch> how many ausies on your team?
<rick_h_> though hmm, if everyone is off friday wonder if he is. This is his friday
<rick_h_> hatch: just the one design guy on loaner :)
<hatch> ahhh haha gotcha
<hatch> ok patch has been proposed - QA please :D
<rick_h_> linky?
<hatch> oops https://codereview.appspot.com/8099047/
<rick_h_> it's almost 8pm, don't make me wait for my email to update itself and sync :P
<hatch> haha mine is almost instant
<hatch> I use postbox for osx
<hatch> it's a stellar email client
<rick_h_> I have a server pull gmail and work into into a single mailbox, filter it, and then I pull from taht
<hatch> ahh
<rick_h_> so it takes 4-5min to get to my local mutt install
<rick_h_> but one mailbox is nice
<hatch> gary_poster: if you are still around could you review that branch please :)
<hatch> bac: this branch will fix the issue you were having
<gary_poster> ok, but trying to run awaya as fast a spossible ;-)
<gary_poster> good catch hatch.  LGTM
<hatch> haha thanks!
<hatch> have a good night
<gary_poster> u 2
<rick_h_> hatch: qa'd with the notifications.only() and all happy. Thanks again for running that down. 
<rick_h_> and proving jcsackett and I didn't do it :)
<hatch> haha np :D
<hatch> now I'm going to go sit on the couch and watch some TV :) I'll do your review in the am before the call
<rick_h_> hatch: ty much kind sir. Have a good night
<hatch> you too!
<rick_h_droid> jcsackett what if the number of results in the container is exactly the limit? what does the text for expander do? 
#juju-gui 2013-03-29
<benji> good virtual morning, frankban; did you get a chance to look at the AllWatcher any?
<frankban> benji: not yet
<benji> ok, I'll take a look at it and see what I find
<frankban> benji: thanks. I am about to propose my current branch, then lunch, and then we could take a look together
<benji> cool
<gary_poster> thanks guys.  Would love to hear that my concerns are paranoid and unfounded :-)
<frankban> gary_poster, benji: do you know what is the corrent youdoc @param type when the value can be of any type?
<gary_poster> OTOH, also happy to see progress on things that we know how to do, while leaving the rest for Roger's return
<benji> I use {Object} when that is the case.
<gary_poster> Do you mean {Object} ?
<gary_poster> Yeah me too
<frankban> cool, thanks
<bac> hatch: thanks!
<gary_poster> frankban, for bug 1161848, that sounds like a Go API fragility rather than an error on our side--it sounds like the charm is broken, but Juju is proceeding with what we asked it to do.  Do I misunderstand?
<_mup_> Bug #1161848: Malformed charm metadata error when a charm is deployed using the API <juju-core:New> <juju-gui:Triaged> < https://launchpad.net/bugs/1161848 >
<frankban> gary_poster: that's also my understanding
<gary_poster> ok cool thanks frankban.  so...do we actually need to do anything about it?
<frankban> gary_poster: I guess we don't. That's why I moved that card to tracking. 
<gary_poster> got it frankban.  thanks
<frankban> gary_poster: np
 * frankban lunches
<gary_poster> therve, hi.  juju-gui 0.3.1 has the UX changes Andreas requested for bug 1156739.  you can deploy the charm with that revision ("juju-gui-source=0.3.1") in the future to get this release.  I have the improv version up for visual review here: https://ec2-23-22-86-50.compute-1.amazonaws.com/
<_mup_> Bug #1156739: "environment LANDSCAPE" feels wrong <juju-gui:Fix Released by benji> < https://launchpad.net/bugs/1156739 >
<therve> gary_poster, thanks, I'll pass it up
<gary_poster> thanks therve 
<hatch> morning
<gary_poster> morning
<rick_h_> morning
<gary_poster> jujugui call in 2
<rick_h_> hatch: thanks for the review. Comments and code pushed up this morning
<gary_poster> hatch starting without you
<hatch> rick_h_: I'll do your review now
<rick_h_> hatch: thanks! :)
<hatch> frankban: yours after that
<frankban> thanks hatch 
<hatch> gary_poster: I'm holding out that my test patch yesterday night will fix our odd failing test issue haha
 * hatch crosses fingers
<hatch> ok both done
<frankban> cool, thanks
<rick_h_> thanks again hatch, have a good weekend
<hatch> you too - I'll likely still be around haha
<hatch> ping me if ya need me :)
<rick_h_> hah, well don't hang around too much. Days off are good for you. 
<frankban> benji: are you available for a call re the allwatcher stuff?  hangout?
<benji> frankban: sure; give me one minute and we'll go to the hangout that shall not be named
<frankban> benji: :-) cool
<gary_poster> hatch, that would be great if so!
<gary_poster> therve, is it helpful to keep that ec2 instance up, or can I can kill it?
<gary_poster> I mean
<gary_poster> https://ec2-23-22-86-50.compute-1.amazonaws.com/
<therve> gary_poster, you can kill it
<gary_poster> thanks
<gary_poster> therve, how can we expect to hear an official OK on this delivery?
<therve> gary_poster, I need to pass this to someone else, I don't know
<gary_poster> therve, want me to send an email to Dean and see if he is willing to sign off?
<therve> gary_poster, yes, please
<gary_poster> ok will do.  thanks again
<gary_poster> frankban, I'll handle Jenkins.
<benji> gary_poster: frankban and I have come up with an approach for at least part of our current allwatcher issues and would like to discuss it with you
<gary_poster> yay
<frankban> gary_poster: thanks a lot
<benji> in the hangout that must not be named
<gary_poster> guichat!
<bcsaller> doh!
<Makyo> Tiny branch to match the core refactor: https://codereview.appspot.com/8158043/
<bac> thanks for the fix hatch!
 * bac not really here
<hatch> no problem bac
 * hatch also not really here
 * gary_poster really here!
 * Makyo \o/
<gary_poster> :-)
<rick_h_> all these slackers here on their day off
<rick_h_> what's the world coming to
<gary_poster> I know!
<rick_h_> we can't poke fun at the holiday'ing slackers if they keep doing stuff. I'll start to feel guilty soon
<rick_h_> hmm, speaking of which I think I'm going to slack my way to the coffee shop for some afternoon work. friday caffeine required
<gary_poster> Makyo, my review makes no sense.  It's just how I felt, what can I say.
<Makyo> gary_poster, fits the branch!  I'll take it :)
<gary_poster> :-)
<gary_poster> wow, now ec2 is taking a long time to start a machine up...
<gary_poster> weird
<teknico> there you go! some of the most awful, fragile, baroque Javascript code you ever saw! ;-) https://codereview.appspot.com/8162043
 * benji takes a late lunch.
<frankban> have a great weekend all
<teknico> frankban, you too
<rick_h_> anyone around for a JS review? https://codereview.appspot.com/8166043/
<Makyo> rick_h_, sure.
<gary_poster> https://codereview.appspot.com/8083044
<gary_poster> short CI review ^^^
<rick_h_> thanks Makyo 
<rick_h_> hah! most reviewed branch ever. 
<rick_h_> thanks gary_poster, you caught the one that's a true bug/test fail :(
<gary_poster> rick_h_, glad review helped, at least :-)
<gary_poster> benji, if you are looking at relations, good news: teknico figured out that both Interface and Scope are in the Endpoint.  https://codereview.appspot.com/8162043/ fwiw
<benji> heh, I just noticed the same thing; I'm working on fleshing out the relation watcher now
<gary_poster> awesome
<gary_poster> Makyo thank you for review.  rick_h_, you up for a review of a hack? :-/ https://codereview.appspot.com/8083044/
<rick_h_> gary_poster: sure thing
<gary_poster> thank you
<benji> grr, import cycle!
 * benji builds a yurt made out of crystals in order to meditate upon import cycles. 
<rick_h_> import cycles == circular imports in py?
<benji> yep, except that they are illegal in go, so when you create one you get an error
<benji> which in practice means that you have to restructure your app just to make the thing you want to do possible
<rick_h_> add some DI :P
<rick_h_> nothing like a global to fix your imports
<benji> heh
<rick_h_> gary_poster: if you wanted to look over the fix for the markdown render it's up https://codereview.appspot.com/8166043, otherwise I'll roll with the LGTM I've got and land it
<gary_poster> looking rick_h_ 
<gary_poster> +1 on the change rick_h_ including test
<rick_h_> gary_poster: thanks
<gary_poster> yay, ci passed
<benji> gary_poster: I sent the hand-off email.
<benji> I'll see y'all Tuesday.
<gary_poster> thank you benji.  don't pull a uscle, and have a good weekend
<gary_poster> muscle
<benji> If I were Popeye I might be able to pull a uscle.
<benji> One of the things I like about helping people move is that invariably someone says "You're stronger than you look."  Thanks... I... guess.
<rick_h_> gary_poster: where's CI reporting to?
 * rick_h_ is curious in case he breaks things one day...
<gary_poster> rick_h_, juju-gui@lists.ubuntu.com
<gary_poster> rick_h_, https://lists.ubuntu.com/mailman/listinfo/juju-gui
<rick_h_> gary_poster: thanks
<gary_poster> welcome
<gary_poster> rick_h_, jcsackett and huwshimi ought to be on there too I think
<gary_poster> oh huwshimi is already
<rick_h_> sinzui: jcsackett ^^
<jcsackett> yay, more email lists. :-P
<gary_poster> :-)
#juju-gui 2013-03-30
<rick_h_> hatch: https://codereview.appspot.com/8186045 is a sample of what I'm thinking for events. Just a little extension to track/clean up.
<hatch> rick_h_ ahh you made a little factory extension
<hatch> my only concern would be that sometimes yuiid's change
<hatch> so you could be trying to show an indicator on a node that doesn't exist
<rick_h_> hatch hmmm..not sure what to do for that case.
<hatch> what does this indicator show?
<rick_h_> hatch but yea. i figure to make an extension for our event stuff too. 
<rick_h_droid> a skinny graphic centered on the target node. auto sizing and all that. 
<hatch> ok so it shoudln't really be that much work to instantiate? Maybe it's worth just destroying when done?
<rick_h_droid> maybe. I was going to link you but the thing won't load on the tablet atm. 
<rick_h_droid> basically when we list files we keep one indicator on the view and the dom structure for the overlay is all setup
<hatch> you should check out irc management software so you can use the same username on all devices :)
<hatch> s/username/account
<rick_h_droid> so multiple file browsing doesn't need to keep adding/clearing from the dom
<rick_h_droid> heh I do have it in my irssi instance. just like using the tablet on its own. 
<hatch> oh ok :)
<rick_h_droid> I'm out with the wife atm 
<rick_h_droid> so away from my laptop
<rick_h_droid> anyway, go to /bws/sidebar and click Cassandra. then click on hooks and the files listed
<hatch> oh I don't have any of that stuff running right now :)
<hatch> I'm doing some Unity 3d stuff for fun - boy do I wish javascript had IDE's like they do for C#
<rick_h_droid> heh vim or bust
<rick_h_droid> why I never get around to doing android. 
<hatch> why? Python could bennefit from this type of autocompletion too
<hatch> actually anything with the native ability to import classes
<rick_h_droid> hatch meant to load it on upstage and you csnse
<rick_h_droid> autocomplete is evil :p
<rick_h_droid> you can get good autocomplete in python with wingide or pycharm
<hatch> oh does it know what methods are available from the classes you have imported?
<rick_h_droid> yea
<hatch> ahh that's great
<rick_h_droid> it does all kinds of magic 
<hatch> wish javascript had that
<hatch> I mean, sublimes autocomplete works great but it would be even better if it would ac from the other classes
<rick_h_droid> autocomplete can let you getaway with really bad naming and names pacing. see php heh
<hatch> sure but you can't blame the tool for it being used improperly
<hatch> forks don't feed people - people feed people :P
<hatch> I don't think anyone follows any conventions in C#
<hatch> it kind of looks like a free-for-all when it comes to naming conventions haha
#juju-gui 2014-03-24
<rick_h_> morning part people
<rick_h_> party that is doh
<frankban> morning rick_h_ 
<rick_h_> how goes frankban ?
<frankban> fine rick_h_ . http://packages.ubuntu.com/search?suite=all&section=all&arch=any&keywords=juju-core&searchon=names still shows 1.17.4
<rick_h_> frankban: yea, was just looking myself :(
<rick_h_> frankban: well it did just get released late in the week. We'll see if it gets uploaded today. 
<frankban> rick_h_: +1
<rick_h_> It sounds like it's not quite the automatic process and requires james to do some manual step
<frankban> guihelp: is anyone available for a review/QA of https://github.com/juju/juju-gui/pull/194 ? thanks!
<luca___> rick_h_: coming soon!
<rick_h_> luca___: coolio
<rick_h_> frankban: feel free to rope people in this week. kadams54 and I are sprinting and bac is out so you might have to get a lasso for the others 
<frankban> rick_h_: ack
<frankban> hatch: morning, do you have time for reviewing/qaing https://github.com/juju/juju-gui/pull/194 ?
<hatch> frankban sure - I'm nursing a cold right now so moving a little slower this morning :)
<frankban> hatch: :-/ thanks
<hatch> frankban any idea what revno 17.6 is? 
<hatch> or is this stuff all newer than that release?
<frankban> hatch: I think it's newer
<hatch> ok np
<hatch__> jujugui call in 8
<ahasenack> hi guys, is the login page expected to be like this? http://i.imgur.com/5tS2TGI.png
<ahasenack> that's a big blob of text 
<hatch__> lots of information :)
<hatch__> I think we are looking at a nicer way to do it
<ahasenack> that's a lot of reading just to find the password
<hatch__> well the most important information is in the first sentence 
<hatch> I believe it's been sent off to design to figure out a cleaner way to show this information
<hatch> ahasenack the issue is that the new versions of juju-core change the preferred location for the env details
<ahasenack> I always looked at environments.yaml, with both 1.16 and 1.17
<hatch> ahasenack yes but that will be going away
<hatch> frankban I think every dep is out of date.....lol
<frankban> :-)
<hatch> and we're up
<frankban> ahasenack: admin-secret in envs.yaml is optional: if not specified, one is created by core and is stored in environments/<env-name>.jenv. quickstart is a good way to automatically log in into an existing GUI without having to provide the passwd
<hatch> rick_h_ since you're on a sprint..... *choo choo*
<hatch> jujugui if anyone wants a keybase invite I have 4
<rick_h_> hatch: :P
<rick_h_> hatch: did that hangout work out ok? Put you guys on the tv :)
<hatch> yup 
<hatch> worked well
<hatch> looks like you guys have a private room there
<rick_h_> we reserved a meeting room for hangout time this week. Except thurs
<rick_h_> already booked for a class or something
<hatch> ahh cool cool
<kadams54> guihelp: looking for a review of https://github.com/juju/juju-gui/pull/195
<hatch> sure I can
<kadams54> thanks
<hatch> frankban I added a new machine using `juju add-machine --series saucy` and it's just sitting on pending
<hatch> been doing so for over 10mins now
<frankban> hatch: juju status?
<hatch>   "2":
<hatch>     instance-id: pending
<hatch>     series: saucy
<hatch> 10minutes seems like a long time even for ex2
<hatch> ec2
<frankban> hatch: yeah, it usually takes less
<hatch> I wonder if there is a bug in juju-core trunk
<hatch> I'll give it a few more minutes then check in juju-dev
<hatch> kadams54 sorry I'm a little backed up on your qa but the code review is done
<kadams54> hatch: np, looks like I got tripped up by the linter anyhow :-)
<hatch> :) oops
<hatch> frankban so it looks like I'm stuck at this point
<hatch> up to this point is it enough for a qa?
<frankban> hatch: I think so, yes, thank you
<hatch> phew ok qa's done
<hatch> maybe I can get some work done now :P
<hatch> lazyPower http://dev.ghost.org/new-for-themes-0-4-2/#tagpages :D looks like I can go Ghost now
<lazyPower> Hah, totally suggested you do that last week - but the devs beat you to it
<lazyPower> hi5 :)
<hatch> now I just need to find some time to work on a theme and my ghost charm
<hatch> jujugui lf a review on https://github.com/juju/juju-gui/pull/196 plz and thanks
<frankban> hatch: on it
<hatch> thanks
<rick_h_> benji: ping when you're around. 
<benji> rick_h_: hi, back from lunch
<rick_h_> benji: cool PM
<frankban> hatch: done
<hatch> thanks
<hatch> frankban replied to questions
<frankban> hatch: looking
<frankban> hatch: re: toContainer, in juju-core it seems "machine" is used to refer to both top level machines and nested containers. Also, toMachine is used in go.js as well
<hatch> frankban ok no problem
<hatch> toMachine it is
<frankban> hatch: cool, thanks for that branch, have a nice evening
<hatch> you too!
<hatch> rick_h_ you around?
<rick_h_> hatch: kinda what's up?
<hatch> I'm looking at the next card in the lane
<hatch> 'update new inspectors UI to fit within space...'
<hatch> is this purely a css thing?
<rick_h_> hatch: yea ,there's a pre card sec
<hatch> ok thanks
<hatch> I thought 4 was a little much for a css change :)
<rick_h_> yea, other one is the important one, but I'm nervous that it's held up on Makyo atm
<rick_h_> hatch: but yea, maybe you can move forward with it some
<hatch> browser.js to instantate inspectors?
<rick_h_> the next one is to move the creation/etc of the inspectors to the sidebar which means it's got to get into the browser code
<hatch> I can start on that
<rick_h_> hatch: +1
<rick_h_> hatch: cool, let me know if you want to have a pre-imp/etc once you get a look
<hatch> sure - I'm going to head out for lunch then I'll take a look when I get back
<rick_h_> hatch: sounds good, have a good lunch
<hatch> thanks, and back
<hatch> oh it's been a long time since I've been in charmbrowser land
<rick_h_> hatch: bwuahahahaha
<hatch__> ok I figured it out
<hatch__> ctrl+a del
<hatch__> fixed it
<hatch> yay no more allhands
 * hatch does a happy dance
<rick_h_> lol
<rick_h_> on both accounts
<hatch> haha
<Makyo> Half in, but slow to respond.  rick_h_ hatch will try and get as much done on state as I can
<hatch> Makyo want to do a quick sync-up just so we aren't working ontop of eachother?
<hatch> are you in today?
<hatch> :)
<Makyo> hatch, sure
<hatch> making hangout
<hatch> I think...
<hatch> so slow
<hatch> https://plus.google.com/hangouts/_/76cpjm7r3q586sfq5b9m6shq94?hl=en
<Makyo> G+ has been crazy slow of late
<hatch> there we go
<hatch> Chrome uses considerably more battery with a single docs page open than my vagrant vm :-/
<rick_h_> Makyo: hey don't kill yourself
<Makyo> rick_h_, thanks
<hatch> solid advice 
<hatch> rick_h_ hey do you wana chat about this browser stuff? 
<hatch> I am contemplating removing the subapp stuff
<hatch> It's creating a barrier which isn't difficult to work with, just somewhat artificial...
<rick_h_> hatch: sure thing
<hatch> rick_h_ https://plus.google.com/hangouts/_/7acpia7vv7g0rtea00ciuresak?hl=en
<rick_h_> Makyo: yea, if you don't feel well run away. If you want to push up your branch that'd be cool in case we need to move it forward while you're afk
<Makyo> Will push what I have, but keep working on it.
<rick_h_> Makyo: thanks, appreciate it
<Makyo> https://github.com/makyo/juju-gui/tree/state-module
<hatch__> rick_h_ ping?
<rick_h_> hatch: pong
<rick_h_> hour long commutes fml
<hatch> lol
<hatch> 10mins?
<hatch> for a quick hangout?
<rick_h_> hatch: sure sec
<rick_h_> hatch: link me please
<hatch> I mean, in 10 mins
<hatch> maybe 5
<rick_h_> k
<hatch> dogs will be going bonkers soon heh
<rick_h_> iut
<rick_h_> it's ok, your dog hates my anyway :P
<huwshimi> Morning
<rick_h_> morning huwshimi 
<hatch> rick_h_ https://plus.google.com/hangouts/_/7acpiq87b0spl940akc44krifg?hl=en whenever you can
<hatch> morning huwshimi 
<hatch> huwshimi hey you did the sticky headers in the charmbrowser right? Do you remember where the JS is for that?
<hatch> greping on 'stick' and 'sticky' only bring up css
<hatch> oh it might help if I was using grep properly
<hatch> *facepalm*
<rick_h_> hatch: :)
<rick_h_> huwshimi: howdy, do my comments make sense on your branch?
<hatch> :)
<huwshimi> rick_h_: I'm not quite sure what the YUI class extension is.
<rick_h_> huwshimi: so the EventTracker is an example of an extension
<rick_h_> hatch: would be great to chat to about one for this case
<rick_h_> if he's still around actually
<huwshimi> OK
<rick_h_> huwshimi: the idea is to create a module that contains the code for this UI component and include it in the app so that it mixes in. 
<rick_h_> https://github.com/juju/juju-gui/blob/develop/app/app.js#L54
<rick_h_> huwshimi: note the GhostDeployer one
<rick_h_> huwshimi: https://github.com/juju/juju-gui/blob/develop/app/views/ghost-deployer-extension.js is the file for it
<huwshimi> rick_h_: Ah, I see, I think someone turned the help dropdown into one of those.
<rick_h_> huwshimi: right, so that you can have a nice small module to work on
<rick_h_> huwshimi: that's easy to test, but it's included into the app layer
<hatch> I'm still here, just otp, need me still?
<rick_h_> hatch: wonder if you can maybe chat with huwshimi on turning his branch into a app.js extension
<rick_h_> ?
<hatch> oh ok I haven't looked at it yet
<hatch> I can look at it then chat sure
<rick_h_> hatch: it's pretty small cool thanks
<hatch> huwshimi got a chance to chat?
<huwshimi> hatch: Yep
<hatch> ok i'll create a hangout
<huwshimi> hatch: Might be easier if I do.
<hatch> ok np
#juju-gui 2014-03-25
<huwshimi> hatch: Here we go: https://github.com/juju/juju-gui/pull/193
<hatch> huwshimi looking
<hatch> lookin good
<hatch> I'll do the review in a bit
<hatch> huwshimi the ci failed
<huwshimi> hatch: Yeah, was just looking at that. It's as if I didn't get the module-debug.js update...
<hatch> you need to add the extension file into merge-files
<hatch> bin/merge-files
<hatch> you'll see a huge list of them
<huwshimi> Ah I see
<huwshimi> hatch: I've got another change to make before you can do a full review anyway, so hold off on that.
<hatch> yes it's sad that I knew these things
<hatch> lol
<hatch> yeah no problem
<huwshimi> haha
<hatch> huwshimi ready for review?
<huwshimi> hatch: Not quite, just adding tests for events
<hatch> ok np, I may not get to a review for tonight then
<huwshimi> hatch: It might be done it two mins...
<hatch> oh ok
<hatch> well ping me and I'll try and get to it :)
<huwshimi> hatch: Just rebase and pushing now.
<huwshimi> hatch: Ready! https://github.com/juju/juju-gui/pull/193
<hatch> ohhh kay
<hatch> on it
<huwshimi> Thanks!
<huwshimi> hatch: Just going to have lunch so I'll fix up after that.
<huwshimi> hatch: Thanks heaps for reviewing
<hatch> huwshimi no problem - it's a pretty nit picky review :P
<hatch> I'm just doing a qa now
<huwshimi> hatch: That's fine, happy to have that kind of review
<hatch> cool :) I should do more of them lying on the couch hah
<hatch> huwshimi ohh, I'm nto sure if you noticed but we upgraded node while youw ere gone
<huwshimi> hatch: Ah right, means we can move to sass right?
<hatch> I believe that was the holdup you mentioned - so I'm taking your word on it
<hatch> :P
<huwshimi> hatch: Nice, thanks!
<rick_h_> hatch: thanks for hanging on and reviewing appreciate it
<rick_h_> hatch: but don't run too long
<rick_h_> thanks for the awesome updates huwshimi, I think this will work out much nicer to build on top of
<rick_h_> really nice base
<huwshimi> rick_h_: Great!
<hatch> party on!
<huwshimi> rick_h_: I'm going to fix up this branch and then would you be happy for me to get scss working again?
<huwshimi> I guess my next branch to work on is "create machine panel view" which requires the header to have landed.
<huwshimi> But, not sure if I can tackle that without an imp call
<rick_h_> huwshimi: as much as I <3 scss > less the machine view/inspector stuff is priority
<rick_h_> huwshimi: I assigned a small bug your way from luca today or last night if you get a chance to look 
<huwshimi> rick_h_: No problems. I'll take a look at the bug.
<rick_h_> huwshimi: and then yea, the machine panel view I think would be next to go, it fits in somewhat with what hatch is working on
<rick_h_> huwshimi: noticed you had hte wrong card there for your task
<rick_h_> swapped those over
<rick_h_> huwshimi: so yea, there's two other machine view component cards after this one. 
<rick_h_> huwshimi: but please feel free to add a scss conversion to the slack lane and if you get stuck on something sometime it'd be a cool background task
<huwshimi> OK sure
<rick_h_> night all, sleepy techie...
<huwshimi> rick_h_: Night!
 * frankban lunches
<rick_h_> frankban: thanks for looking into that issue. I'm glad the original assignee has spoken up now
<jcastro> rick_h_, rails/example-scalable is missing from the web UI
<jcastro> exists in the store afaict
<rick_h_> jcastro: k, looking
<rick_h_> jcastro: full url?
<jcastro> https://code.launchpad.net/~charmers/charms/bundles/rails/bundle
<rick_h_> jcastro: added a card to try to get it investigated. I'm out on an intro sprint this week so might be a day/two to get a good look. 
<rick_h_> jcastro: nothing obvious wrong, proof's, etc
<rick_h_> jcastro: but it loads on staging so it's something with production and the awesome black box there
<rick_h_> http://staging.jujucharms.com/bundle/~charmers/rails/example-scalable
<jcastro> cool
<rick_h_> bwuhahaha http://comingsoon.jujucharms.com/:flags:/il/mv/
<rick_h_> starting to look like something
<rick_h_> that doesn't do anything at all, but it looks :)
<hatch> haha
<hatch> with these short names we have to be sure we grep for flags.il 
<frankban> and the fiber connection appears to be working (he said)
<hatch> OOoooOoo
<frankban> rick_h_: 1.17.6 is in trusty. I am starting quickstart QA on it
<jcastro> rick_h_, don't forget to remove ~charmers from bundles too!
<frankban> ... and it failed
<frankban> guihelp trusty users: have you encountered this issue before? http://pastebin.ubuntu.com/7151411/
<hatch> I've run into quite a few odd issues with juju-core in the 1.17.x branches - hoping they all get resolved before 1.18 :)
<frankban> hatch: yeah, I am trying to figure out if this should block the quickstart release
<hatch> it doesn't look like a quickstart bug
<hatch> it looks like a core bug
<frankban> hatch: precisely
<frankban> asked on #juju-dev
<hatch> frankban the first thing they will ask is 'is there anything in the logs' so you might as well check there first :)
<frankban> hatch: I am checking if this also affects saucy
<hatch> early access "Go In Action" http://manning.com/ketelsen/ looks like there are only two chapters available so far
<jcastro> rick_h_, does drag and dropping a bundle with multiple stanzas work yet?
<jcastro> basically, the design people need to get updated pictures for the juju flyer
<hatch> george co....stanza?
<hatch> jcastro do you mean stanza wrt multiple bundles in one deployer file?
<jcastro> yeah
<hatch> if so, no it's not supported yet
<jcastro> ugh
<jcastro> so basically, the rails bundle is undeployable
<hatch> well I thought that the charmstore splits them up?
<jcastro> yeah but the design people are likely using the GUI
<hatch> I mean - I was under the impression that the charmstore splits them up so the search results should show multiple bundles in the result list
<jcastro> oh hey
<jcastro> does it work on comingsoon?
<hatch> when I search for rails there is a single recommended bundle
<jcastro> right, but the 2nd one is missing
<hatch> ahh so it only takes the first one
<jcastro> rails:example-simple is there, rails:example-scalable is not
<hatch> yeah looks like a charmworld feature isn't there
<hatch> the gui just shows what it's given
<Makyo> jujugui call in 10
<hatch> man that call comes up quick now
<Makyo> jujugui callin 2
<benji> I was just kicked out of the call.  Trying to reconnect.
<Makyo> afk a few minutes
<hatch__> benji since you switched to this new camera you have been having a lot of video issues
<hatch> new and unimproved? :)
<benji> hatch: yep (but today's camera was the old one)
<hatch> ohh interesting, it seemed to freeze just like the 'new' one
<hatch> maybe a trusty driver issue?
<rick_h_> jcastro: yes, it's undeployable atm. We won't have multiple dropping support for a while
<rick_h_> jcastro: we should be able to start looking at it later today/tomorrow. 
<hatch> new HTC One
<hatch> ooooo
 * hatch looks at mine.....looks at the new one
<frankban> jujugui: http://jujugui.wordpress.com/2014/03/25/juju-quickstart-1-2-0-released/
<hatch> w00t
<frankban> hazmat, marcoceppi: I just updated the juju stable PPA with the backported packages of deployer (0.3.4) and jujuclient (0.17.5)
<marcoceppi> \o/
<kadams54> Nice
<hatch> ahhhh my brain does not work like browser.js
<hatch> must....not....rewrite.....routes.....
<rick_h_> frankban: woot!
<rick_h_> frankban: once it hits pypi can you ping james page and look into getting an updated upload to trusty and talk to him about closing out our FFE bug for it
<rick_h_> hatch: :P
<rick_h_> hatch: ignore routes, they don't exist 
<rick_h_> it's magic :)
<frankban> rick_h_: it's already on pypi, pinged rbasak about that
<rick_h_> as soon as you touch routes you get hit in the head by double dispatch and life sucks
<rick_h_> frankban: ok awesome thanks
<frankban> mp
<hatch> sounds like we should fix double dispatch :)
<rick_h_> hatch: it's already fixed for you as long as you stay away from routes
<rick_h_> hatch: mission accomplished, plus we need more state than a url/route can handle so you can't get rid of it anyway
<rick_h_> jcastro: that quickstart release removes ~charmers
<rick_h_> jcastro: and we've updated the deploy instructions in the gui and should be release later this week 
<hatch> I guess I prefer the router to be explicit '/inspector/:service/:unit' for example
<rick_h_> that's fine
<rick_h_> but don't think route, it's state
<hatch> right but the route can call a single method instead of one who's 100 lines long and has way too many responsibilities 
<rick_h_> which 100 line method?
<rick_h_> *cough* there isn't one *cough*
<hatch> sidebar + routeView is over 100 lines
<rick_h_> that's two functions :)
<hatch> sidebar is only 4 lines shorter than 100 lines
<hatch> :)
<rick_h_> and I admit that the sidebar function can be broken up into smaller bits
<rick_h_> hatch: heh, yea and it's commented to high heaven
<rick_h_> shall I go look at other methods in other bits of the code? 100 lines eh?
<hatch> I still think that the router should be the source of truth
<rick_h_> hatch: and that can't happen
<rick_h_> it's not smart enough
<hatch> why can't the router call a method which updates the state?
<rick_h_> hatch: we can chat about it if you want. I'll tell you where the router falls short for our uses and why state still needs to be there even in a non-double dispatch world
<rick_h_> because not every thing we draw is/should/can be in the url
<hatch> right but anything touching the router is from the url
<rick_h_> what tab is selected in the inspector? How about which tab in the service details popout? 
<rick_h_> man, the router isn't official in any other code in the GUI. Why is it NOW a problem? I mean what in the inspector, service view, etc deals with it?
<hatch> right, and those can be separate methods which update the state and don't need to touch the router
<rick_h_> right, so forget the route and just deal with state. Have one source of truth. 
<rick_h_> if you split up into a bunch of routes with state and async renders for those route callbacks it'll be hell 
<rick_h_> I've been down that road with the browser
<rick_h_> that's even before double dispatch
<rick_h_> it's more complex then a todo app :)
<hatch> right but right now it's impossible to tell what routes are support or, looking at a url, what is supposed to happen without parsing through many lines of code
<rick_h_> ok, I'll give you that's fair. 
<hatch> I think a lot of what we are doing can be done with 'middleware' routes and then specific ones with defined methods
<rick_h_> the discoverabiity/etc isn't as easy with routes, but it wouldn't be anyway. 
<rick_h_> hatch: right, if we rewrite everything, remove double disptach, and get to some ideal state it might be cool and work out better. 
<rick_h_> but it's a LONG way from where the world is now
<hatch> but I think we can handle double dispatch with middleware
<rick_h_> and it's not something we've got the bandwidth to fix between now and vegas
<hatch> is what I'm saying
<rick_h_> that's what the state does
<hatch> exactly
<rick_h_> it already deals with double dispatch as a middle layer
<rick_h_> so why is it so bad to work with?
<hatch> I think that the routes should call specific methods to update the state, then a middleware layer to check if it's the same, if it is, then don't next()
<hatch> so then we maintain the state funcitonality
<hatch> which we both agree is necessary
<hatch> but we have meaningful routes
<rick_h_> hatch: maybe, we can talk about it
<rick_h_> hatch: I've got to get ready to head out to lunch with ramm
<hatch> yeah np I'm implementing it as it is
<rick_h_> hatch: I don't mean to be a pita, but it seems that rewriting what's working and is well documented and tested and not a complete mental nightmare seems a bit overkill but maybe I'm too close to it
<rick_h_> hatch: we can try to setup some time to look at a proof of concept for reworking it some, but we just spent 2 weeks fixing the inspector to be easier to work with and I don't think we've got the bandwidth to do the same to the browser.js 
<hatch> yeah that's fine
<hatch> it would probably take us at least a week if not two to rewrite this too
<hatch> we definitely can't do it before vegas
<kadams54> Alrighty, rick_h_ and I are afk for lunch
<hatch> I still have two more keybase.io invites if anyone wants
<hatch> good nuf? https://www.evernote.com/shard/s219/sh/9a098cc5-6ee6-4770-928c-b44856f06eca/4b02fa5abc7f79a5c0266ceb527c9639
<hatch> Makyo do you know if we could have a url for the ghost inspector?
<hatch> I'm trying to figure out the best way to update the state and it seems like a url would be the best
<Makyo> hatch, Not sure I think that's a very good idea.
<Makyo> It's not a bad one, it's just showing transient local state in the URL (which can be shared)
<hatch> so here is the issue...the user drags and drops a charm on the canvas, the drop event comes form the canvas
<Makyo> So if you have a ghost inspector open and try to share the URL with someone else, it'll fail.
<hatch> it now needs to go up to the browser subapp to render the inspector
<Makyo> Mmhm.
<hatch> well...it would open a inspector to deploy that charm
<Makyo> With no drop position info.
<hatch> ahh right
<Makyo> Or any changes the user has made to config
<hatch> the path from the canvas to the browser sidebar is not a clear one :)
<Makyo> Yeah, that's fair :/
<Makyo> Events? :D
 * Makyo ducks
<hatch> could fire an event but that's a long way
<hatch> lol
<hatch> could pass a method down
<hatch> but not sure if that's any better than an event 
<hatch> it's like using a really long stick to poke a switch heh
<hatch> updating the url could 'just work' but I see what you're saying
<hatch> we could include positional information in the url
<hatch> but I guess that would be weird back-button functionality 
<hatch> we could pop it out of the history heh
<hatch> ok I think I know what i'll do
<Makyo> Using the URL as an event dispatcher? :P
<hatch> lol 
<hatch> I'll move the inspector creation code from environment.js into browser.js and then fire an event from the canvas > app > browser
<hatch> the event targets should allow that pretty trivially right now
<hatch> oh...wait
<hatch> there are a bunch of events from the canvas to the inspector
<hatch> hmmm
<hatch> we need a better transport mechanism
<hatch> events it is
<hatch> we need a indexdb juju environment so we can test this new inspector stuff without being in a real env
<hatch> it's impossible right now to see /inspector/:service work in the simulator 
<hatch> I wonder how hard that would be....
<hatch> hmmmmm
<hatch> probably not horrible
<arosales> rick_h_: re the rails bundle error. If trunk is working correctly and you have that running locally can you help us get a screen shot of the rails bundle with all green?
<arosales> rick_h_: the need here is to get a design a good screen shot for the flyers going to GopherCon and OSCON
<hatch> arosales he is out for lunch atm
<hatch> should be back rather soonish
<arosales> hatch: thanks for the info.
<hatch> heh - showing the service relation menu has been creating inspectors
<hatch> stealth bug....
<kadams54> back
<hatch> squished
<hatch> kadams54 good lunch?
<kadams54> Yeah. Yelp did not lead us astray.
<hatch> I get left overs
<kadams54> Chinese leftovers?
<rick_h_> arosales: k, yes. We can get a screenshot. Will take a few 
<rick_h_> hatch: I don't think that the ghost inspector would be url-able? 
<hatch> kadams54 home made stir fry...so sort of asiany
<rick_h_> hatch: sorry catching up on log
<hatch> rick_h_ yeah I've done some uglyness to get the topology into the browser
<hatch> I think it's just something we will have to deal with
<rick_h_> hatch: k, these are the pain points for sure. 
<hatch> it's all commented up 
<rick_h_> hatch: this is where I was expecting the main work in the move to be 
<rick_h_> hatch: k
<hatch> rick_h_ current wip https://github.com/hatched/juju-gui/compare/prep-charmbrowser?expand=1 
<hatch> in case you were curious
<rick_h_> hatch: k, looking while I get a gui up for arosales 
<arosales> rick_h_: thanks. I also sent a mail with instructions and needs
<arosales> jcastro: ^
<jcastro> rick_h_, we need one of each bundle, mongodb:cluster and rails:example:scalable
<rick_h_> jcastro: ok, but you've got the mongodb cluster right?
<jcastro> rails:example-scalable rather
<jcastro> not with the new sidebar no
<rick_h_> new sidebar?
<jcastro> on the left
<jcastro> the inspector 
<rick_h_> well that doesn't exist yet
<rick_h_> that's WIP
<jcastro> yeah it's for the flyer so we want it to be as close to the future as possible
<rick_h_> jcastro: k
<arosales> rick_h_: in the email Spencer had some examples of the sidebar bits
<rick_h_> arosales: yes, he's designing stuff but we don't have it implemented. It's what we're doing for 14.05 right now
<rick_h_> arosales: do you have this email? I'm not seeing it
<rick_h_> arosales: sorry found it
<arosales> rick_h_: email subj = "Fwd: Images for flyer"
<rick_h_> arosales: yes, there's no pic in there though. I don't know what spencer is sending you
<arosales> rick_h_: sent w/ attachment
<rick_h_> heh yea see it. Those are pure design mock ups. I can't recreate that with a bundle and such and live data
<rick_h_> arosales: jcastro http://uploads.mitechie.com/lp/rails-bundle-screenshot.png chop and use it as you see fit. 
<rick_h_> arosales: jcastro since it loads on staging I just deployed the gui into a lxc environment and changed the config for "charmworld-url"  juju set juju-gui charmworld-url="http://staging.jujucharms.com/" 
<rick_h_> for reference if you need something like this and I'm afk/etc
<hatch> rick_h_ if you zoom out does it show the bottom of the bundle vis?
<arosales> rick_h_: ok so jcastro you should be able to do this for mongo with the config settings
<hatch> that's one heck of a bundle heh
<rick_h_> arosales: we shouldn't need it for mongodb. That one is ingested and working fine
<rick_h_> you can do that on comingsoon or jujucharms.com
<jcastro> yeah mongodb isn't a problem
<jcastro> it's rails that was the problem
<arosales> jcastro: but you still need the new sidebar for mongo, which sounds like we can get a comingsoon
<rick_h_> arosales: that is not true
<arosales> rick_h_: /me just going off what jcastro sayd he has in terms of side bars
<marcoceppi> rick_h_: if we delete a branch from launchpad will the charm be removed from charmworld?
<rick_h_> marcoceppi: no, but we're getting a removal UI in charmworld to help with this
<rick_h_> marcoceppi: it's committed but not deployed yet
<rick_h_> marcoceppi: should get a deploy out this week with it
<marcoceppi> rick_h_: anything we can do in the mean time?
<rick_h_> marcoceppi: what's the details around it?
 * hatch stepping out for some lunch errands
<hatch> bbiab
<jcastro> rick_h_, fixed that cassandra README issue, I'm going to file a bug on charm-tools to check for that
<rick_h_> jcastro: k thanks. Sorry to punt on it
<jcastro> it's fine, it's a subtle thing that we should be enforcing in policy anyway
<hatch> rick_h_ I'm replying to your comments - which one is `il` again? lol (the problem with too short flags)
<Makyo> Inspector Left
<rick_h_> hatch: ok cool, chat after you go through them?
<hatch> ohh
<hatch> ok then yes
<hatch> :)
<rick_h_> hatch: sorry, pm'd you in invisible space :)
<hatch> ahh dinging all over the place
<hatch> rick_h_ yep, you made some good points here
<hatch> rick_h_ https://plus.google.com/hangouts/_/76cpj84oalco0dv6t5k2st3lgk?hl=en
<hatch> there is a warning on ABS glue "do not smoke"
<hatch> w t h
<rick_h_> hatch: joining
<hatch> rick_h_ what article is jc talking about?
<hatch> on the tweeters
<rick_h_> hatch: sec otp
<hatch> sure np
<kadams54> rick_h_ mentioned a utility for quickly injecting HTML fixtures into the container; I need a reminder what that is?
<rick_h_> kadams54: makeContainer
<kadams54> thanks
<Makyo> jujugui feeling wretched, going to sit on the deck for a few, won't be around for pings.
<hatch> okee cya
<kadams54> rest up
<rick_h_> Makyo: hope you feel better
<rick_h_> hatch: benji did you guys have the LoC numbers you were chatting about the other day still?
<rick_h_> actually, should have those in the irc log
<hatch> not sure what you're referring to
<rick_h_> hatch: weren't you and benji looking at how many lines of code was in the gui
<rick_h_> hatch: oh, your blog post! that's right
<hatch> ohh yeah
<hatch> :)
<benji> I can find them in my IRC log, but apparently you found them
<rick_h_> thanks guy, I just nabbed them from hatch's blog post
<rick_h_> guys
<rick_h_> bah
<rick_h_> EOD bring me home
<kadams54_> Ditto
<hatch> man the internet is trippin that FB bought Oculus
<hatch> morning huwshimi 
<huwshimi> Morning
<huwshimi> rick_h_: Do you know what the card "create machine panel header view/widget" is? It sounds very much like the card I just completed. I know you switched them over because I took the wrong card.
<huwshimi> hatch: Any ideas ^
<hatch> umm looking
<hatch> not a clue
<hatch> they look the same-ish
<huwshimi> :)
<hatch> huwshimi the blocked card in Project 1 is no longer blocked
<hatch> you could do that?
<huwshimi> hatch: Yeah, that's my plan, I just wanted to know if I should do that other card first as it seems related...
<hatch> yeah I can't figure out what it's pointing to that's not what you just did
<hatch> I don't see any other 'header' in the mockups
<huwshimi> yeah.
<huwshimi> hatch: Your official EOD is not for a couple of hours right?
<hatch> 38mins
<rick_h_> huwshimi: that one is the header control in the machine view panel
<rick_h_> huwshimi: that's at the top of all 3 columns in the machine view
<rick_h_> huwshimi: let me know if you want to chat on it
<hatch> there is no header for the three columns
<huwshimi> rick_h_: Yeah, an imp call would be good.
<huwshimi> rick_h_: Want me to invite you?
<hatch> mind if I join?
<rick_h_> huwshimi: k sec 
<rick_h_> sure 
<hatch> ohh NOW i see the header
 * hatch doesn't think this is a very good ux 
 * hatch hopes he is reading it wrong
 * hatch probably is
<rick_h_> huwshimi: link?
<huwshimi> Trying...
<hatch> he has to invite bcus he is from his tablet
<rick_h_> k
<huwshimi> rick_h_: https://docs.google.com/a/canonical.com/file/d/0B5yaFXSrLF38aVk4ZXJZY0tJZWJTUy1GVXlScmZRS21rUFJv/edit
<hatch> I wonder if the machine view would be a good candidate for another instance of the viewlet-manager. With the header as a view and each column could be it's own view
<hatch> then it would be another `new machineView()` to make the whole thing
<hatch> that can be pieced together at a later time
<huwshimi> hatch: What approach would you take to get other views to render to the new content panel?
<hatch> maybe now would be a good time to do the viewlet manager 
<hatch> hmm
<hatch> let me stare at this mockup for a bit
<hatch> ok so I have a different idea on how to do this
<hatch> each column, including the header is a view (it will likely share a bunch of code via extensions) 
<hatch> those views would be rendered and instantiated by a viewlet-manager instance much like the inspector instances are
<hatch> there would be a 'right hand panel' subclass of viewlet-manager and then the machine view and charm details would subclass that again
<hatch> (identical to how the inspector viewlet managers work)
<hatch> yep that's how I'd do it
<hatch> ^ huwshimi  does that mean anything to you? you weren't here for that stuff :)
<huwshimi> hatch: It doesn't mean much :)
<hatch> hmm ok ok - well... 
<hatch> I would like another opinion on this before I send you down this path
<rick_h_> hatch: we can take the view that huwshimi has and work with it. The viewlet-manager idea is interesting. I'm not up on what's left in the manager vs not so we should look into it
<huwshimi> hatch: Well, I understand what you're saying, I just don't know how to implement it :)
<rick_h_> hatch: so I'd suggest huw just work on the skeleton views
<rick_h_> and then we'd pull it in/incorporate for full interaction/switching/etc
<hatch> right....ok umm
 * hatch thinks
<rick_h_> hatch: but I don't think the viewlet manager would do well with multiple views available at the same time on the same slot
<rick_h_> hatch: as it is now
<rick_h_> hatch: so there's some things to think through and I would think they don't need to block huw up
<hatch> well each column would be it's own slot
<hatch> oh yeah for sure
<rick_h_> hatch: right, but how would you layer for animation the views in the slots?
<rick_h_> anyway, it's well past EOD and I need to go away before my family shoots me
<hatch> huwshimi ok make three views which represent each column
<rick_h_> but my thought on the matter since you bring it up :)
<hatch> rick_h_ :) thx we can chat soon on it
<hatch> huwshimi quick call?
<hatch> easier than typing :)
<huwshimi> hatch: I'm a little hesitant to put too much work into it until you and rick have bashed it all out...
<huwshimi> hatch: I think I'll create a base view for now and get the header widgets working etc.
<huwshimi> hatch: And then hopefully by the time I'm done there will be a better picture of how the rest should be structured...
<huwshimi> Sound OK?
<hatch> so build it in a way that each header is separate and not a row
<hatch> else we won't be able to split it up into three columns
<huwshimi> hatch: Well, each header will be an instance of a widget
<huwshimi> widget/view?
<hatch> hmm 
<hatch> I'd go view in this case
<huwshimi> Ok
<huwshimi> I have a bug I need to fix before I work on this stuff anyway
<hatch> alright, I'm going to step away for a bit but ping if you want to chat
<huwshimi> hatch: Thanks :)
 * huwshimi heads to the coffee shop for a bit.
<rick_h_> hatch: https://algorithms.rdio.com/post/make/ is the article I RT on twitter that someone eles saw
#juju-gui 2014-03-26
<Makyo> jujugui FYI I think I need to hand off my card.  Will be around for call tomorrow morning to discuss, but things aren't going well on my end.
<kadams54> Ugh. Sorry to hear that.
<Makyo> rick_h_, Will have follow up appointments at 10,12, and 1 mountain tomorrow, the last conflicting with interview unfortunately.
 * Makyo crosses fingers that folk see that, given time differences.
<Makyo> Finally, my apologies, jujugui, for being slow the last few weeks. Hoping to pick the pace up soon, once things clear up a bit.
<rick_h_> Makyo: ok, thanks for the heads up. We'll get things going
<rick_h_> Makyo: let me know if there's anything you need or we can help with
 * frankban lunches
<rick_h_> kadams54: https://github.com/makyo/juju-gui/tree/state-module is a link to have handy 
<frankban> rick_h_: morning. we need to answer to Micheal's question about PPA and why we don't depend on juju-core. IIRC, the reason is that quickstart is an opinionated tool which goal is to provide a quick one-line setup from 0 to a deployed juju environment. And also quickstart installs all the required packages to make juju work with local providers out of the box. Do you have a better answer?
<rick_h_> frankban: nope, that's my understanding. 
<rick_h_> frankban: I think the main thing is quickstart is meant to let users get an env running asap and it needs lxc/juju-local to do that
<kadams54> guihelp anyone up for taking a look at https://github.com/juju/juju-gui/pull/200 ?
<frankban> rick_h_: I am going to reply on the bug then, thanks
<rick_h_> frankban: thanks, appreciate it
<rick_h_> kadams54: like git merge https://github.com/hatched/juju-gui.git destroy-service-1267899
<frankban> rick_h_: replied to Robie's email, you are in CC, please feel free to add more info if you think is required
<rick_h_> frankban: awesome, sounds good
<hatch__> rick_h_ hey lemme know when you'd like to chat (re email)
<rick_h_> hatch__: will, do, otp now but might be free in a few min
<hatch__> sure just fire a link whever you're ready
<hatch__> kadams54 still looking for a review for your branch?
<kadams54> hatch__: yup
<hatch__> on it
<kadams54> thanks
<hatch> kadams54 done review
<rick_h_> hatch: https://plus.google.com/hangouts/_/7acpi4fjoin1e48smd8d62l448?authuser=1&hl=en
<rick_h_> frankban: ok, I'll work on some wording for the bug, can you add a card for the --distro-only flag for quickstart please?
<frankban> rick_h_: I'll create a card in urgent for "adding a --distro-only to quickstart". yeah
<frankban> rick_h_: thank you
<rick_h_> jujugui call in 10 kanban please
<hatch> jujugui call now
<benji> My hangout tab crashed; trying to log back in.
<hatch> we r done
<benji> k
<rick_h_> benji: anything for the team? We assumed your locked up visage of stunned silence meant no :)
<benji> lol
<benji> I got my travel to Austin booked, but that's about it.
<rick_h_> benji: woot
<hatch> Ooo
<hatch> can we go to Austin too?
<hatch> 2 legged sprint
<hatch> :)
<hatch> man sometimes bootstrapping on ec2 takes a while
<hatch> frankban after quickstart opens the browser window the terminal 'hangs' on a blank line unless I hit a key - bug? 
<frankban> hatch: ugm, that's python's webbrowser.open behavior I suppose. Yes please file a bug, and if you agree triage it as low priority
<hatch> yeah definitely low priority, ok will do
<hatch> frankban is there a way to get a list of the charms loaded into the juju env?
<benji> jujugui: pull request up: https://github.com/juju/juju-gui/pull/202
<frankban> hatch: local charms? are you asking if there is a juju-core API to get a list of uploaded local charms?
<kadams54> benji: I can take a look
<hatch> frankban yeah
<benji> kadams54: cool, thanks
<rick_h_> frankban: yea, we're trying to allow a bundle to deploy local charms already uploaded to the env
<kadams54> Looked like a pretty small change :-)
<hatch> frankban I assumed that it also loads charmworld charms into the env
<rick_h_> hatch: no, this is all sans charmworld
<hatch> rick_h_ right - I was talking more generally
<frankban> hatch, rick_h_: I don't think there is an API like that.
<rick_h_> frankban: I had thought that a local charm already in the env could be referenced in a bundle file 
<hatch> I'll ask in juju-dev
<frankban> rick_h_: that's true
<rick_h_> frankban: right, so the issue is what we export isn't re-importable as a bundle
<rick_h_> frankban: so hatch is trying to find the magic form of charm: xxxxx that can go into a bundle to make it work
<frankban> rick_h_: in theory when you call ServiceDeploy you can pass a local charm if already uploaded (that's what we do in the GUI)
<frankban> rick_h_: we should check if there is a constraint (only non-local) in the guiserver/deployer stack
<rick_h_> hatch: frankban can you guys chat and catch up on where to look for that and if we've got a way to make it work currently. If not what's an easy way to allow it to work?
<hatch> frankban quick hangout?
<hatch> I'll bring you up to speed on where I am
<hatch> I'm pretty sure this is a deployer change
<frankban> rick_h_: sure, let me take a look at the deployer. re=export/import for local charms: my understanding is that the user importing that bundle have to previously upload all the charm: "local:precise/xxx-42" charms
<frankban> hatch: sure, let's chat
<hatch> frankban https://plus.google.com/hangouts/_/76cpjdp1v7ea4q790vi9jqvug8?authuser=1&hl=en
<rick_h_> frankban: right
<benji> rick_h_: the bundle that wasn't displaying on manage.jujucharms.com seems to be displaying now: http://manage.jujucharms.com/bundle/~jorge/rails/example-scalable
<rick_h_> benji: woot!
<rick_h_> benji: oh, no, that's the ~jorge version
<benji> rick_h_: http://manage.jujucharms.com/bundle/~charmers/rails/example-scalable
<rick_h_> there's a ~charmers promulgated version
<rick_h_> oh, even better then
<rick_h_> jcastro: ^
<rick_h_> benji: hmm that doesn't search under rails at all though. That's a bummer
<kadams54> OK, newb question: what's a subordinate service?
<benji> it might be a search issue instead of an ingest issue
<rick_h_> benji: rgr http://manage.jujucharms.com/search?search_text=bundle&op=
<rick_h_> kadams54: look behind you
<hatch> lol
<rick_h_> I'm stalking him
<hatch> rick_h_ https://plus.google.com/hangouts/_/76cpjdp1v7ea4q790vi9jqvug8?authuser=1&hl=en
<rick_h_> hatch: sec
<kadams54> It's spooky. There was somebody else sitting behind me. Now it's Rick. Ninja team lead.
<hatch> he choked him out and dragged him away all stealth like
<hatch> .....you're next....watchout
<rick_h_> not until he refactos browser.js State :)
<rick_h_> refactors that is
<hatch> lol
<rick_h_> jujugui lunch break
<rick_h_> hatch: email sent
<rick_h_> jujugui reed's material should be in your email
<hatch> thanks
<Makyo> That went well. Still have a few more.  Since I'm in and out today, anyone need reviews?
<Makyo> jujugui ^^^
<hatch> I think they are all caught up (for once) hehe
<Makyo> Nice
<hatch> Makyo I was going to step out for an early lunch if you wanted to QA https://github.com/juju/juju-gui/pull/200/files
<hatch> if not, no issue
<Makyo> Sure thing.
<hatch> cool thanks
<hatch> and with that, bbiab
<rick_h_> Makyo: glad to hear
<rick_h_> Makyo: if you're bored and feeling better feel free to poke at the d3 module loading stuff
<Makyo> rick_h_, yeah, that's what I'm on now, will move the card.
<rick_h_> Makyo: but yea, think we're good on reviews and the like for the moment, thanks for offering to look
<rick_h_> Makyo: awesome
<Makyo> Wow, vows is fast. 2609 honored â 4 errored (10.000s)
<Makyo> Granted, d3 tests don't do much in the dom.
<rick_h_> Makyo: nice
<Makyo> rick_h_, can we reschedule 1:1?
<Makyo> Or can do it now, just up to you w/ interview etc.
<rick_h_> Makyo: sure thing. Let's reschedule
<rick_h_> Makyo: let me know what works
<Makyo> rick_h_, I'm open from 8 mountain to 5 mountain, minus standup at 9.
<rick_h_> Makyo: ok, want to go after the interview? 
<Makyo> rick_h_, Will be back at around 10 after or so, is that okay?
<Makyo> Shouldn't be too long, I guess.
 * rick_h_ does math
<hatch> uh oh
<rick_h_> hah
<hatch> lol
<rick_h_> I thoght you were behind me 2hr? 
<rick_h_> Makyo: /me is confused about 10 and after 4pm EDT (2pm mountain?) interview
<Makyo> I see interveiw starting in 20. next appointment starts same time, lasts an hour, ten minute drive.
<rick_h_> Makyo: ah, yea no problem
<Makyo> 10 minutes after, sorry
<rick_h_> Makyo: sure, let me know when you're back and have a coffee/etc
<Makyo> Cheers
<hatch> 8 mountain 5 mountain sounds like a scale
<Makyo> Haha
<hatch> frankban you're still in? :)
<hatch> kadams54 you can land your branch now
<kadams54> hatch: thanks!
<hatch> kadams54 also did you qa or just review benji's branch?
<kadams54> I don't know?
<hatch> lol
<hatch> https://github.com/juju/juju-gui/pull/202
<hatch> this one
<frankban> hatch: yes
<kadams54> I reviewed the code changes, ran lint, ran all the tests, did some manual testing with the nrpe charm
<hatch> ok cool so from now on also add 'QA OK' or some variation on that just so we know that qa was also done
<frankban> guihelp: I need two reviews for https://github.com/juju/juju-gui/pull/203 . Thanks and have a great evening!
<kadams54> OK, does "QA" mean "manual functional testing"?
<hatch> frankban I'll do one
<hatch> kadams54 yep
<kadams54> Got it
<frankban> thanks hatch 
<hatch> and you also have a good evening
<hatch> :)
<hatch> kadams54 it seems that over time we have developed a convention where +1 means codereview and 'qa <something' means that it's been qa'd :)
<Makyo> rick_h_, ping, back.
<rick_h_> Makyo: pong
<rick_h_> Makyo: sorry, interview ran long, I'll get a link going
<hatch> wb Makyo 
<Makyo> rick_h_, okay, cool, thanks
<Makyo> thanks hatch 
<rick_h_> Makyo: https://plus.google.com/hangouts/_/72cpjmr4g7g2e36vmj5svf0vlk?authuser=1&hl=en
<kadams54> Alright, heading out folks. Have a good day all.
<hatch> have a good one!
<hatch> amazon did a big price cut as well http://venturebeat.com/2014/03/26/amazon-goes-on-a-price-slashing-spree-maxing-out-at-a-61-cut/
<rick_h_> woot
<hatch> rick_h_ this influxdb looks pretty cool http://influxdb.org/
<rick_h_> hatch: yea, love an interview that gets you looking at stuff :)
<rick_h_> good sign
<hatch> haha...truth
<hatch> ok I think I can finally get back to real work now
<rick_h_> hatch: hah
<rick_h_> jujugui, think I'm going to hit EOD and head out here as well. 
<hatch> allrighty, see you when you get home
<hatch> lol
<hatch> Makyo have you seen that stuff where svg's are animated so it looks like they are being drawn? It would be pretty cool if it did that after clicking 'deploy' :)
<Makyo> hatch, yeah, though that'd be easier without separate assets for the services.
<hatch> yeah - I'm not sure how it would apply to what we have but maybe a new design could allow for it
<Makyo> Mmhm
<Makyo> I was playing around a little with impress.js last week, too.  Gave me similar ideas.
<hatch> great minds think alike
<hatch> :P
<hatch> ohh Makyo  frankban is looking for another review (I'm going to do one) https://github.com/juju/juju-gui/pull/203 if you're still looking for reviews
<Makyo> Sure thing,
<Makyo> Um... what. https://www.youtube.com/watch?v=dvWGLcdI8o8
<hatch> Makyo rofl!
<Makyo> Never thought I'd be able to say the phrase, "Man, that Goat Simulator game looks terrifying."
<hatch> hahahahahaha
<hatch> oh man that's so many levels of awesome
<hatch> where do people come up with this stuff
 * Makyo dogwalk quickly
<hatch> this is the worst time of year for dog walking....everything is so muddy heh
<Makyo> That was a few weeks ago, yeah
<Makyo> We're between snow and rain now.
<hatch> ohh nice - yeah atm it snows at night then melts in the morning
<hatch> so it's basically perma wet
<hatch> I figure we have another couple weeks of this then it'll be 'brown season' until it starts to rain
<hatch> 'brown season' is basically where everything is dirty and dead from winter :)
<huwshimi> Morning
<hatch> morning huwshimi 
<huwshimi> hatch: Did you and rick_h_ manage to have another chat about the approach to take for the machine view?
<hatch> crap I knew I forgot something today
<huwshimi> haha, it's ok
<hatch> it was a really busy day
<huwshimi> hatch: No problems.
<hatch> if he pops back on tonight I can have another chat
<hatch> how is the header view coming?
<huwshimi> hatch: OK, I was held up for ages at the end of yesterday by a template not working for some reason. Somehow it magically worked when I loaded it all up again this morning. I hadn't even restarted my computer!
<hatch> lol ok that's odd
<huwshimi> Yeah...
<rick_h_> hatch: :P
<hatch> :)
<rick_h_> not at home, but the coffee shop so :P
<hatch> lol I was close
<hatch>  I really got to try and set one of those things up here
<hatch> I suppose i'd need to find a good locale first
<rick_h_>  Zyea
<rick_h_> err yea
<rick_h_> well found a good place for wine and dinner first. So don't ask me anything that requires thinking :)
<hatch> haha no problem I'll leave the work talk till tomorrow
<hatch> I'm just playing some hearthstone then i'll finish up that branch
<rick_h_> woot
#juju-gui 2014-03-27
<hatch> jujugui lf a review/qa https://github.com/juju/juju-gui/pull/204 plz and thanks
<hatch> ^ huwshimi  if you have a chance today because this will then allow you to style the inspector to fit in the sidebar
<huwshimi> hatch: I'll take a look
<hatch> thanks
<hatch> If it's all good can you :shipit: for me plz?
<rick_h_> hatch: looking
<hatch> DOH ci failure
<rick_h_> doh!
<hatch> and I JUST ran lint too lol
<hatch> so much fail
<hatch> almost done 
<hatch> NFS makes lint and test running so much faster
<hatch> run the full test suite in ~20s now
<hatch> would be even faster if it wasn't for the 404's
<hatch> fixed
<huwshimi> hatch: What's the easiest way to get your branch?
<huwshimi> For QA
<hatch> huwshimi at the bottom there is a link which says 'command line'
<hatch> check out develop and update it to the most recent version 
<huwshimi> hatch: At the bottom of what?
<hatch> then run 'step 1' from the thing which opens
<hatch> the PR
<hatch> huwshimi https://www.evernote.com/shard/s219/sh/86a14db3-0e37-4522-8be6-5958ad3e2a1a/63d67cfd49665ea37786a882fc3b78f9
<hatch> but just do step 1
<hatch> and make sure you're on develop when you run the commands in step 1 :)
<huwshimi> hatch: I don't know enough to do a code review, but unless something is broken on my end it is not qaing very wel...
<huwshimi> *well
<hatch> no?
<hatch> what is it doing? The inspector won't render properly in the sidebar if that's what you mean
<huwshimi> hatch: So it's ok for it to appear above the browser content etc?
<hatch> there should be no browser content
<huwshimi> hatch: Well, I can get into a state where both are visible...
<huwshimi> hatch: Want a hangout?
<hatch> yes plz
<rick_h_> wow that is fugly lol
<hatch> haha
<hatch> it's just not centered :)
<rick_h_> ugh, so it renders under the editorial
<rick_h_> so remove the top/right nad it starts to fit
<rick_h_> hatch: can you override those in your branch at least?
<rick_h_> .yui3-juju-inspector left/top hard coded values
<rick_h_> and position abs
<hatch> yeah I can - I just left that styling alone
<rick_h_> hatch: yea, it's just a small set so it's more qa'able and such
<rick_h_> set them to inherit and it 'works'
<huwshimi> hatch: https://plus.google.com/hangouts/_/76cpi08kvdqlf8ok5huv2frop4?hl=en
<hatch> I just want to see huwshimi's issue because it should destroy the charm lists before rendering the inspector
<rick_h_> hatch: yea, it didn't
<hatch> hmm
<rick_h_> hatch: I'm betting because it doesn't have a search result it defaults to a editorial list
<hatch> riight but locally it does
<rick_h_> hmm, the list is empty, but it's there
<rick_h_> bws-editorial
<rick_h_> has three empty divs in it in my test
<hatch> odd it calls
<hatch>       if (editorial) { editorial.destroy(); }
<hatch>       if (search) { search.destroy(); }
<hatch> before rendering the inspector
<hatch> so something else must be broken there
<hatch> rick_h_ ok the issue huwshimi found is because we aren't relying on the state to render things into the sidebar
<hatch> but that still doesn't explain why the destroy calls aren't working
<rick_h_> hatch: well they're doing some work because the containers are empty
<rick_h_> hatch: but something is still providing default empty containers
<rick_h_> hatch: I think something is redrawing it, again because the state says so
<hatch> entirely possible I suppose
<rick_h_> hatch: you're probably still hitting the sidebar() function because nothing is saying not to
<hatch> right - we need to sit down and outline every possible state combination 
<hatch> and map the flow of the state rendering
<rick_h_> hatch: right, that's what kadams and I are doing
<hatch> oh cool
<rick_h_> hatch: we're picking up the state branch and started to pull that out today. We should have an initial 'refactor of current state' tomorrow and can start to update it for the new stuff we need after that
<hatch> ok great - so after all the xxx's and the little css cleanup this can land? 
<hatch> it's really broken without the state :)
<rick_h_> hatch: yes, ok from me
<rick_h_> hatch: yes, and that's the reason it can land lol
<hatch> haha
<rick_h_> hatch: but yea, it's the highest priority atm and we'll get it unblocked and going
<rick_h_> but with that we can ask huwshimi to start to style the inspect in the space :)
<rick_h_> inspector that is
<hatch> sure thing - so next card for me in the AM?
<rick_h_> though a working tabbed inspector will be good to get in there as well
<rick_h_> hatch: safari CI?
<rick_h_> and removing the safari blocker 
<rick_h_> hatch: ideally we'll do some releases tomorrow, not sure if we'll get it then or monday atm
<rick_h_> hatch: and it'll give us tomorrow to try to get some state work landed 
<hatch> ok sounds good
<rick_h_> hatch: let me know if you need to chat on the CI thing in the morning. 
<hatch> sure thing - I'll probably take a look again to remind myself what the issue was
<rick_h_> hatch: yea, I never figure out what the issue was either
<hatch> huwshimi there is a card called 'update new inspectors UI to fit within space of the sidebar...' You can probably use that for your styling
<hatch> or part of it
<hatch> it's a 4 so 2 days worth
<huwshimi> hatch: OK.
<hatch> rick_h_ I'll remove yours and kadams head off of the safari ci card
<hatch> and put mine there
<rick_h_> hatch: huwshimi but that's for both of them and some updated UI from luca
<rick_h_> hatch: yep thanks, we were going to work on that today but the state stuff is higher priority
<hatch> after the CI is up does safari get let in?
<hatch> I think that was our last safari issue
<rick_h_> hatch: yep
<rick_h_> that's the last one
<hatch> got it
<rick_h_> benji: morning, I'm going to try to do a deploy of charmworld today. Anything on the bundle search issue that I should hold up on?
<benji> rick_h_: given that tomorrow is Friday, I wouldn't hold the release
<rick_h_> benji: ok, thanks
 * frankban lunches
<hatch> morning all
<rick_h_> morning hatch 
<rick_h_> hatch: that's a cute link there 
<hatch> rick_h_ :)
<hatch> -13C out with a high enough UV index to get a tan right now
<hatch> lol
<rick_h_> we're around 0C with rain that can't decide if it's wet or frozen
<hatch> worst!
<hatch> that's like what it's like on the coast sometimes - that's why I don't live there
<rick_h_> hah
<hatch> if it's raining it's got to be above at least 13C :)
<benji> tan or windburn?  no one can tell
<hatch> see what I did there with the 13's
<hatch> haha
<hatch> nope not windy at all because the temperature has been pretty stable
<hatch> the best kiting wind is in spring and fall though when there are big swings in temerature
<hatch> temperature event
<hatch> even
<hatch> ugh
<hatch> sublime text users, I found a cool window manager https://sublime.wbond.net/packages/Origami
<rick_h_> a window manager for your editor? 
 * rick_h_ shakes head
<hatch> tiling manager?
<hatch> pane manager
<hatch> lets go with pane manager :)
<rick_h_> lol
<hatch> jujugui manage.jujucharms.com is down
<rick_h_> hatch: yep, working in #webops on it now
<rick_h_> bad merge on upgrade
<hatch> ohh
<hatch> we need a staging server :P
<rick_h_> well the cowboy was on prod and not staging so not sure how it'd help atm
<hatch> ohh right I forgot about that
<rick_h_> warned them the cowboy was there but it still went boom :)
<hatch> safari failure could be an ssl issue
<rick_h_> hatch: k, interesting and good to know
<rick_h_> hatch: hmm, what ssl are we touching? I didn't think it was ssl'd on there
<hatch> there are boneafied failing tests though too
<hatch> when I run the test through sauce labs there is a safari alert about the ssl not being correct
<rick_h_> hatch: duped locally? 
<rick_h_> hmm, ok wonder what ssl thing it's hitting. 
<hatch> might just be an aws thing
<hatch> https://www.evernote.com/shard/s219/sh/72f2a602-ee2a-4ecc-9385-54aa3bc0941f/337790dc870b72c0bd1cdc6480bece24
<rick_h_> hatch: hmm, can you look for an avenue to hit up saucelabs about this?
<rick_h_> hatch: irc or bug or something?
<rick_h_> as you're right, that's before it loads up on our url we're providing them
<rick_h_> at least I don't think that's our websocket
<hatch> we run a lot of tests
<hatch> heh, trying to find the old ones
<rick_h_> hatch: heh yea
<hatch> interesting...the failures were intermittent before failing all the time
<hatch> yup looks like it was the ssl issue https://saucelabs.com/tests/7fc11958a9ff4f859b5b17e79a777f39 just hangs on the 'SafariDriver Client' page but I'm assuming the alert is above the video layer
<rick_h_> jujugui call in 10 please kanban
<frankban> hatch: IIRC we use secure=false when deploying the GUI for tests, so, no SSL handling should be required. Looking at the jenkins failure, it seems there is a problem instantiating the remote webdriver (http://%s@ondemand.saucelabs.com:80/wd/hub), but not sure
<rick_h_> benji: do you recall what the production ingest is these days? Is it still the supervisord run process?
<hatch> frankban trying http
<hatch> frankban same issue 
<benji> rick_h_: I think so; it runs forever (and has enqueueing integrated into it so there is just the one job)
<frankban> hatch: yeah, the problem seems to be in setupClass, so before even trying to fetch a browser URL
<rick_h_> benji: k thanks for the sanity check
<hatch> its redirecting to https
<hatch> even when being given an http url
<hatch> oh I had secure=true
<hatch> heh
<benji> I wonder if I'm in the right hangout.
<rick_h_> jujugui on a call and running late
<rick_h_> hatch: can you run please?
<rick_h_> and I'll catch up in a few min
<hatch> frankban I've noticed that when I use quickstart on amazon it takes a v.long time to bootstrap - thoughts on putting a message "waiting for provider" pinging the console every 30s to let the user know it's not hung?
<hatch> or something to that effect
<frankban> hatch: what's the last quickstart message before hanging?
<hatch> I closed it....but it was something to the effect of "...Bootstrapping..."
<hatch> feel free to tell me I'm stupid :) 
<frankban> hatch: they introduced synchronous bootstrapping in 1.17.x. This is why it takes some time. In previous versions, the "retrieving environment status" was the slower bit. I am sure the goal to notify something to the user is worth the effort of spawning a separate thread to ping the terminal. One idea could be printing the synchronous "juju bootstrap" output to the console, but it contains some tecnical data not rea
<frankban> lly interesting for the quickstart user I guess
<hatch> Yeah - My only concern is for the user experience, so that they don't think it has hung as sometimes provisioning on the providers can take a while
<frankban> hatch: what about a slack card to investigate those ideas?
<hatch> yeah I'd be fine with that
<hatch> slack card in the slack pit
<hatch> lol
<frankban> :-) cool
<hatch> done
<kadams54> guihelp Just submitted PR https://github.com/juju/juju-gui/pull/207 for refactoring state out of browser. As noted in the PR, it's just the first round; rick_h_ has plansâ¦ evil plansâ¦ for subsequent cleanup.
<hatch> lol
<hatch> on it
<kadams54> Thanks
<hatch> rick_h_ https://saucelabs.com/account it looks like it's running the selenium tests twice for each browser?
<hatch> kadams54 review done
<hatch> rick_h_ I think we should prioritize removing those http requests from the tests - the test runs now take over 40mins with safari in there :O
<hatch> maybe timebox it at 1 point?
<frankban> rick_h_: James page raised a concern re: quickstart in main/juju-core not in main. Please take a look at #juju when you are available
<rick_h_> frankban: looking
<frankban> rick_h_: thanks
<kadams54> hatch: yeah, I'd like to see save() and update() disappear from the API entirely, but even if that isn't possible, maybe we can at least simplify.
<hatch> kadams54 yeah - this state stuff is super confusing for pretty much everyone but rick_h_  :P So any way we can simplify it the better hehe
 * hatch figures that's how rick_h_  felt about the viewlet stuff
<hatch> :)
<rick_h_> :)
<kadams54> lol
<rick_h_> like I said in the interview, what you throw comes back at you. We all have different brains
<kadams54> OKâ¦ so you all saw our seating arrangement in standupâ¦ rick_h_ is behind me.
<hatch> hahaha
<kadams54> Considering his status as a ninja team lead, I find this very disconcerting.
<kadams54> I need to get in before him and grab the back desk.
<kadams54> Have my back against a wall and all that.
<hatch> that still leaves you exposed from above 
<hatch> maybe also be UNDER the back desk
<kadams54> If I see rick_h_ scuttling across a ceiling, exorcism-styleâ¦ I'm outta here ;-)
<hatch> rick_h_ I think CI is borked
<hatch> might need to restart the vm
<hatch> http://ci.jujugui.org:8080/job/juju-gui/630/console
<kadams54> Is that why my merge build failed? I was having a WTF momentâ¦
<hatch> yeah EADDRINUSE
<rick_h_> hatch: sec ,just have to kill the process
<hatch> ok cool
<rick_h_> give me a minute, getting hammered from 4 sides 
<hatch> I can try it
<hatch> I've never done any the azure stuff
<hatch> ohh I need the env details
<hatch> ok I'll just wait :)
<rick_h_> process killed, try again hatch kadams54_ 
<hatch> trying again
<hatch> rick_h_ did you get kadams54_  creds for Jenkins?
<rick_h_> hatch: hmmm, probably not
<rick_h_> :)
<hatch> I can queue his up for now
<kadams54_> lol
<hatch> or if you wanted to show him
<rick_h_> hatch: thanks, yea busy atm appreciate the help
<kadams54_> I have access to Jenkins
<hatch> oh ok cool
<hatch> go to the juju-gui project
<hatch> go to 'Build with Parameters'
<kadams54_> Hmm, I don't see thatâ¦
<hatch> and type origin/pr/<yourpr#>/merge
<hatch> ok then you aren't logged in
<rick_h_> right, he needs a login
<kadams54_> Ah, yes.
<hatch> ok I'll queue yours up
<hatch> you can learn later :)
<kadams54_> Thanks
<hatch> queued
<hatch> now I need to figure out how to work on this deployer
<hatch> python...bzr...sheesh I'm going back in time here :P
 * hatch ducks
<kadams54_> Hah.
<kadams54_> OK, lunchingâ¦
 * rick_h_ goes for lunch afk
<hatch> this is a pretty cool technique for styling selects http://www.bennadel.com/blog/2594-Using-Transparent-Select-Menus-To-Create-Styled-Menu-Roots.htm
<lazyPower> pythonista TDD question: rails/rspec testing has this concept of loading fixture data after mocking out calls to an external api. I assume to achieve this i just import json and create a var with json.loads(open file descriptor) to get this? or is there a module I should be using
<lazyPower> because python testing fixtures appear to reference a different area of the harness
<hatch> frankban still around?
<frankban> hatch: yes
<hatch> got a second to give me a hand getting the juju deployer running in a virtualenv?
<frankban> hatch: sure
<hatch> awesome, so I followed the Installation instructions in the README exactly
<hatch> (there are only 3 steps) :)
<hatch> running it on Raring in vagrant
<hatch> and now when I try and run it I get this error https://gist.github.com/hatched/b5f95ae4b378307f8690
<hatch> sorry, Saucy I mean
<hatch> it says it's missing a module so I'm guessing the installation is missing a step
<frankban> hatch: yes, maybe, apt-get install python-bzrlib
<hatch> installing
<hatch> u da man
<hatch> thx
<hatch> :)
<hatch> I'll add that to the docs
<frankban> hatch: yes, it should be added, thanks
<hatch> oh awesome, the tests don't pass
<hatch> rofl
<frankban> oh... error?
<hatch> ahh it needs bzr to run the tests
<hatch> I really like how easy python is to read
<hatch> the tracebacks are pretty unhelpful, lots of indirection
<hatch> but that just might be how it's written
<hatch> oh boy the tests actually pull from a remote repo
<hatch> 1 failure 2 errors
<hatch> getting better
<hatch> 1 failure
<hatch> blarg
<lazyPower> hatch: bzrlib is a crazy dependency and will give you random failures on clean environment building for testing.
<lazyPower> it proxies through 6 locations to fetch the package
<hatch> lol 
<lazyPower> the random failures are thanks to one of those proxies timing out
<hatch> so I should blame kapil for using a test which goes over the wire? :)
<hatch> annnd Safari is back running on CI
<hatch> boo yeah
<lazyPower> hatch: this is exactly what I was talking about earlier. I need to mock an api request
<lazyPower> and load "fixture data" to mock the response.
<lazyPower> eg: stuff json in the mocked response so the code i'm testing continues with fake data.
<hatch> yeah I can't help you there - with js, no problem - with Python, no idars
 * lazyPower dies a little inside
<lazyPower> i had so much hope hatch, you got my hopes up and dashed them
<frankban> lazyPower: the mock library works well for those needs
 * rick_h_ is back from lunch
<lazyPower> frankban: im' mocking the request.post, can you point me for how to do the response? should i just json.loads(data) and assign it to response_object.data.return_value?
<lazyPower> is that the proper method? or is there a module/library for helping do all of that setup?
<frankban> lazyPower: to be clear, I am referring to http://www.voidspace.org.uk/python/mock/
<lazyPower> frankban: from mock import patch, Mock
<lazyPower> using the same lib, its got magickmock
<frankban> lazyPower: in http://bazaar.launchpad.net/~juju-gui/juju-quickstart/trunk/view/head:/quickstart/tests/test_utils.py#L681 there is an example of a way to mock urllib.urlread
<hatch> rick_h_ so I'd like to prioritize those http requests in the tests if we could...the CI is getting long in the tooth and causing timeeout issues now that Safari is in there
<lazyPower> frankban: you're my new hero, thank you!
<hatch> lazyPower what is your language of choice?
<rick_h_> hatch: create a bug and card in maint. Where's it causing time issues? I thought we had 10min windows on each sauce run. We're no where near a 10min run 
<hatch> rick_h_ sometimes the http request just hangs
<hatch> no idea wy
<rick_h_> hatch: in the on deck backlog please
<hatch> sounds good
<rick_h_> hatch: right, but do we have evidence that mocking the http requests avoid this?
<frankban> lazyPower: welcome. Hope you find it helpful to obtain the same for whatever call you need to mock
<rick_h_> I see dots, do we have anything to point to that connects them?
<hatch> rick_h_ well if it doesn't make the http request it can't hang on it :)
<rick_h_> hatch: ok, so where is the failure hanging on the http request?
<frankban> lazyPower: in general, quickstart interacts with external data sources a lot, and so mock is used pervasively in the tests
<hatch> http://ci.jujugui.org:8080/job/juju-gui/628/console
<hatch> yuss passing juju-deployer tests
<hatch> ok now I can get to work
<hatch> well it's lunch
<hatch> this of course was just the most recent failure
<rick_h_> hatch: yea, I'm just trying to find evidence of the connection
<rick_h_> hatch: are you saying this is the safari issue? Or is that just a side note here?
<hatch> oh no it's just an issue - but because we now also have safari test runs are nearing 40mins
<hatch> that's getting a little too long
<hatch> imho
<rick_h_> hatch: right, ok but that's not causing failures. That's different
<hatch> well that one I linked you hung on that http request
<rick_h_> ok that's fair I guess. last I looked we were at 26min with safari, will see
<rick_h_> hatch: righ but it's the last line of output, what indicates 'hung'?
<rick_h_> hatch: what makes this obvious vs a sauce issue, or something else?
<hatch> I had to kill it at like 50mins which means it was probably sitting on that line for 20mins :)
<rick_h_> right
<rick_h_> our end does not handle sauce going away
<rick_h_> so that time isn't a real time
<rick_h_> so your merge that landed: Took 27 min
<rick_h_> per jenkins
<hatch> right I suppose
<rick_h_> :) just keeping you honest 
<hatch> lol that's fine
<rick_h_> ok, I'm for fixing things but it feels like we've got 1) safari issue, not an issue now? 2) Tests take longer with 4 full browsers, we should fix 3) intermittent failures, cause unknown
<hatch> safari issue appears to not be an issue
<rick_h_> or is there more direct info and ^ is wrong
<hatch> it 'just works' 
<rick_h_> lovely
<hatch> so Safari is now unblocked as well
<hatch> no more warning
<rick_h_> hatch: oh, did you land that as well in your diff?
<hatch> yeah it was so trivial of a change
<rick_h_> hatch: awesome ty much!
<hatch> I added a test for it too so it's all good 
<hatch> np
<hatch> we should focus some QA'ing on it though
<kadams54> woot
<hatch> just to be safe
<kadams54> I can help with that
<rick_h_> hatch: yes, it's a friday card
<hatch> oh cool
<rick_h_> hatch: and I'm not going to do a gui release this week 
<rick_h_> hatch: I'm going to wait for now, we only released charmworld/quickstart this cycle
<hatch> probably a good idea - it's a little in flux atm :)
<rick_h_> yep, agree with you
 * rick_h_ takes meds for agreeing with hatch :P
<hatch> lol!!
<kadams54> hatch: did you get a chance to re-queue my PR merge build? (#206)
<hatch> kadams54 yep I think it's running now
<hatch> sec
<hatch> kadams54 commented in the PR
<hatch> you can shipit now 
<hatch> kadams54 oh it's running again because trunk changed
<hatch> http://ci.jujugui.org:8080/job/juju-gui/633/
<hatch> oh well, I'm sure it'll all be good :)
<rick_h_> lol
<rick_h_> all good, ship ship ship! :)
<kadams54> Yeah, rick_h_ just pointed out that build #632 was for PR 207; just didn't show in the Github conversation since it was kicked off manually
<hatch> yeah we should probably fix that
<kadams54> Since I've seen at least one good CI build, I'm fine doing :shipit:
<hatch> ....todo
<hatch> :)
<kadams54> Assign it to the new guy
<kadams54> Ohâ¦
<kadams54> Waitâ¦
<hatch> lol
<hatch> I definitely want work done on the test suite - just need to convince people to stop assigning us feature tasks :P
<kadams54> I've been telling rick_h_ the same thing!
<kadams54> We tried to convince Mark R. yesterday.
<kadams54> He was less enthusiastic ;-)
<hatch> haha
<rick_h_> hatch: hey, you knew machine view in a hurry was coming
<rick_h_> it's #1 because honestly we're less than a month from vegas and they'll want to see it almost ready there
<rick_h_> hatch: so I'm +1 on the idea, but let's remember where we're at :)
<hatch> while() { printf("you knew %s in a hurry was coming", $project); }
<rick_h_> hatch: now that's not fair. I recall weeks of maint at the end of the year 
<hatch> hahahaha
<rick_h_> :P
<hatch> so after lunch I'm going to get going on this deployer stuff
<hatch> now that i have it passing the tests
<rick_h_> woot
<benji> rick_h_: I'm stumped; the indexing problem I thought existed actually doesn't and now the unindexed bundle is suddenly indexed on prod
<rick_h_> benji: ummm, ok
<rick_h_> benji: well that's good that the problem doesn't exist. That would be a big use case hole. 
<benji> my professional diagnosis is
<benji> glitch in the matrix
<rick_h_> benji: and if it's on prod now, we did the deploy today wihch kicked something in the pants
<benji> yeah, that's what I was thinking
<rick_h_> benji: which leads me to wanting that magic "clear the index and try again" button :/
<rick_h_> benji: but yea, ok then. Thanks for chasing ghosts
<rick_h_> benji: guess we'll call it a 'can't dupe' for now
<benji> we need a "done" column (with scare quotes) for cards like this
<rick_h_> lol
<rick_h_> "done...for now"
<benji> heh
<rick_h_> benji: think you can do either of the other two cards before you get done? Or maybe hand off to bac for monday?
<rick_h_> benji: and just call this one a wrap for now
 * benji looks
<benji> I should be able to do the bulk of the "add maintainers field" card by EOTM (end of team membership).
<rick_h_> benji: cool thanks. It'll be a pure test land as we don't have any charms with that yet 
<rick_h_> benji: thanks
<benji> sounds good
<rick_h_> jujugui reminder that we'll be doing planning poker and scheduling work for the next two weeeks tomorrow. If you've got time away you'd like to schedule please get it in so I can plan around it
<hatch> rick_h_ is good friday or easter monday a holiday?
<rick_h_> hatch: not in the US. next holiday is Monday, May 26Memorial Day
<rick_h_> per https://www.opm.gov/policy-data-oversight/snow-dismissal-procedures/federal-holidays/#url=2014
<hatch> ohh ok I'll have to check in Canada then
<hatch> looks like it depends which religion I am
 * hatch flips coin
<rick_h_> Good FridayApril 18, FridayNational except QC
<rick_h_> Easter MondayApril 21, MondayQC
<rick_h_> is what I see?
<hatch> QC....just can't play with the other kids
<rick_h_> lol
<hatch> holy smokes the kanban is all cleaned up
 * hatch opens the backlog
<hatch> *BOOM*
<rick_h_> lol
<rick_h_> welcome to my world
<hatch> ugh the deployer has no comments
<hatch> is this the best place for the python api docs? http://docs.python.org/2/
 * hatch feels like captain obvious right now
<rick_h_> hatch: good place to start
<hatch> yeah I just want to reference the native api's make sure I'm using them properly
<kadams54> Hah!
<kadams54> 5 years of python development and I never thought about that
<hatch> rofl!!
<kadams54> I just googled "python <api term>"
<hatch> what have you used?
<kadams54> And went with the first hit :-)
<hatch> haha
<hatch> that's awesome
<hatch> in js world you google `mdn <whatever>` so that you get the mdn docs for it :)
<kadams54> Yup
<kadams54> :-)
<kadams54> OK, heading out now. Will check back in tonight to get a full 8 hours today.
<rick_h_> kadams54: thanks for the great state work today
<rick_h_> hopefully your brain still functions :P
<hatch> k and v must be some convention in python land for for loops?
<hatch> kadams54 lata 
<kadams54> Yeah, k = key, v = value
<kadams54> You'll see either depending on how lazy/succinct the dev was ;-)
<kadams54> Not just for looping though - pretty much any place involving key/value pairs
<hatch> rick_h_ when you have a moment for a quick hangout I have a question about some methods
<rick_h_> hatch: sure thing
<hatch> rick_h_ I figured it out
<hatch> @classmethod first parameter is the class
<rick_h_> hatch: yep
<hatch> apparently you can just call a class with params to create a new class
<hatch> interesting....
<rick_h_> yep
<rick_h_> hits the class's __init__ (initializer())
<hatch> yeah that's pretty cool
<hatch> ok code change complete....now to figure out how to use it....
<hatch> https://gist.github.com/hatched/42dce5430e713fd83cc8 heh huge diff
<hatch> umm ok using juju-quickstart in vagrant gave me the browser in the terminal....
<hatch> lol wth
<rick_h_> woot
<hatch> apparently it's running w3m
<rick_h_> <3 w3m, it's my mutt html email viewer
<hatch> of course it is
<hatch> lol
<rick_h_> that and links2 for cli browser work
<hatch> the GUI does not work very well in w3m haha
<rick_h_> lol
<rick_h_> no, no it does not
<hatch> we should probably check if w3m is installed before opening up people into it :)
<rick_h_> if that's your default browser go with it 
<hatch> yeah I suppose hey?
<rick_h_> jujugui I'm out. Have a nice evening folks. Time to go fight rush hour.
<hatch> cya!
<hatch> now I just need to find the unstable ppa for juju-core
<hatch> ahah devel
<Makyo> jujugui custom d3, requesting 2 QAs; most of the changes are hidden in ignored files: https://github.com/juju/juju-gui/pull/208
<hatch> <3 You're using failtester :D 
<Makyo> It's small and fast on LXCs :3
<Makyo> :3
<Makyo> :)
<Makyo> Man
<Makyo> Fingers went nuts
<hatch> haha
<Makyo> Having some left-brain/right-brain mixups.
<hatch> :)
<Makyo> Crap, if the CI fails, I know what it is.
<hatch> it did
<hatch> :)
<Makyo> It's some D3 cruft creeping into the tests.
<hatch> and of course my deployer python fix could not be as easy as I had hoped :)
<hatch> Makyo is there a way I can run a python script and then trigger the debugger to stop at a specific spot for me to step through?
<hatch> pdb doesn't mention a 'debbuger' like statement
<hatch> and I don't really want to step through the whole thing
<Makyo> hatch, import pdb; pdb.set_trace() where you want it to stop.
<hatch> cool then I could go...
<hatch> python -m pdb ./deployer/bin/juju-deployer -v --config ../restcomm.yaml -e amazon
<hatch> is that the correct syntax?
<hatch> I'm spoiled by the chrome dev tools :D
<Makyo> That's the whole line.  `import pdb; pdb.set_trace()` and it will stop wherever that occurs inthe code.  No need for the -m
<hatch> ohh ok cool
<Makyo> Equivalent to `debugger;` in js
<hatch> nice
<hatch> what I woudln't give for a damn docbloc in the deployer code
<hatch> wb
<hatch> rick_h_ if you have a moment to chat about this deployer thing lemme know
<huwshimi> Morning
<hatch__> morning
<rick_h_> hatch: joining AU call now
<rick_h_> huwshimi: morning
<hatch> lol that was odd
<hatch> oops I forgot destroying services leaves the machine hanging around
#juju-gui 2014-03-28
<hatch> rick_h_ curious, did you ever create that upstream bug for the kernel?
<rick_h_> hatch: no, honestly it's like 10th on my list of stuff atm
<hatch> :-) no problem just didn't see a link so was going to track it if it was
<rick_h_> though did make my appt to get my snow tires off and get some new tires on the summre wheels :)
<hatch> ooooo nice :) I gota do the same
<hatch> maybe this weekend
<hatch> I swap them myself....unfortunately 
<rick_h_> hatch: heh, I'm sitting here trying to get a local env to bootstrap to test out working with local charms
<rick_h_> hatch: yea, I don't have storage space and such so I use their valet service
<hatch> you've seen the emails from hazmat and I/
<rick_h_> they store them and just swap them off since their diff wheel sizes
<rick_h_> hatch: yea, I want to verify what you CAN do 
<rick_h_> hatch: I want to deploy a local charm, see if we can deploy another instance with a new name via cli
<rick_h_> if we can, the code is there, it's wiring it
<rick_h_> kapil's email seemed to focus on deploying a local charm that's not yet uploaded
<rick_h_> but there's note on the auto incrementing revision
<hatch> I couldn't figure out a syntax to deploy a local charm via the CLI but I'm hoping I was wrong
<hatch> that's the biggest limitation atm
<rick_h_> hatch: yea, maybe it's not there. 
<rick_h_> I'll bug someone on -core maybe
<hatch> I learnt something about python today which I felt was a little dumb....you can call functions without () so it looks like a property but it's actually a function
<rick_h_>  right
<rick_h_> call help on it that way
<hatch> it's a little cool....but not good for discoverability imho
<rick_h_> help(str.something)
<rick_h_> well you'll notice the type 
<rick_h_> I mean it's the same in JS
<hatch> right but when you're reading the code of some passed in value you just assume it's a property
<rick_h_> functions are objects
<rick_h_> ah, heh that's functional for you :)
<rick_h_> but again, same as JS. pass in a callback/etc
<hatch> charm.charm_url <---- this is actually a function....but charm._charm_url is a property
<hatch> so unless you're familiar with the code base, you don't know that
<rick_h_> yea, that's a bit of bad form as methods should be named something methody, get_charm_url
<hatch> I came across it in a log `log.debug("xxx %s", charm.charm_url)
<hatch> and it was throwing an error
<hatch> so it caught me off guard that a fn was being called
<rick_h_> heh
<rick_h_> yea
<rick_h_> bah, lxc env is broken again it seems
<hatch> but I suppose you're right, callbacks and the like in js are similar
<hatch> they just release 17.7
<rick_h_> yea, but not in trusty atm
<hatch> maybe it's fixed in there?
<hatch> ohh
<rick_h_> it'll take time, but yea, we'll see. 
<rick_h_> my envs are a mess
<hatch> haha
<rick_h_> I've had so many broken envs that I think my configs/existing envs are in trouble
<rick_h_> working on my desktop, yay for more than one machine lol
<hatch> haha 
<hatch> well even though my task was not completed/possible I learnt a lot of pythony bits so I'm considering this a success :)
<rick_h_> heh cool
<rick_h_> hatch: so I can do this
<rick_h_> ah bah nvm
<hatch> :-)
<rick_h_> yea, make sure to cd before you think it did work lol
<rick_h_> well, add it to the GUI feature work list we want to do
 * rick_h_ grumbled he could have sworn being told it was possible
<hatch> it IS possible if the charms are on the users file system
<hatch> then the deployer can deploy from the local file system
<rick_h_> ok, good to know. I'll have to work on some wording and emails tomorrow
<hatch> yeah - it's unfortunately a ton of work to do what we want to do
<rick_h_> I don't know it's more than stuff like local charm support to begin with :) 
<rick_h_> but it's another feature
<hatch> yeah - I'm wondering if we 'need' this feature
<hatch> it's a pretty rare usecase which will be handled by ___
<hatch> so....maybe the best reply would be how to do it via the CLI
<hatch> it's not ideal but 'should' work
<hatch> (we should probably test it first)
<rick_h_> hatch: yea, pretty much. 
<hatch> would you like me to look into that in the AM or are you trying that now?
<hatch> the CLI only approach
<rick_h_> no, I think we'll put this away and write up a nice "here's the temp path" email
<hatch> ok I'll slide the card into daily
 * hatch flicks the no-more-work-today switch
<hatch> evening kadams54 
<kadams54> evening
<rick_h_> it's EOD, go to bed you guys :P
<hatch> rick_h_ lol I've been debuggin a python script!
<hatch> https://github.com/SublimeText/Origami/issues/59
<hatch> I want vim style PANE management
<hatch> :P
<hatch> also did this https://plus.google.com/118445028821328031751/posts/PLZrunniCC4
<kadams54> Heh
<kadams54> rick_h_: your evil plans for state refactoring have run afoul of YUI. We'll have to talk more tomorrow :-)
<hatch> lol
<hatch> kadams54 are you going to push the state into a state array so that state[state.length-1] is the current state and state[state.lenth-2] was the previous state?
<hatch> that's one approach I was thinking of
<hatch> kind of a persistent data store style
<kadams54> Haven't gotten that far yet
<kadams54> Right now I'm just trying to hide current and previous state objects behind the API
<kadams54> So that clients of state don't know or care about how they're implemented
<kadams54> http://pastie.org/private/mbzgddvoyee0svattwa
<kadams54> Calling set() would set the field in the current state, and setPrevious() would set the field in the previous state.
<kadams54> But YUI tries to call set('destroyed') as part of destroy()
<hatch> I think usually the states are set as complex objects
<hatch> ohh yeah you're overloading set
<kadams54> Yeah
<hatch> can't do that
<kadams54> Not really overloading
<kadams54> So much as colliding :-)
<kadams54> Or smashing
<hatch> not on a Y.Base derived class (which is, like, all of them :) )
<kadams54> So we'll need to figure out new names
<hatch> haha yeah
<hatch> state.save({...})
<kadams54> It's not really a save
<kadams54> You're updating one field within the state object
<kadams54> update() already exists
<hatch> well...
<kadams54> State objects are really simple right now - they're basically just (to use the python term) dictionariesâ¦
<hatch> save could push the current state into previous, then merge this object over the old one to create the new state
<kadams54>       this._previous = {
<kadams54>         charmID: null,
<kadams54>         querystring: null,
<kadams54>         hash: null,
<kadams54>         search: null,
<kadams54>         viewmode: null
<kadams54>       };
<kadams54> So if you want to update 'charmID' in the this._current state object, you'd call state.set('charmID', 'foo')
<hatch> so instead of needing to 'set' you would state.save({charmID: 1234})
<kadams54> Yeahâ¦
<hatch> and it would merge the two, giving you the value you need
<kadams54> save has conntations for me
<kadams54> It implies a wholesale change of the object
<hatch> save or me means "update and dispatch"
<kadams54> Thinking about the way the mongo API uses it
<kadams54> I'd rather do something like "patch" or "update"
<hatch> so update would also dispatch?
<kadams54> and then figure out a better name for the update method
<kadams54> Not sure what you mean by dispatch
<hatch> after updating the state 'something' needs to dispatch the changes to update the DOM
<hatch> else you're just changing a object
<kadams54> Or you're "just" changing a object
<kadams54> So that it's in the proper state for when a 'navigateView' event fires
<kadams54> And then it can generate the right URL
<kadams54> Which results in the proper parts of the DOM being updated
<kadams54> So nothing is necessarily being dispatched when the various state bits are being updated
<hatch> ohh ok I was thinking of ditching the navigate view business and having state fire a 'dispatch' event which could the trigger the changes on all the listeners
<hatch> because some changes aren't going to be routable
<hatch> like showing the ghost inspector for example
 * kadams54 sticks fingers in ears and says "la la la"
<kadams54> That's not my concern at the moment :-)
<hatch> haha - I have a problem with thinking too far ahead 
<hatch> anyways in YUI there is a convention for providing a single and multiple setter methods
<kadams54> I'm pretty sure rick_h_ explained how non-routable changes were handled, but I forget what he told me
<kadams54> I remember "non-navigable" or something similar being written on the whiteboard
<hatch> setStyle('foo', 'bar') vs setStyles({...}) you may want to do something similar
<hatch> setState() setStates()
<kadams54> Yeah
<kadams54> That would be nice
<kadams54> Although state.setStates() is a bit awkward
<kadams54> We really need a better name for the bits that make up a state
<hatch> how do you mean?
<hatch> if you think of each view as having a 'state' it makes sense
<kadams54> It reads as redundant to me
<hatch> so State is a state manager
<hatch> in a sense
<kadams54> Yeah, it really is
<kadams54> And was called that at one point
<kadams54> But browser.state is shorter that browser.stateManager
<hatch> meh
<hatch> :)
<kadams54> The python developer in me wanted to make it browser.sm
<hatch> you should write go
<hatch> then it could be b.am
<hatch> lol
<kadams54> lol
<hatch> we're gona be stuck with this api for a while so might as well do it 'right' :)
<kadams54> There's a convention in SQLAlchemy to have your model's manager object accessible from an m attribute, so Foobar.m.find(...)
<hatch> whatever that means in this sense haha
<kadams54> Yeah
<kadams54> I think we'll get thereâ¦
<kadams54> rick_h_ and I were talking about how you have to balance small, bite-sized tasks with big picture thinking
<hatch> yup
<kadams54> There needs to be a sense of where things are going (thinking ahead) so that your code is well-ordered
<kadams54> But at some point you have to zoom in again in order to start getting stuff done
<hatch> setState and setStates could fire a 'stateUpdated' method on the stateManager which view/viewManagers could listen for and react to
<hatch> that's probably the cleanest approach and provides a ton of flexibility 
<hatch> I'm not sure how to distinguish between routable and non-routable state changes
<kadams54> Yeah, there's one "clean up these views" method in browser.js that needs to be called after the update()
<hatch> but that's probably for another day )
<hatch> yeah I don't like that
<hatch> well....not that I don't like it
<hatch> I'd prefer a more detached approach
<kadams54> Right now we just explicitly call it, e.g:
<kadams54> this.state.update()
<kadams54> this._cleanOldViews()
<kadams54> But we've talked about that needing to switch to an event-based approach on down the road
<hatch> yeah it would be nice if the state module was a self contained ball which you pushed things into and it told it's listeners when something interesting happened
<kadams54> We've also talked about events in the other direction
<kadams54> That State would subscribe to other events
<kadams54> And then know when it needs to update or save based on those events
<kadams54> Then you wouldn't need to call update() or save() explicitly anywhere
<hatch> hmm that feels like an inversion of responsibility on the face of it...
<hatch> YUI's event system would allow it
<hatch> but my head is stuck on a stateManager being a database of sorts
<hatch> stateManager.listenFor('inspector:showUnit'); // pseudo code
<hatch> nah that's from outside
<hatch> it would have to be
<hatch> this.listenFor('inspector:showUnit')
<hatch> which means the stateManager would have to be updated whenever we added a new interaction to the app.....
<hatch> sorry I'm just thinking about this outloud
<hatch> :)
<kadams54> np
<kadams54> Sometimes you just need a sounding board
<kadams54> Though I'm heading to bed now :-)
 * frankban lunches
<frankban> rick_h_: morning, can we have a call when you have a minute?
<rick_h_> frankban: sure thing
<rick_h_> frankban: https://plus.google.com/hangouts/_/7ecpjl135481h8o5058gu7643s
<hatch> rick_h_ when you're done with frankban I need some guidance on the card I should be working on - I think all the Ready To Code's are blocked
<rick_h_> hatch: k, shoot me a url please
<hatch> just reuse ^ one
<hatch> :) they stay active for a bit...not sure how long without anyone in them 
<frankban> rick_h_: cards created
<rick_h_> frankban: thank you much
<hatch> lol
 * hatch waves 
<rick_h_> oops
<rick_h_> sorry about that, on the mac and bad tap on the trackpad
<hatch> yeah it happens
<hatch> apparently the new air's will not have a clicky trackpad
<rick_h_> anyway, does that help then?
<hatch> I think that's a horrible idea
<hatch> yup
<hatch> thx
<hatch> I'll create a card
<rick_h_> lol cool
<Makyo> Whew, plumber has plans that don't involve digging up the foundation.
<rick_h_> Makyo: always a good thing :)
<hatch> yay
<hatch> I had an issue like that - the pipe between the floor (our water comes in in the basement floor) and the shut off was leaking but the pipe was so short I thought they may need to smash up the floor
<Makyo> Yeah.  Ours is this polybutylene piping that's not been used in years for good reason.  No clue where the fracture is, but at least there's a fix.
<hatch> yeah smashing concrete is not cheap - or fun if you're doing it yourself :)
<rick_h_> yea, had to do that when our sump died
<rick_h_> we had some funky non hole in the ground sump setup with a pump/piping through the floor
<hatch> uh oh....jumpy d3's
<rick_h_> they had to bang out the floor to put in a more usualy sump
<hatch> when I did my basement bathroom I had to smash in a shower drain....and carry out all the broken concrete
<Makyo> hatch, QA on my branch, or trunk?
<Makyo> hatch, also, what do you think about my assets vs utils comment
<Makyo> ?
<hatch> I don't feel very strongly about it
<Makyo> oh, there are the replies, nevermind
<hatch> :)
<hatch> :-)
<Makyo> jujugui call in 10
<rick_h_> jujugui call in 10, kanban please
<rick_h_> curses
<Makyo> Hah!
<Makyo> jujugui call now ish
<frankban> Makyo: branch?
<Makyo> frankban, https://github.com/juju/juju-gui/pull/208
<hatch> so that hangout used up 66% of my battery lol
<hatch> wow
<rick_h_> hatch: yea, killed me here about 50%
<rick_h_> multi HD video is hard, let's go shopping
<hatch> yeah there is a bandwidth scaler but there should really be a quality one too
<hatch> unless the CPU load doesn't change much
<rick_h_> video card load
<hatch> yeah and I have the discrete card too so that can't be easy on the battery
<hatch> this 'moom' looks like it has a nice featureset
<hatch> was kind of hoping for keyboard available scaling though
<hatch> like window resizing in vim
<hatch> pane resizing
<kadams54> If only Mac had vim
<kadams54> ;-)
<hatch> haha - I was looking for one for Sublime, I found it but there is a pretty big bug in it
<hatch> https://github.com/SublimeText/Origami/issues/59
<kadams54> Which reminds meâ¦ time to give Atom a whirl
<hatch> I've seen reviews that it's slower than sublime, it kind of lags, but it is still alpha.....after 6 years
<hatch> lol
<hatch> rick_h_ posted a good link about vim to G+ which makes an excellent case for 'modes' - too bad vim is so non-user friendly to set up and get started with
<hatch> it has the core - someone just needs to write a good UI for it
<rick_h_> yea, learning curve required
<hatch> well even after the learning curve it's not very user friendly
<hatch> package management, trying to find keybindings, etc etc etc
<hatch> I think gvim was maybe trying to do that but didn't go far enough
<rick_h_> part of the learning curve :)
<hatch> lol
<rick_h_> and the board fills back up wheee
<rick_h_> here comes round 3!
<hatch> any idea how we are doing on estimation vs completion?
<rick_h_> hatch: we're doing really well
<hatch> noice
<rick_h_> hatch: so first cycle the math says 2 points per day per dev we did 79/86 points. This time we did 102/100
<rick_h_> so the team is rocking it
<hatch> those both include cards w/o counts too right?
<kadams54> guihelp PR for State API cleanup has landed: https://github.com/juju/juju-gui/pull/209
<hatch> kadams54 on it
<rick_h_> hatch: no, that's just cards with counts. That includes the unsched tag which I get points to
<kadams54> hatch: thanks!
<rick_h_> so it's scheduled and unscheduled work, but not counting cards like "do release"
<hatch> rick_h_ ahh cool
<hatch> awesome
<rick_h_> so first cycle we did 20 points of unsched work, 12 this cycle
<hatch> sounds like we are right where we need to be
<rick_h_> but those go into the 79/102 completion numbers
<rick_h_> hatch: yea, definitely all good and great work from the team
<kadams54> hatch: on vim, use janus: https://github.com/carlhuda/janus
<rick_h_> I'm completely happy to put all this down for mramm
<kadams54> Janus is the Ubuntu of vim - lets you get up and running with a good set of plugins and config
<rick_h_> except don't, I'll argue with kadams54 about it over lunch now
<rick_h_> speaking of which, afk for lunch biab
<kadams54> rick_h_is crazy, but I guess we have a lunch conversation topic :-)
<hatch> lol!
<hatch> kadams54 I'll look at this janus at lunch later thx
<hatch> oo this Amethyst pane manager looks really nice rick_h_  
<hatch> hmm saving the db is not going to work
<hatch> deltas or commands might be the best way
<hatch> well it would work
<hatch> but it's a lot of work
<hatch> ehhhh maybe
<hatch> https://twitter.com/FromAnEgg/status/449598755239497728 anyone?
<rick_h_> hatch: can you not just json.dumps(complex) ?
<rick_h_> hatch: JSON.stringify(window.location)
<rick_h_> then copy/pate?
<rick_h_> paste?
<hatch> yeah I was hoping for a plugin or a script or something
<hatch> so that we could generate these outputs easily for demo purposes and the like
<rick_h_> stick some dev utils on app? 
<rick_h_> app.dev.dumpDB()
<rick_h_> ?
<hatch> yeah I just don't want to write it myself
<hatch> it feels like something that should exist
<rick_h_> JSON.stringify exists? You just need a few lines in a function to walk the data you want to output
<rick_h_> I feel like I'm missing something that makes this larger/harder than it seems
<hatch> I want to pass a complex object the output from a db parse method to a json stringify which will then save that output to a text file on disk
<hatch> I'd like it to not have to rely on the user to have to open the console and do manual work
<hatch> it's probably easy to do via the File API but I'm asking the hivemind before i put any time on it :)'
<rick_h_> hatch: but this is for 5 devs, and we'll cache the 'suggested base' 
<hatch> they always ask for more demo materials lol
<hatch> but I suppose
 * hatch scales back
<rick_h_> hatch: yea this is a helper for us to get through the next few weeks of dev
<rick_h_> not a published feature for 'users'
<rick_h_> so scale back to 'I can debug easier than now'
<rick_h_> type levels
<rick_h_> please :)
<hatch> Oh Kay
<hatch> btw you should take a look at Amethyst it looked like it was more along the lines of the requirements
<hatch> for the pane manager
<rick_h_> hatch: very cool then will try that one as well
<rick_h_> back on linux now with a proper tiling WM :)
<hatch> hah yeah - I think I'll install Amethyst tonight and give it a go - window management has been a big gripe of mine for osx
<hatch> interestingly enough there is a max length for a console output heh
<hatch> darn
<hatch> hmm interesting, apparently we rely on more than just the db
<hatch> :)
<hatch> ok pushing into the db is not going to work
<hatch> going to have to rely on deltas like we do with real envs
<hatch> but first....lunch
<rick_h_> jujugui I'm running out a bit early today. Thanks for the great cycle and have a good weekend! It'll be a fun next cycle. 
<Makyo> Cheers, hav ea good weekend
<hatch> kadams54 I'm not sure YUIDoc has a crosslink syntax like you had used there
<hatch> kinda too bad really
<hatch> http://yui.github.io/yuidoc/syntax/index.html
<hatch> oh it does
<hatch> look at that
<hatch> craaaazy
<hatch> learn something new every day
<kadams54> Hah, yeah. Was just going to paste this: http://yui.github.io/yuidoc/syntax/index.html#cross-referencing-modules-and-classes
<kadams54> But then you spoiled my big "booyah" moment
<hatch> lol
<hatch> that must be newish
<hatch> I haven't seen any of this hbs stuff before
<kadams54> hatch: FYI, just finished incorporating all of your feedback into PR209
<hatch> cool - I see I was outvoted with the api calls
<kadams54> current is now getCurrent, parseRequest is loadRequest
 * hatch crys
<hatch> :P
<hatch> I'll live with getCurrent
<kadams54> It's a compromise, and you know what that meansâ¦
<kadams54> Nobody is happy :-)
<hatch> rofl!
<kadams54> hatch: wondering if this is the Safari Selenium bug? http://ci.jujugui.org:8080/job/juju-gui/640/console
<hatch> F(*@&#_)@)($)(*@$)&%*(#(#
<hatch> yes
<kadams54> Waitâ¦ it seems to be in Firefox
<kadams54> JUJU_GUI_TEST_BROWSER="firefox" make test-browser-mocha
<hatch> oh interesting
<hatch> hmmmm
<hatch> did rick_h_  get you a login for jenkins yet?
<kadams54> no
<hatch> looks like it's running again
<hatch> odd...
<hatch> guess we'll see
<kadams54> Yeah, the second build started right up after the firstâ¦ was also puzzled by that.
<hatch> must have been queued up from a change
<kadams54> Fingers crossed.
<hatch> I wonder if we are using an old version of anything 
<hatch> where an upgrade may fix this
<hatch> yeah looks like we are running an older version of selenium
<hatch> one version back mind you
<hatch> but might be worth an upgrade
<kadams54> Same error second time around. Grrrâ¦
<kadams54> hatch: you OK with me doing a :shipit: on the PR?
<hatch> yup let'r rip
<hatch> kadams54 looks like it's not passing
<hatch> in firefox now
<hatch> lemme take a look at the failure
<hatch> lol
<hatch> https://github.com/juju/juju-gui/blob/develop/test/browser.py#L205-L209
<kadams54> *sigh*
<kadams54> It doesn't look like the CI is picking up my :shipit: commentâ¦
<hatch> it did
<hatch> "Status: merge request accepted...."
<kadams54> Oh, yeah, n/m
<kadams54> Just saw that show up
<hatch> to debug ci we might need to run it from an ec2 instance or the like
<hatch> I think this might be a selenium bug
<hatch> er sauce labs & selenium
<hatch> it might be caused by the api not returning properly
<hatch> kadams54 `url = '%s%s' % (self._url, path)` is this just a string replace?
<kadams54> Yeah
<hatch> ok I see the problem....now why is it being caused...
<kadams54> Equivalent of `url = self._url + path`
<hatch> somehow that's returning None
<hatch> so self._url and path would both need to be None?
<hatch> RemoteConnection
<hatch> ok I 'think' that the issue is that the api is not connecting
<kadams54> Even if both of those were None, you'd still end up with a stringâ¦
<kadams54> >>> foo = '%s%s' % (None, None)
<kadams54> >>> foo
<kadams54> 'NoneNone'
<hatch> that's very odd then, no?
<kadams54> Yes, very odd.
<hatch> somehow the merge run is going off properly
<hatch> this has to be a connection issue with the saucelabs api
<hatch> stepping through the code that's what it looks like is going on...
<hatch> I'm wondering if somehow it makes a connection then gets cut off
<hatch> then when it tries to do the url bits there isn't anything there any longer
<hatch> because the only difference between the merge project and the PR one is the port 
<kadams54> I'm heading out for the weekend - if it's still an issue on Monday, I'll help dig into it
<hatch> have a good weekend
<hatch> cya
<kadams54> You too
<hatch> lazyPower creating an environment and then logging into it from multiple computers seems to be a real question people are asking....do you simply need to copy the environments.yaml from machine to machine?
<lazyPower> You should copy the entire .juju directory from machine to machine, or use a jump host
<hatch> if someone deletes this .juju/ would they be sol?
<marcoceppi> hatch: pretty much
<marcoceppi> unless you've backed up the environment
<marcoceppi> hatch: there's a .jenv which has the keys required to do the SSL auth to the api server, etc
<hatch> is this being addressed? Maybe by caching it in the bootstrap node?
<marcoceppi> i mean, your environment will continue running
<hatch> this is just me spitballing, I'll write up a blog post about it too just so there is something to point ppl to
<hatch> right, but you can't juju with it :)
<marcoceppi> you just won't be able to connect to it anymore
<rick_h_> marcoceppi: "just won't be able to connect" to your production environment seems scary
<rick_h_> I know I hit this in our azure env for CI. 
<marcoceppi> same problem if you delete your .ssh directory
<rick_h_> as I was blowing things away because of using the dev juju releases in trusty
<marcoceppi> I mean, we can only safe guard people so far
<rick_h_> except I write to that, not a magic service
<rick_h_> right
<marcoceppi> rick_h_: there's a backup command to backup your environment connect data
<rick_h_> marcoceppi: oh ok, so maybe I need to cron up some form of backup using that as I sync my .ssh dir around my machines
<hatch> marcoceppi oh really?
<hatch> I didn't know about this command
<rick_h_> it's a bit easier to sync ssh because you dno't have a local on each machine that's different/etc
<marcoceppi> juju backup I believe
<marcoceppi> it has no help stuff though
<rick_h_> hatch: yea, good thing to look into and write up. I know it's something others have hit 
<marcoceppi> there's a juju backup and juju restore
<hatch> ahh yeah it's missing from the juju help commands list
<rick_h_> hatch: how did the 'load the data' go today?
<marcoceppi> hatch: it's a plugin
<marcoceppi> juju help plugins
<marcoceppi> but it doesn't have an -h flag, at least not on the version juju I'm running
<hatch> rick_h_ I know what won't work :) we are going to have to simulate a 'delta' 
<hatch> so a little more work but should work just like you're interacting with a real env....I hope
<rick_h_> hatch: ok interesting
<rick_h_> hatch: also see CI got angry but looks like it's satisfied now
<hatch> rick_h_ open a develop instance and then paste this in the console https://gist.github.com/0cea96d605a2b8cbb2c7 and run preload()
<hatch> you can open the inspector but nothing works....
<hatch> even moving the service blocks doesn't keep the relation lines tracking
<rick_h_> lol
<rick_h_> yea, not enough metadata bound material
<rick_h_> databound/etc
<rick_h_> ok, well an initial delta seems quite sane, even what happens when we load from a real env
<hatch> rick_h_ yeah I spent some time tracking down the CI issue - I'm pretty confident it's a connection issue between sauce and our ci
<rick_h_> so look forward to seeing a way to trick that into the websocket client stuff
<rick_h_> hatch: yea, it's what I think as well. Just something in the tubes and depending on where the tests are at the time you get different issues
<hatch> yeah I'm a little concerned about the sandbox env having to parse deltas.....we'll see
<rick_h_> hatch: but it's not in canonistack/proxied and such so not sure how to make it better for sauce
<hatch> rick_h_ yeah - there are very odd python issues.....somehow url is a NoneType when it should be a String
<hatch> I THINK the azure networking isn't so good
<hatch> or maybe it's just the machines we are on
<rick_h_> hatch: hmm, I guess we could try to bring it up on ec2 for a few weeks and compare. 
<hatch> it might be another symptom of the http request issue....just so slow it hangs up....maybe?
<rick_h_> takes a little bit to get it resetup and to get this size of machine on ec2 would be more $$
<hatch> marcoceppi thanks for the information 
<rick_h_> hatch: k, well I think a test is worthwhile so will try to see if we can find time to tinker with that. At least narrow it to our tests or the platform
<hatch> yeah - what about DigiOcean? 
<hatch> should be pretty cheap
<rick_h_> well, this thing needs several GB of ram to run <3 java
<hatch> ohh
<rick_h_> and we're using two machines
<hatch> damn java
<rick_h_> but I can run a 4 or 8gb ec2 box for a couple of weeks
<rick_h_> and compare
<hatch> would be cool if we could use a single box and run all these services with juju :)
<rick_h_> and my setup scripts will be about the same since they're both juju providers
<rick_h_> right, it would be cool to make the lander a subordinate and get a 'juju action' for a jenkins backup/restore
<hatch> how could of a story would this be? Azure wasn't working so we pointed our env to ec2 and it 'just-worked' :)
<rick_h_> it's the story we're working towards for sure
<hatch> s/could/good
<hatch> jcsackett let me know if you want to work on the ghost charm - a partner might be what I need to get me moving on it :) I also want to start using it so.... :)
<rick_h_> hatch: take a peek at https://github.com/jdorn/juju-gui/compare/develop...json-editor-service-config if you get some time
<rick_h_> hatch: it might be something I'll ask you to peek at and talk with jeremy about some in the coming weeks
<jcsackett> hatch: i'm totally game to work on it again. i can't believe it's been since like october since i last touched it.
<hatch> rick_h_ ok no problem - I have a problem with generating forms outside of a templating system but maybe I can be convinced :)
<rick_h_> hatch: well, it can be tweaked :)
<rick_h_> hatch: and besides, what do we do now? 
<hatch> jcsackett hah yeah I did some work fairly recently on it to start getting it closer to being ready but that darn http interface has just been glaring at me
<hatch> rick_h_ PE - we render the markup with the template then use delegation on the fields
<rick_h_> hatch: gotcha
<jcsackett> hatch: setting up http-relation isn't terrible hard, iirc.
<rick_h_> hatch: yea, the implementation needs some tweaking to fit our code but I love the general idea of sticking to a better schema. 
<jcsackett> hatch: if i get some time this weekend, might be able to put something together.
<rick_h_> hatch: so we might have to hold a couple of talks on databinding needs, rendering needs, etc
<hatch> jcsackett no but I end up in analysis paralyses because I'm trying to build it so it can do load balancing and everything lol
<hatch> jcsackett that would be very cool
<rick_h_> hatch: baby steps man :)
<jcsackett> hatch: oh, yeah. don't do that. just make it work first. :p
<rick_h_> hatch: linux wasn't built in a day
<hatch> rick_h_ tbh I see value in a react like system for this stuff
<rick_h_> hatch: what's react got to do with it?
<rick_h_> hatch: as far as a schema/validation/etc?
<hatch> the databinding
<hatch> validation could be done using a similar technique to what we are doing now 
<hatch> I don't see why the validation rules can't be put in the YAML as well
<rick_h_> I guess I still need to look at the *how* for that. I mean nothing prevents us from shadow dom'ing things etc. 
<rick_h_> hatch: they will in a sense
<rick_h_> the Schema will support field that define valid
<rick_h_> so by working to the schema we'll have things in the yaml to provide validation rules
<rick_h_> that will have to be tied to the databinding
<rick_h_> hatch: anywa, just a general fyi. 
<hatch> yeah there is lots to chat about
 * rick_h_ has melted brain and is going to run back away
<hatch> haha
<hatch> jcsackett I've been hoping someone would write a nginx charm which we could use for http
<hatch> that has not happened yet unfortunately
<hatch> jcsackett there is also things like 'how do we theme a juju deployed ghost blog', 'how do we backup', etc etc
<jcsackett> hatch: yeah, charming up nginx is beyond me. but that would be nice.
<jcsackett> and the themeing and stuff is definitely an open question, esp now that they have actual themes.
<hatch> yeah....
<hatch> so my plan is to create a bundle which deploys apache, mysql, ghost all to a boostrap node
<hatch> and a bundle which makes them all separate
<hatch> should be a good first step for a 'public' release
<hatch> I also have to migrate my blog posts and urls from tumblr to ghost so that's another thing I have to keep in mind
<hatch> so I think I 'need' apache for that
<hatch> or nginx of course
<hatch> but yeah....no nginx charm
<hatch__> rick_h_ oops, thanks for finding that other bug
<hatch> moom is working pretty cool
<hatch> have some layouts defined
#juju-gui 2014-03-30
<huwshimi> Morning
<rick_h_> morning huwshimi 
#juju-gui 2015-03-23
<jcastro> is search in the docs supposed to work or not work?
<huwshimi> jcastro: Where are you seeing it not work?
<jcastro> huwshimi, https://jujucharms.com/docs/1.20/getting-started
<jcastro> and I searched for "charm helpers" as an example
<jcastro> https://jujucharms.com/docs/search/?text=charm+helpers
<huwshimi> jcastro: That should work :)
<jcastro> yeah but like search for "azure"
<jcastro> works fine
<huwshimi> jcastro: That's strange it appears searches with "charm" in them don't work. Very strange
<jcastro> hah awesome
<huwshimi> :)
<jcastro> should I file a bug?
<rick_h_> jcastro: interesting, the fulltext search starts to knock out words that occur too often
<huwshimi> jcastro: Yes please!
<rick_h_> jcastro: I wonder if charm is just a term that gets killed off because it's on every p[age
<jcastro> yeah
<jcastro> aha
<jcastro> dude, I put it in quotes, works fine: https://jujucharms.com/docs/search/?text=%22charm+helpers%22
<rick_h_> jcastro: yea, so that probably triggered the search differently as "" means exactly this
<jcastro> yeah
<rick_h_> jcastro: so yea, file a bug with any terms and we can look into ways we can optizmize elasticsearch's parser, but be clear what you'd like to come up on such a search
<rick_h_> e.g. when you search for charm, what pages are you hoping to see at the top, so we're not just working on  'some results' but 'good results'
<jcastro> https://github.com/CanonicalLtd/jujucharms.com/issues/67
<jcastro> rick_h_, I saw the sitemaps went live too, I can really tell a difference when using google
<jcastro> all marco needs to do now is blow away the github mirror and that should fix just about all my SEO complaints
<rick_h_> jcastro: cool yea made it into the deployment thurs
<rick_h_> jcastro: once we finish the multi-version docs stuff hopefully we'll be really on the money for taking off like a rocket ship on this stuff
<jcastro> ack
#juju-gui 2015-03-24
<lp|sprint> o/ Morning GUI
<rick_h_> lp|sprint: morning
<lp|sprint> or rather, morning UX team :)
<rick_h_> UI Eng team
<rick_h_> UX team is Ale's team with luca and company
<lp|sprint> some day, i will get it right
<rick_h_> :)
<lp|sprint> #thestruggleisreal
<rick_h_> #knowyourteams
<jrwren> I'm on the team and I don't get it right.
<lp|sprint> seems legit
<rick_h_> it's easier when you use the short name
<rick_h_> MostAwesomeTeamEvar!
<rick_h_> :P
<jrwren> that is how I remember it.
<hatch> jcastro: can you update your answer to http://askubuntu.com/questions/600802/update-someone-elses-chrams-in-the-juju-charm-store to include instructions for non-promulgated charms (which the charms in question are)
<jcastro> yeah
<jcastro> on it, having internet issues
<hatch> I can - just didn\'t want to duplicate work :)
<hatch> jcastro: thanks - we should probably add that to the docs, no?
<jcastro> that entire page makes me cry
<hatch> haha
<jcastro> we'll hit it up this week during the sprint
<hatch> how goes the sprint?
<jcastro> good
#juju-gui 2015-03-25
<mbruzek> rick_h_: thanks for adding us to the analytics
<rick_h_> mbruzek: np
<Spizmar_> Hi, hatch directed me here with a problem.
<rick_h_> Spizmar_: drop it on us
<hatch> hey Spizmar_ 
<Spizmar_> I delete my environment and boot strap it, and deploy juju-gui, and some other charms, relations and expose them
<Spizmar_> When I point to the juju-gui server (which is the bootstrap machine), the browser just spins,
<hatch> http://askubuntu.com/questions/600872/juju-gui-web-server-hangs-what-server-does-it-use
<hatch> Spizmar_: the images you're using for your environment - do they have python installed?
<Spizmar_> This would not normally shosk me, as I am new to this and have broken about everything i've touched, but I do this all through a script, which I can upload, and the scriupt has worked fine, previiously.
<Spizmar_> If they need it, they had it three days ago, as I am doing everything locally, and have not refreshed any images for weeks.
<hatch> ok so you have the gui deployed now and are you getting the python.h error again?
<rick_h_> Spizmar_: what version of juju and juju-gui are you using?
<rick_h_> hatch: Spizmar_ don't worry about the python.h error. It's just a performance speed up that it can use if it's available, but not required
<hatch> rick_h_: ohh ok - I thought gui wasn't building
<rick_h_> hatch: Spizmar_ focus on why the gui can't talk to the server. I'm guessing there's a network issue or something there
<Spizmar_> Thank you.  Let me check.  I was just assosiating that with the octave-controller problem
<rick_h_> hatch: you can find out for sure if it's running by running 'ps aux' on the box and looking for the guiserver. And checking the /var/log/upstart/guiserver.log
<rick_h_> Spizmar_: it could be, I'm not sure what octave is
<rick_h_> Spizmar_: if you deploy multiple services onto the same machine you have to watch out for what ports they use
<hatch> ahh octave is being d eployed to the same machine...
<rick_h_> hatch: right, all that is getting sent to machine 0
<rick_h_> hatch: so I'd walk with Spizmar_ through looking at the browser console for connection issues, (network tab/etc) 
<hatch> yeah sounds good
<rick_h_> hatch: and then going through the guiserver.log to see if it can't start/run due to ports being conflicting or the like
<rick_h_> hatch: in which case, set the gui to run on a different port (8080 or the like) and see if that helps at all
 * rick_h_ runs away now for a while and leaves it in hatch's capable hands
<rick_h_> hatch: Spizmar_ and if you figure it out make sure to update the AU question please
<Spizmar_> Octave-controller is being deployed on a different machine, octave, which doesn't use python, is being deployed on the bootstrap machine, but it was when it worked.  I was modifying the octave-controller install script when this happened, which is deployed on a different machine.
<hatch> Spizmar_: ok so lets start from the beginning
<hatch> ps -aux | grep guiserver
 * hatch spins up local env to work along side
<Spizmar_> juju-gui is running, because I just got a warning that this is not a trusted machine, which is expected behavior.
<hatch> oh ok so when you say you get the spinner you actually get the GUI spinner?
<hatch> grey background and the like?
<hatch> Does it say "Loading the GUI" or "Connecting to Environment" ?
<Spizmar_> Nope.  I was too hopefull.  guiserver is not running.
<hatch> oh ok then
<hatch> :) 
<hatch> ok ssh into the machine and open up /var/log/upstart/guiserver.log
<Spizmar_> let me strip my script down to just destroying my env, bootstrapping and deploying juju-gui.
<hatch> sure
<Spizmar_> Wait one
<hatch> np
<Spizmar_> What do you want me to look for
<hatch> something which indicates why it's not running :)
<Spizmar_> Because that is a lot faster than a boot strap
<hatch> is this a MAAS environment?
<Spizmar_> yes.
<Spizmar_> I just tried to login from the maas server machine so I could copy and paste, and it looks like I'm here, but there is no one elase here.
<hatch> you ran 'juju ssh juju-gui/0' ?
<Spizmar_> iostream:409 error on read while listening on port 443, if that helps. (/var/log/upstart/guiserver.log)
<Spizmar_> No, I tried to get into #juju-gui on freenode from my maas server.
<hatch> ahh ok so something else is using 443
<hatch> netstat -tulpn | grep :443
<hatch> or you can change the port for the GUI if you need to as well
<Spizmar_> LOL  Let me try that.  I have expertise to do that at hand, and the guy who wrote the octave stuff hasn't returned any emails :)
<hatch> you'll need to run that netstat on the machine you have the gui deployed to
<Spizmar_> It was not that.  No processes came up using that search.  And it is in the tornado libraries, which is where the compiler presented the error.
<hatch> yeah for some reason it is not able to bind to that port
<hatch> you could try setting it to another port and then tail the log
<hatch> juju set juju-gui port=8888
<hatch> from the 'client' machine
<Spizmar_> My mistake, there is something listening there.  I had exited and was running the netstat on my maas server.
<Spizmar_> On the client machine, it does not know about the "juju" command.
<hatch> the machine which you typed 'juju deploy' on is the client machine, sorry :)
<Spizmar_> OK, did that, now I get an immediate failure to connect, and 10:0:1:21:8888spins
<hatch> https://10.0.1.21:8888
<Spizmar_> Yes
<hatch> ok and does the guiserver.log have anything in it? Or is it running now
<hatch> you should get an ssl error because of the self signed cert in the browser
<hatch> I'm assuming of course that your machine allows connections to 8888 :)
<hatch> you may want to find out what else is listening on 443 and kill it if it's not supposed to be there
<Spizmar_> It says start juju gui ver, ets, and listening on port 8888
<hatch> ok and if you run netstat on that machine it shows that it's listening on 8888?
<Spizmar_> Yes, on IP4 & ip6.  I did sudo ufw disable, and retried the connection from the maas server and it still spins.  I'm going to find a different unused port, try it from the maas server to see how fast ibefore it complains, then change the juju-gui port, and try it again, and see how long that takes.
<Spizmar_> After that, I'm going to run the script with the other charms removed and see how it works.
<hatch> yeah you should start with a fresh image because it seems like something is preventing the server from talking out
<Spizmar_> The thing that was on port 443 is gone.   I think juju-gui was the thing holding the port.
<hatch> Spizmar_: ok so if 443 is open again lets change the gui back to 443, tailing the logs, see if it boots up properly
<hatch> I just tested a local env and aws env and the latest gui deployed properly so I know that it's working as far as LXC and AWS are concerned :)
<Spizmar_> btw, I tried port 222, firefox immediately recognized there wasn't anything there, then I changed the juju-gui port, and it is spinning away.
<hatch> so the guiserver log isn't showing anything when you try and access that port?
<hatch> it's really hard to debug this over irc haha - I'd probably install lynx on the same machine the guiserver is on and see if it can access it
<Spizmar_> Sorry about that, my connection froze.  What was the last thing you saw from me, hatch?
<hatch> that you tried 222
<hatch> I was saying I would install lynx to the GUi machine to see if I could access it locally - rule out any firewall business
<Spizmar_> I can tell you that my corporate firewall will rule that out.  Between the two machines is a blank managed switch.  The two machines have both had ufw disabled.
<Spizmar_> I tried 222, and firefox immediately detected that there was nothing there, I switched juju-gui's port to 222, and firefox started spinning.
<hatch> but nothing showed up in the guiserver logs?
<Spizmar_> I changed it back to 443 and rebooted it, and it came up fine, in the sense that there were no additional errors in the log, but it displays the same symptoms.
<hatch> what if you try chrome/ium?
<Spizmar_> The log showed the change in the ports, though.
<hatch> to rule out the browser we could also try this
<hatch> wget https://10.0.1.21/juju-ui/version.js
<hatch> wget --no-check-certificate https://10.0.1.21/juju-ui/version.js
<hatch> sorry
<hatch> wget --no-check-certificate https://10.0.1.21/juju-ui/version.js
<hatch> Spizmar_: did you get that ^
<Spizmar_> And again.  Corporate has the IRC port blocked so I can't use a client and this webchat thing is not looking too stable.
<hatch> might be time to set up a proxy :)
<Spizmar_> Well, juju gui server version is 0.4.2
<hatch> I was trying to see if the guiserver is working - if it is it will return the that file
<hatch> 0.4.2?
<Spizmar_> 0,4,2 is from the log file, it did return the file.  Not sure what to do with it.
<hatch> cat version.js
<hatch> ok it returned the file! 
<hatch> that means the server is running and that you can access it
<hatch> and that something firefoxy is causing the issue
<hatch> are there any errors in the browser console?
<hatch> I'd be very interested to know if you can access it using chrome/chromium
<Spizmar_> I'm already pushing real hard on ITs envelope by having the maas server connected, and bringing up an HPC cluster they don't own
<hatch> :) keep pushing!
<Spizmar_> Firefox debugger says "this page has no souce"
<Spizmar_> I do :)  I just make sure the fights have a good purpose
<hatch> ok this is very odd - because clearly the guiserver is working if you got the version.js file downloaded
<hatch> but firefox will not open the page
<Spizmar_> So what file should it be down loading, or what should be constructing the text, that it isn't getting?
<hatch> well did that wget download the file?
<hatch> you should have seen some sort of progress bar
<hatch> sorry I've just been assuming you're on Ubuntu....
<hatch> what machine are you working from :)
<hatch> Spizmar_: I think that I might know what the issue is - can you follow this https://support.mozilla.org/en-US/kb/refresh-firefox-reset-add-ons-and-settings
<Spizmar_> Yes, the system I'm doing this work on is ubuntu.  The system I'm on right now is win7.  My chairs runners are getting a workout.
<Spizmar_> The version was 1.3.3, BTW
<hatch> haha
<hatch> ok new enough :)
<Spizmar_> And in the middle, I am grazing on my lunch
<hatch> lunch, must be west coast?
<Spizmar_> Do you want me top  go ahead and do the rebuild?
<Spizmar_> LA, but it's 1530 here
<Spizmar_> "Running late and keeping you up to date"
<hatch> well I want to get a fresh profile - see this issue https://bugs.launchpad.net/juju-gui/+bug/1397296
<mup> Bug #1397296: GUI inaccessible in Firefox 33.0 <hs-arm64> <landscape> <juju-gui:Confirmed for hatch> <https://launchpad.net/bugs/1397296>
<Spizmar_> I can see the +bug, the second says I don't need to know.  I'm reading.
<Spizmar_> I had to do a reboot of the maas server yesterday, and I don't remember what the updates were, if firefox had an update.
<hatch> yeah I'd be interested to know if you try a new profile as noted in that bug if you can access it
<Spizmar_> trying to bring it up on my maas server
<Spizmar_> Did the refresh, It has no effect on the symptoms.  I'm going to do the rebuild.
<hatch> *hmph* I'm running out of ideas 
<hatch> :)
<Spizmar_> Unless you want any of the logs or the bootstrap debug output?
<hatch> nah - see the server is working because you were able to download that js file
<Spizmar_> Hey, I ran out ideas yesterday :)
<hatch> and your network is allowing the connection (because you were able to download the file)
<hatch> so that leaves us at the browser?!?
<Spizmar_> OK, I will download chrome.
<hatch> shhh don't tell IT
<Spizmar_> I'm not even sure they've heard Microsoft has killed IR
<Spizmar_> IE
<hatch> haha 
<hatch> that will be awesome when IE goes evergreen
<Spizmar_> It is all they support, with a list of our own sites you have to use other browsers to use.
<Spizmar_> went right to it.  Expect a wave of these, as the new update of whatever was updated trickles down to peoples juju-gui machines.
<hatch> so you did a fresh firefox install?
<Spizmar_> Do you know how I can list what was updated yesterday, so we can weed through them to find out which one it was, if you want?
<hatch> sorry I have no idea...
<hatch> or you tried with chrome you mean
<Spizmar_> I didn't update firefox.
<Spizmar_> I tried with chrome and it works great.
<Spizmar_> That means something in yesterdays install broke something.
<hatch> damn...
<Spizmar_> I don't know if it directly broke firefox, or if it broke something one that is used by juju-gui, and that breaks fire fox.
<hatch> Would you be able to comment on that launchpad bug saying that you are having the same issue and the reset settings fix did not work
<Spizmar_> Sure will.
<hatch> thanks! 
<hatch> of course this doesn't fix your issue - but at least if you comment on the bug you'll be notified when we figure out what's going on...
<Spizmar_> That you!  I get very bull dog when I'm tired, and I'm tired, and I'd never have thought of using a different browser.
<hatch> the issue with this bug is that noone on the GUI team can reproduce it
<hatch> but obviously it's an issue heh
<Spizmar_> LOL! It fixes MY problem I could care less if it's firefox or chrome!
<hatch> haha yay! Well now you can go update the AU question :)
<Spizmar_> I think this update probably makes it a lot easier to reproduce.  I never had the problem before yesterday.
<hatch> hmm nope, even after the update still works fine here...
<hatch> *close* WFM! lol jk
<Spizmar_> After a boostrap?
<hatch> yep
<Spizmar_> Well, it may not make it easier for you, but it may make it easier for us out her :)
<hatch> well I'm glad I got you going again at least :)
<Spizmar_> Me too.  Is there a channel for charms in general, or for apache, or a place to see what channels there are?
<hatch> #juju and #juju-dev
<hatch> #juju-dev is mostly for actual juju development
<hatch> so you're probably looking for #juju
<Spizmar_> Great, thanks!
<hatch> there is also the juju mailing list - juju at lists dot ubuntu dot com
<Spizmar_> I'm heading off to put the anser in the question have a good one!
<hatch> you too, cya
#juju-gui 2015-03-26
<jcastro> hey rick_h_, is http://www.jujugui.org/ ours?
<jrwren> jcastro: its our dev/qa environment
<jcastro> jrwren, marco was thinking we should look at this from an seo perspective
<jrwren> jcastro: oh no, is it returning results? I thought we had a robots there which says no crawling, but maybe we removed it.
<jcastro> who owns it? if we could double check that that'd be awesome
<jrwren> jcastro: i have acccess. its a little maas in rick_h_ basement
<urulama> jrwren: maybe just taking it of port 80 would be enough ... we do have robots.txt, but come to think of it, we probably have the same one as for jujugui :S
<marcoceppi_> urulama: jrwren or just having it htaccess password protected
#juju-gui 2015-03-29
<jamil_ahsant> HI; Is juju-gui translatable and RTL-able? (https://translations.launchpad.net/juju-gui)
<jamil_ahsant> Is juju-gui translatable and RTL-able? (https://translations.launchpad.net/juju-gui)
#juju-gui 2016-03-31
<dooferlad> hi, I am about to start debugging an embedded GUI issue and need to know how to get started with it. Can someone help?
<dooferlad> ah, worked it out (read the source!)
#juju-gui 2016-04-01
<deanman> Hi, i would like to make a minor customization on the gui for a demo presentaiton. In detail, i would like to make a small border on the top frame. Any tips ?
<urulama_> hi, deanman 
<urulama> deanman: we don't really encourage to change the UI, as it's been thoroughly user tested and design carefully considered to be as it is
<urulama> deanman: may i ask what that border would gain you?
<deanman> it's some plain "beautifying" for demo purposes only
<urulama> deanman: and you need the gui to run in a real model? or just build it and run it in sanbox mode, no real models involved?
<urulama> asking as that has implications that you'll also have to build the gui and put it in a charm and deploy it 
<deanman> urulama, initially we simply modified a bit the css on a deployed gui charm, then we started considering whether we can tweak it even more and clone the code
<deanman> It was a bit difficult to dig into this framework you are using, so that's why thought asking here, maybe some hints since we simply want a simple dib with a background color on top menu bar.
<deanman> div*
<urulama> antdillon: ^ can you give a quick pointer to deanman here, please
<urulama> deanman: changing deployed gui will be easy, otherwise you'll have to go through whole packaging and charming process
<urulama> deanman: as it's open source you can clone it and create your own charm, of course
<deanman> urulama, Thanks for the chat, well from first look it seems that the HTML is built somehow dynamically and we cannot change it once deploy, we can only customize the CSS.
<deanman> deployed*
<antdillon> deanman, would you be able to add a top border to the html element via the inspector and show that in the presentation?
<deanman> antdillon, well i could but some would be checking the provided link offline so it wouldn't be the same exprience, but anyway, css customization it's fine for now. 
<deanman> urulama, Do you plan to update juju-gui for 2.0 ? Or any plans on changing the framework ?
<urulama> deanman: you mean juju 2.0?
<deanman> urulama, yeah!
<urulama> deanman: it's already supported, you can use beta3 or less with it
<urulama> deanman: framework? we use react, it's something we like :)
<antdillon> deanman, if you have access to the deployed HTML you could add a css file to the header as a means to inject css remotely
<deanman> I meant the YUI library
<urulama> deanman: oh, yes :) that is in plan
<deanman> Any clues to which framework are you thiking to switch to ?
<urulama> no final decision yet
<kjackal> Hey everyone, what is the process for removing a charm from the store? eg https://jujucharms.com/apache-zookeeper/trusty/0 that is not deployable anymore
<kjackal> That is revision 0 is not working. https://jujucharms.com/apache-zookeeper/trusty/1 is fine
<urulama> kjackal: we don't remove revisions that are broken, but we do have a better publishing process in place, which will be announce soon
<urulama> kjackal: i mean, if it's revision 0 and you already have revision 1, we don't remove revision 0 ATM
<kjackal> thank you urulama, I assume there is on our roadmap to have a process to remove them at some point, right? Becuse the broken revision is the first hit in a google search
<urulama> kjackal: yes, it is
 * hatch waves to rick_h_
<rick_h_> :)
#juju-gui 2017-03-29
<bdx> I'm experiencing what appears to be serious lag on the beta controller
<bdx> is the beta controller slammed right now?
<rick_h> bdx: sec, which cloud/region? What commands are slow? Let me get inside and I'll.pull up the metrics.
<bdx> rick_h: `juju status` seems to be lagging .... my applications seem to be lagging in their reacting to eachothers relations/changes
<rick_h> bdx: which cloud/region so I can check the right controllers
<bdx> rick_h: aws/us-east-1
<rick_h> bdx: looking into it
<rick_h> bdx: I've got a support ticket in. I'm at a bowling league at the moment but will keep an eye on the status on my laptop and see if I can find any news. 
<bdx> rick_h: sweet, thx
<rick_h> bdx: the metrics was turned off due to the issue earlier today. I've gotten that turned back on. Nothing looks funny. One of them has trace debugging on so turning that off and will keep an eye on it. 
<rick_h> bdx: but nothing looks off currently. Will watch. 
#juju-gui 2017-03-30
<bdx> rick_h: yeah .. the best way I can describe what I'm experiencing is "controller lag"
<bdx> I'm experiencing it now
<bdx> us-east-1
<bdx> my model has been sitting like this for 5 minutes http://paste.ubuntu.com/24278678/
<bdx> I'm wondering if this controller/model lag has anything to do with the fact I've deployed so many machines to this model, and so many revs of the same charms?
<bdx> the prm-worker-prod instances are c3.xlarges .... they usually just blast right through getting all the deps installed
<bdx> so, this is why I think the lag I'm experiencing has to do with the long/large history of my model
<bdx> ^^ because if/when I create a new model and deploy everything the exact same way it works without a hitch
<bdx> but the more deploys I send off on this model, the slower it gets
<bdx> I know it sounds odd
<bdx> but now that I'm thinking about it, I've experienced this behavior before, when I have had loaded models with long history
<bdx> beta-controller-peeps:^^
<bdx> heres the model uuid -> 38efd3e5-70da-42a3-8d0c-84d4cc0c5835
<bdx> not sure if that will give you any insight, but it seems like that model is crashing or something
<bdx> thats the best way I can describe it
<urulama> bdx: that region was fixed now, let me know if it's still sluggish. the number of machines and units shouldn't be an issue at all (as we're not talking thousands :D) 
<urulama> bdx: are agents in a ready state?
<bdx> urulama: it was complete choas
<bdx> urulama: creating a new model was the fix
<bdx> urulama: every deploy was getting slower and slower, and each more unpredictable as far as what state things would end up in 
<bdx> urulama: @anastasiamac posted a list of bugs that are fixed in 2.2, to me it looks like what I was experiencing might be fixed in 2.2 then
<bdx> urulama: bug # 1671258, bug # 1651291, bug # 1634328, bug # 1587644, bug # 1581069, bug # 1649719 
<bdx> *chaos
<bdx> urulama: to be clear, I can take the same bundle that was relentlessly failing and sluggish, and deploy it in a new model and see things work correctly, and in a fraction of the time 
<urulama> bdx: hey, sorry, out for the day ... you still see slow models even now?
<urulama> bdx: update to 2.2 will get production to as soon it is final, sometime end of April 
<urulama> bdx: so, we need to resolve what's going on with your model
<urulama> bdx: and agents are all "alive"?
<bdx> urulama: I destroyed it
<bdx> I needed the new model to have the same name
<bdx> urulama: I've actually hit this a few times .... I had previously destroyed the affected models, and started on a clean slate and had the same results 
<bdx> urulama: let me see if I can recreate this for you
<urulama> bdx: hm, controllers are fully instrumented and they're not showing any high CPU load or Mem issues
<urulama> bdx: so, could be something "interesting"
<bdx> urulama: thats what rick_h was saying last night when the issue was at its worst
<bdx> urulama: that the controllers looked fine ... he couldn't identify any resource contention or high load
<bdx> urulama: I'll be afk till monday after today ... possibly I should try to recreate this and ping you on monday 
<urulama> bdx: perfect, i'm out tomorrow as well :)
<urulama> bdx: but yes, let's get to the root of this
<urulama> bdx: maybe a good test would be trying on GCE ... just to eliminate the provider issue
<bdx> urulama: yeah ... I don't have gce creds though 
<urulama> bdx: ok, worst case, i'll create a model on GCE and share it with you so that you can deploy to it
<bdx> urulama: if you want to go ahead and do that, I'll start sending deploys while I'm at my desk today
<bdx> oh ... your out today ... well just ping me whenever you get back to it then, or I'll get in touch on monday 
<urulama> bdx: you should see the model if you go to your profile page 
<bdx> urulama: nice, I see it
<urulama> bdx: i hope i have enough vcpu's free to be able to deploy all that :D
<bdx> urulama: well ... 
<bdx> urulama: I think I broke it already ... not sure its the same issue I was experiencing last night, but things seem "stuck" to say the least
<urulama> bdx: it doesn't look good ... don't think it'll even finish
<bdx> yeah ... 
<urulama> bdx: lemme poke at controllers
<bdx> k
<urulama> bdx: is this a bundle?
<urulama> bdx: something that i can poke at outside of jaas, or even on 2.2-tip?
<bdx> urulama: I just deployed canonical-kubernetes + ubuntux10 + my personal bundle
<bdx> urulama: if I add you to my launchpad team, you could deploy it
<urulama> bdx: ok, np, we'll build something equivalent to test
<bdx> urulama: its prm-web and worker are just rails apps
<bdx> urulama: each with relations to redis, postgres, and haproxy
<urulama> kk
<bdx> nothing special
<bdx> urulama: yeah ... so we could do it more incrementally .... that doesn't explain why the machines are stuck though
<bdx> I'll remove all the apps from the model for now
<urulama> bdx: that's what i was thinking to test ... is it a bulk of api calls too much to handle and should it be incremental deploy
<rick_h> bdx: yea, the native juju deploy bundle work has been known to choke on some large bundles like big openstack deploys. I wonder if chunking it will help or using the deployer vs juju deploy. 
<rick_h> bdx: the deployer has some built in timing/retry stuff in that juju doesn't do (as it should be updated to just work better as a bugfix tbh)
<bdx> rick_h: ahhh, that doesn't explain this http://paste.ubuntu.com/24282721/
<rick_h> bdx: no, but just a heads up. It's a known issue with the current bundle deploy w/o JAAS. 
<bdx> but yeah ... good things to keep in mind ... I mean, my bundle only has 6 applications
<bdx> rick_h: I see
<rick_h> 84 machines? wow
<bdx> yeah .. but none of them leave my model
<bdx> *the model
<bdx> the first 40 deployed fine via bundle
<bdx> then I killed them off, and tried to redeploy and "cCRasHHH"
<bdx> but they didn't realy die completely from juju's perspective at least
<bdx> they are gone!
<bdx> it just took 10 mins
<bdx> unless one of you did something to clear it out 
<urulama> nope, didn't touch it, but the model is empty now
<rick_h> bdx: no, but since juju does serialize things I'm not surprised. 
<bdx> seems to be working fine now
<urulama> bdx: one machine?
<bdx> yeah
<urulama> bdx: yeah, i think it's the amount of concurrent requests ... we'll do some scale testing next week and will keep you posted
<bdx> ok
<urulama> bdx: so, i'm gonna deploy canonical-kubernetes there, then add 10x ubuntu, then add more, but with delays. just to check
<urulama> bdx: ah, you're already doing it :)
<bdx> urulama: ok, yeah  ... I figured I should just iterate on bringin CDK up and down a few times in the model to ramp up the history
<bdx> do what you wil
<rick_h> urulama: might be something for someone while I'm away to update the stress tool to be able to deploy to the same model over and over vs new models. 
<urulama> rick_h: i don't think it's deploy/destroy, it's just "deploy N services" concurrently
<rick_h> urulama: gotcha ok. I wasn't sure if you were trying to increase the size of the history of events/etc. 
<bdx> rick_h, urulama: I had upgraded the charms on my model many times ... I'm wondering how much revision history comes in to play here too
<rick_h> bdx: that used to just cause issues with disk space over time but that's been corrected before/during juju2 and so I don't know of any current issues there
<bdx> ok
<bdx> so, I only had < 5 charms deployed over 10 instances, and the lagg was appearant even when only one instance was deploying, or a single unit added 
<rick_h> bdx: on gce or the aws from last night?
<urulama> rick_h: gce was even worse than aws
<rick_h> urulama: :/ ok
<bdx> yesterday/lastnight - AWS
<rick_h> bdx: ah ok gotcha. I thought you were saying just now. 
<urulama> balloons: i think we'll have to do new set of scaling tests. this time, ha controllers, and then "juju deploy" a large bundle (with say 80 machines, lots of relations). the bundle doesn't have to make sense, but the point is to find the amount of concurrent requests set to the controller that "breaks" it (ie, mongo transactions can't handle them anymore)
<urulama> uiteam: ^
<bdx> urulama: I'm wondering if we remove all the ubuntu boxes, and just deploy another CDK bundle, if the controller would still be lagging as it is now
<bdx> or the model per say
<bdx> or if we just removed everything, do you think we would still experience the lag that we are seeing righ tnow?
<urulama> it should work as normal again once everything is removed
<urulama> there
<urulama> last units can't be processed
<urulama> last units can't be processed
<urulama> oops
<bdx> urulama: do you mind if I kill "ubuntu", and deploy a second k8s?
<urulama> bdx: go ahead, but with a delay just to make sure, as cleaning 100 machines will take some time
<urulama> bdx: ok, i can reproduce this for the test now. after your deploy of k8s. i'll destroy the model and we'll look into this. will keep you posted. for now, advice would be to deploy in chunks
<bdx> urulama: I'm glad we have exposed this issue, but it would only be the same as the one I've experienced if the sluggish behavior stuck around following the removal of all the instances
<urulama> ok, then go ahead, let's verify what happens
<bdx> what I was experiencing was a 500x sluggish model with only 10 instances
<bdx> ok
<bdx> oh .. even that already is clearly more responsive then what I was experiencing
<bdx> I would remove an application, and it would take minutes before `juju status` even updatede
<urulama> i've removed all machines for ubuntu, this should put some stress to the controller
<urulama> bdx: ok, seems that model is stuck, nothing gets in our out anymore ... funny thing is, that controller is not affected and i am able to deploy from another model. never seen this before :)
 * urulama has destroyed the model
<bdx> urulama: you destroyed it?
<urulama> bdx: yeah, had to, the model was not responding at all anymore and didn't want to leave 100 machines around
<urulama> (had to remove them from the console in the end)
<bdx> urulama: i see ... wow
<urulama> bdx: yeah :-/ looks like fun week ahead :) 
