/srv/irclogs.ubuntu.com/2013/03/27/#juju-gui.txt

=== rick_h_97 is now known as rick_h_droid
hatch6/6 IE, 6/6 Firefox, 6/6 Chrome01:03
* hatch drops mic and walks off stage01:03
bcsallerhatch: on ec2?01:04
hatchyup01:04
bcsallerthat is very good, you should try re-enabling the deploy test on IE tomorrow and see if it works with the fixes01:05
hatchyeah will do - it's 7 and I'm pretty frustrated with it now so I think I'll end the day on a win01:05
hatchhaha01:05
bcsallerhatch: I said tomorrow :)01:06
hatchyup I saw that :)01:06
bcsallerin that case, good job and have a good night01:07
hatchthanks, you too01:07
=== _mup__ is now known as _mup_
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?09:56
rogpeppefrankban_: i think that's a reasonable approach10:02
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?10:08
rogpeppefrankban_: i think it would probably be better to use the unit agent directory10:09
rogpeppefrankban_: i can't remember if it's possible for a charm to find its unit name though10:10
rogpeppefrankban_: you could just choose an arbitrary agent.conf file from /var/lib/juju/agents/*.conf10:10
frankban_rogpeppe: AFAICT, the agent.conf file in the unit directory does not include the API address10:11
rogpeppei mean /var/lib/juju/agents/*/agent.conf10:11
rogpeppefrankban_: it *should* do...10:11
rogpeppefrankban_: you're right, it doesn't10:12
rogpeppefrankban_: 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.10:13
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 ..10:14
rogpeppefrankban_: that's true. in fact that's a better way than hardcoding /var/lib/juju/agents10:14
rogpeppefrankban_: because you will be inside the agent dir already, i think10:15
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.10:16
rogpeppefrankban_: +1 to the latter10:16
rogpeppefrankban_: there's no particular reason that the juju directory must live in /var/lib/juju10:17
frankban_rogpeppe: ... but the presence of an agent.conf is meaningful, and it did not exist in pyjuju, right?10:18
rogpeppefrankban_: exactly10:18
frankban_rogpeppe: cool. re the api address. so, is it a bug? is it supposed to be stored in the unit's agent.conf?10:19
rogpeppefrankban_: i'll make a change to add the API info to the uniter agent.conf - it will need to be there eventually anyway10:19
rogpeppefrankban_: currently the uniter doesn't communicate through the API10:19
frankban_rogpeppe: ok, I'll check in the machine for now, and switch to the uniter once ready10:20
rogpeppefrankban_: sounds good10:20
rogpeppefrankban_: i wonder if it might be nice to have an officially supported callback that gives the API server address10:21
frankban_rogpeppe: you mean, a hook command? it would be great10:21
rogpeppefrankban_: yeah. we'd have to think about the implications though10:22
frankban_rogpeppe: or an env var10:22
rogpeppefrankban_: yeah, that's a nice possibility too10:22
frankban_rogpeppe: cool, thanks10:27
=== teknico_ is now known as teknico
=== teknico_ is now known as teknico
=== bcsaller_ is now known as bcsaller
=== BradCrittenden is now known as bac
gary_posterteknico, thanks for Monday national holiday submission12:19
teknicogary_poster, it's not an April Fool, I promise! :-)12:25
gary_poster:-)12:25
gary_posterhey benji your rietveld diff for landscape is geborken12:31
benjigary_poster: yeah, I'm trying to streighten it out12:32
gary_postertry reproposing, or merging trunk and reproposing?12:32
gary_posterk cool12:32
gary_posterhey benji, lock in bottom right should be replaced with triangle as well12:35
gary_posterneed screenshot or screenshare?12:36
benjihmm, I thought I did that, checking12:36
benjiaparently not, thanks!12:36
gary_posterwelcome12:36
benjigary_poster: fixed: https://codereview.appspot.com/803804512:44
gary_postercool will look12:44
benjihatch: if you're still interested in reviewing https://codereview.appspot.com/8038045 I have fixed the diffs12:45
benjigary_poster: I did have to resize one of the graphics, but I think it turned out OK12:45
gary_posterok12:45
gary_posterbenji LGTM12:49
gary_posterty12:49
benjicool12:49
frankban_behold the juju-core charm! https://ec2-54-224-95-37.compute-1.amazonaws.com/12:52
gary_posterfrankban_, awesome! :-)12:55
gary_posterquantal?12:55
frankban_gary_poster: quantal bootstrap node, precise juju-gui12:56
gary_posterah! makes sense12:56
gary_postercool12:56
gary_posterfrankban, 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?13:00
gary_posterI mean, switch source to lp:juju-gui13:00
frankban_gary_poster: already did 1 minute ago :-)13:00
frankban_waiting13:00
benjinote that you will have to use firefox and you will have to visit the websocket url via HTTPS first to accept the certificate13:00
gary_postercool13:00
gary_posterbenji, not in charm13:01
benjioh yeah, I forgot it is proxied there13:01
gary_poster\o/ :-)13:01
gary_poster\o/ for the charm good ness I mean13:01
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.13:11
=== frankban_ is now known as frankban
gary_posterfrankban, :-/ but that's why we have another week or two to iron things out13:11
gary_posterfrankban, could you file those two obvious bugs and make cards please?13:12
frankbangary_poster: anyway, the prototype seems to work well :-). sure13:12
gary_posteryes frankban!  yay for charm :-)13:12
frankbangary_poster: could you please try to duplicate the second bug?13:13
gary_posterfrankban, 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 confirm13:16
gary_posterrogpeppe, ^^^ 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?13:17
rogpeppegary_poster: cool!13:17
rogpeppegary_poster: the bugs are in the js side?13:17
gary_posterrogpeppe, 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.  13:18
gary_posterrogpeppe, we will get confirmation13:18
frankbangary_poster: trying to find the logs13:19
gary_posterthanks frankban 13:19
gary_posterfrankban, document it after you figure it out ;-) .  and maybe ask roger if you think it would go faster13:19
gary_posterbut your call13:19
rogpeppegary_poster: "when it falls over"... when the API server falls over?13:24
gary_posterrogpeppe, 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 error13:25
frankbangary_poster, rogpeppe: this is interesting: http://pastebin.ubuntu.com/5652266/13:26
gary_posterprecisely13:27
rogpeppefrankban: yeah, that is interesting13:27
* rogpeppe wishes json ave a little more context for its error messages.13:27
rogpeppes/ave/gave/13:27
rogpeppefrankban: i see the problem13:28
gary_posterrogpeppe, 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 around13:28
rogpeppefrankban: well, the superficial problem anyway13:29
rogpeppefrankban: you're sending null for ConfigYAML, not ""13:29
rogpeppefrankban: but the API server shouldn't chuck out clients that produce badly formed requests, i think13:30
gary_posterrogpeppe, extra points if Go side can convert JSON null to type equivalent :-)13:30
rogpeppefrankban: i'll look into fixing that13:30
gary_posterthank you rogpeppe 13:30
frankbanrogpeppe: that's a problem for sure. I think gary_poster was suggesting that we should no be disconnected after an invalid request13:30
rogpeppegary_poster: in later versions of Go a null becomes an empty string13:31
rogpeppegary_poster: unfortunately we're using an old version13:31
gary_posterrogpeppe, ok cool. :-/ but good that it will be better.  will that be changed for 13.04?13:31
gary_posterwell...13:32
rogpeppegary_poster: probably not. go 1.1 is due out soon, but i very much doubt it'll be there for 13.0413:32
gary_posterrogpeppe, 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?13:33
gary_posterif any version of go at all, in fact13:33
rogpeppegary_poster: perhaps, but we tend to standardise on using the version of the language which is distributed as standard13:34
frankbangary_poster, rogpeppe : from that log, I suspect there is another error: after logging in again and obtained the watcher id, the "Next" request fails13:34
rogpeppegary_poster: which is why we're using 1.0.2 not 1.0.313:34
rogpeppefrankban: you'll need to call WatchAll again13:34
rogpeppefrankban: or perhaps you *are* doing that?13:34
frankbanrogpeppe: ISTM that we do that, RequestId 813:35
gary_posterrogpeppe, if that has negative effects on the Juju experience, maybe that's worth reconsidering, but conversation for later13:35
rogpeppegary_poster: yeah. quite a lot of nice changes coming: http://tip.golang.org/doc/go1.113:35
rogpeppefrankban: can you post a log of events? (how does the Next request fail?)13:36
gary_posterhttp://pastebin.ubuntu.com/5652266/13:36
frankbanyes13:36
rogpeppegary_poster: thanks. interrresting.13:37
rogpeppegary_poster: i'll have an investigate after i've done what i'm currently doing13:39
gary_posterfrankban, I wonder if GoEnvironment._send_rpc ought to strip out all nulls before sending?13:39
gary_posterrogpeppe, thanks13:39
rogpeppegary_poster: that sounds like a reasonable approach13:39
gary_postercool rogpeppe thanks13:40
rogpeppegary_poster: assuming you can't just stem the nulls at source, of course13:41
gary_posterrogpeppe, we can, but idiomatically sending nulls in JS is quite reasonable13:41
rogpeppegary_poster: right13:41
rogpeppegary_poster: i think that's why they changed the behaviour in later Go versions.13:42
gary_posteryeah13:42
gary_posterrogpeppe, if I were going to stir up trouble about th1 1.1-for-releases thing, would I do it on the juju-dev list?13:42
rogpeppegary_poster: well, i'd wait until 1.1 is actually released :-)13:43
gary_posterheh, ok, I'll hold horses :-)13:43
frankbanrogpeppe: I confirm the "Next" call always fails with "unknown watcher id" 13:44
rogpeppefrankban: yeah, seems odd. there's something fishy going on :-)13:45
* benji looks forlornly at https://codereview.appspot.com/8038045, hoping for a second review.13:45
* gary_poster has done his duty13:46
rick_h_benji: I'll take a peek if that helps13:47
benjirick_h_: it would, thanks.  It's a simple branch.13:47
frankbangary_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?13:47
gary_posterhatch, 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 correlated13:47
rogpeppefrankban: +113:48
gary_posterfrankban yes on 1, yes on 2.  For 3, it does work sometimes, yeah?13:48
gary_posterbenji, did you see Next working? ^^13:48
gary_postervia the GUI13:48
rogpeppefrankban: if you could file 2 and 3 with some code that reliably reproduces the issues, that would be lovely.13:48
gary_posterrogpeppe, how about JSON API calls?13:49
gary_posterrather than code, per se13:49
rogpeppegary_poster: that would be fine actually, yeah13:49
benjigary_poster: I got a service to show up in the gui, so I assume so, but I didn't check that in particular13:49
gary_postercool13:49
frankbangary_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.13:49
gary_posterbenji, yeah it must have worked then13:49
gary_posterbenji, what did you do to prepare for that test?13:50
hatchgoooood morning13:50
gary_posterhey hatch13:50
benjigary_poster: I deployed go-juju and did the certificate dance13:51
benjiand tweaked the GUI config to point to the right place13:51
gary_posterhatch, 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 though13:52
gary_posterhttp://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.application_cache13:52
gary_posterbenji, did you have any services deployed?13:52
benjiyep, I deployed mysql13:52
gary_postervia command line13:53
gary_posteron same series13:53
benjiyep and I guess so... :)13:53
gary_posterbenji did you deploy go juju from source (-update-whatever or something like that) or from release?13:54
benjifrom source13:54
gary_posterhm13:54
benjijuju bootstrap -e ec2 --upload-tools13:54
gary_posterright13:54
hatchgary_poster: lol even the source doesn't show anything13:54
gary_posteryeah I know tried that too :-_)13:55
gary_poster:-)13:55
gary_posterI think it is exposed Java13:55
hatchprint('hi') # prints hi13:55
hatchlol13:55
benjimy trunk checkout is probably several days old, so it might have broken recently13:55
hatchgary_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 browser13:56
bacgary_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?13:56
hatchnot that that helped solve the issue - BUT it might help with the caching one13:57
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?13:58
gary_posterbenji 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 inst13:58
gary_posterructions13:58
hatchrick_h_ yup13:58
gary_posterfrankban, unless you are already digging into #3 and are interested :-)13:58
gary_posterI don't mean to rip it away from you but want to let you get back to the charm13:59
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 doh13:59
gary_posterhatch, cool!  good to know, thanks13:59
benjigary_poster: sure.  I'll even read the scroll back to figure out what y'all are talking about. ;)13:59
gary_posterbenji :-) thanks13:59
gary_posterbac, um. thinking13:59
gary_posterbac, can you just ignore the ghosts?14:00
gary_posterand then pay attention when they become real?14:00
gary_posterbecause they will change their charm urls when they become real14:00
benjiout of context quote for the day: "bac, can you just ignore the ghosts?"14:00
bacgary_poster: i don't think so because the actual deployment doesn't generate the modellist 'add' event i'm looking for14:00
gary_posterso that listener that you already need for charm changes will work14:00
gary_posterbenji :-)14:01
gary_posterbac, you see what I mean?14:01
gary_posteroh14:01
gary_posterthe charm won't change14:01
gary_posterhm14:01
bacgary_poster: hmm, listen for services 'add' to force the charm to load and then listen for another event to actually process it?14:01
gary_posterbac, it would be more like this in theory (not sure it would work):14:02
gary_posterservices add: force charm to load.  14:02
gary_posterno try again14:02
frankbangary_poster: sounds good. I have a code snipped that reproduces the "Next" bug: http://pastebin.ubuntu.com/5652357/14:03
gary_posterbac, guichat in 5?14:03
frankbanrogpeppe: ^^^14:03
bacok14:03
hatchrick_h_ why are we converting to yui responsive but leaving the bootstrap responsive css in there?14:03
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 :/14:04
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 part14:04
hatchbut we have responsive and not responsive bootstrap loaded14:04
hatchwe need both?14:04
gary_posterrock, 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! 14:04
hatchok well I guess just to get this ball rolling14:04
rick_h_hatch: the idea was to remove bootstrap with the new redesign. Go YUI, and use the YUI bits in the new browser code14:04
gary_posterand then file a bug :-)14:04
frankbangary_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.com14:05
bcsallerbac: 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 queue14:05
_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 >14:05
* benji looks14:05
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 js14:05
hatchalright done14:06
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 lol14:06
bacbcsaller: let me look at that14:07
benjiMicrosoft is now sending me spam about developing Windows phone apps to my @canonical.com email address.14:11
hatchrick_h_ so do I need to QA https://codereview.appspot.com/8043043 ? or is it still a WIP?14:15
hatchbenji: well what are you waiting for? get coding!14:15
* benji begins porting xterm to Windows phone.14:16
bacgary_poster: i'm in guichat14:18
gary_posterI'm not :-)14:21
gary_posterbut will be there soon14:21
goodspud_Could you please send me the link to the gui hangout 14:27
goodspud_Currently stuck in a pub 14:28
Makyohttp://tinyurl.com/guichat14:28
bcsaller*stuck*14:28
gary_posterjujugui call in 2, bring party hats for goodspud 14:28
bac_worse fates14:28
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.14:29
teknicogrr, telecom broke both lines *again* :-P14:42
teknicorogpeppe, is it possible to debug while running juju-core tests? something like import pdb; pdb.set_trace() in python14:48
=== teknico is now known as teknico_mobile
goodspudHi all. Apologies about the pub meeting. I'm blaming Greg. 14:55
rogpeppeteknico_mobile: theoretically you can use gdb, although i haven't tried it when running tests.14:55
rogpeppeteknico_mobile: i've always found it easier to insert printfs :-)14:56
teknico_mobilerogpeppe, I need to get the info about a newly created relation from the API client14:56
teknico_mobilerogpeppe, 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-214:56
rick_h_hatch: https://codereview.appspot.com/8055043 is the updated/resubmitted branch if you get time.14:56
teknico_mobileI'll need to get relation endpoints, interface and scope, even if I'm not totally sure what they are :-)14:57
=== teknico_ is now known as teknico_mobile_
goodspudbac_, 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.15:01
Makyogoodspud, cheers, it's been great15:01
bac_me too goodspud15:01
gary_posterBest wishes and thanks goodspud 15:01
rick_h_3goodspud party on! 15:01
bcsallergoodspud: hopefully we'll see you again 15:01
hatchgoodspud: likewise! Be sure to poke your head in here from time to time :)15:01
benjigoodspud: I hate to see you go!  Have fun at your next stop.15:01
teknico_mobile_goodspud, it's been a pleasure, sad to see you go. Please come back soon! :-)15:02
rogpeppeteknico_mobile: what was the rationale for making juju add-relation print the resulting relation to stdout?15:02
rogpeppeteknico_mobile_: or did it do that before?15:03
teknico_mobile_rogpeppe, a likely mistaken attempt to get those values out, modeled on get.go :-)15:03
teknico_mobile_rogpeppe, no, it did not15:03
teknico_mobile_rogpeppe, stand by, switching net connections...15:04
* rogpeppe stands well out of the way15:04
teknicothat's better, I hope it lasts :-P15:05
teknicorogpeppe, is the rest of the diff vaguely reasonable?15:06
rogpeppeteknico: i'm wondering why you need to return interface and scope separately from endpoints15:07
rogpeppeteknico: i think both of those are derivable from the endpoints15:07
teknicorogpeppe, are they? we use to get those from pyjuju, and use them when adding a relation in the gui15:08
teknicoI mean, we get those explicitly from pyjuju15:09
rogpeppeteknico: i guess it depends what you mean by an "endpoint"15:09
rogpeppeteknico: in the go state, it's a struct containing service name, interface, relation name, role and scope15:09
rogpeppeteknico: but it looks like you're expecting to return a simple string that specifies an endpoint.15:10
rogpeppeteknico: and in fact, i think that would be good, as we use a similar string elsewhere15:10
rogpeppeteknico: so the endpoint identifier would be service:relationname15:11
teknico_rogpeppe, this gui test shows what I expect: http://pastebin.ubuntu.com/5652518/15:12
teknico_oh, and I need the relation id too15:12
rogpeppeteknico: hmm, the "{'mysql': {'name': 'database'}}" thing seems a bit odd15:13
rogpeppeteknico_: can there be more than one thing in that outer map?15:13
teknico__rogpeppe, yeah, I guess it's a pyjuju thing, it's actually more like {'mysql': {'name': 'database', 'role': 'server'}}15:14
teknico__but I can massage that in the gui based on what I get from juju15:15
rogpeppeteknico_: i'd be tempted just to send back the endpoints as returned by Relation.Endpoint(svcName).15:15
=== teknico__ is now known as teknico
rogpeppeteknico: unless there's a compelling reason to do otherwise.15:16
rogpeppeteknico: less work (on the Go side at any rate!) to do15:16
teknicorogpeppe, what shape would they have? and how do I get relation id, interface and scope from them?15:17
rogpeppeteknico: http://paste.ubuntu.com/5652527/15:17
=== teknico__ is now known as teknico_mobile
hatchgary_poster: I wonder if the if/try/except in charm_panel_loaded is required anylonger now that we are destroying it15:21
teknico_mobile(sorry, landlines are still unstable, I'm back to mobile)15:22
gary_posterhatch try it :-)15:22
teknico_mobilerogpeppe, that's good, so I return two of those Endpoints and deal with the data on the GUI side15:22
rogpeppeteknico_mobile: yes, but there's a catch15:23
teknico_mobilerogpeppe, state.AddRelation returns a Relation, so I need to get the Endpoints from it15:23
rogpeppeteknico_mobile: that's not the catch :-)15:24
hatchgary_poster: can do15:24
teknico_mobileit was too easy, I guess :-)15:24
hatch`from retry import retry` is this a typo or some python mumbo jumbo? :)15:24
hatch^ gary_poster15:24
gary_posterhatch, from [MODULE] retry import [FUNCTION] retry15:24
hatchahh :)15:25
rogpeppeteknico_mobile: the catch is that you can't use state.Endpoint from api15:26
benjigary_poster: here is a tweaked vertion of the Next bug repro script that works: http://paste.ubuntu.com/5652551/15:26
rogpeppeteknico_mobile: so... me and fwereade have come up with a cunning plan15:26
benjiI 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.15:26
hatchis Friday a holiday for everyone?15:27
teknico_mobilerogpeppe, yeah, (not really) following ;-) on #juju-dev15:28
teknico_mobilehatch, nope15:30
hatchhmm the calendar is confusing me15:32
hatchheh15:32
hatchgary_poster: have you seen success with the self.driver.refresh() ?15:35
frankbanrogpeppe: filed bug 116097115:38
_mup_Bug #1160971: WebSocket disconnects when an invalid request is sent <juju-core:New> <juju-gui:Triaged> < https://launchpad.net/bugs/1160971 >15:38
rogpeppefrankban: thanks15:38
hatchin python the exe() command does it concat items on each line?16:03
frankbanhatch: exe? 16:05
hatchoh16:05
hatchself.driver.execute_script heh16:05
hatchok...in python when you have strings across multiple lines16:06
hatchwill it concat them without spaces?16:06
frankbanhatch: yes, even if they are in the same line16:07
hatchok thanks - I didn't want to make this change and then have it break 20mins into running hah16:07
teknico_mobilerogpeppe, what happens now? how can I help you to help me?16:09
frankbanhatch: for multiple lines the strings must be inside round brackets16:09
rogpeppeteknico_mobile: i'm just doing the branch that will move this forward16:09
rogpeppeteknico_mobile: i've put Name into charm.Relation (tests now pass)16:09
gary_posterhatch 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 hurt16:14
hatchpfft -according to modern media "correlation === causation"16:15
hatch;)16:15
gary_poster:-)16:15
teknico_mobilerogpeppe, however statecmd.AddRelation calls state.AddRelation, which in turn returns state.Relation, not charm.Relation16:17
teknico_mobilerogpeppe, or are you changing that too?16:17
gary_posterbenji, so your fixed script (the Id change) represents how the GUI needs to change16:18
rogpeppeteknico_mobile: that's fine. state.Relation.Endpoint will probably return charm.Relation16:18
gary_posterbenji, see http://pastebin.ubuntu.com/5652266/16:18
gary_posterline 1316:18
gary_posterthat's a log from the GUI talking with Go16:18
benjigary_poster: I believe so.  I'm working on a branch to make the GUI work properly.16:19
gary_posterbenji, perfect thank you16:19
benjiI need to make a card.16:19
gary_posterand a bug if you feel really excited but not required16:19
benjiThat would be the right thing to do, so I guess I will. :)16:20
gary_posterok bac, sorry, can talk now.  when is good for you?  I have another scheduled call in 3 hours16:21
hatchgary_poster: bcsaller using EC2 during bootstrap have you ever seen an error saying that the DNS lookup failed for s3.amazonaws.com ?16:35
gary_posterno16:35
gary_posterunless my network was hosed :-)16:36
hatchhmm ok it happened a couple times last night and this morning16:36
hatchso it might just be my network16:37
benjiI'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.16:40
gary_posterbenji in what context16:40
gary_postertests?16:40
benjijust the app running16:41
benjithis is the only error I see:16:41
benjiError: not well-formed16:41
benjiSource File: http://jujucharms.com/search/json?search_text=series%3Aprecise%20owner%3Acharmers16:41
benjiLine: 1, Column: 116:41
benjiSource Code:16:41
benji{16:42
gary_posterbenji with make devel?  Anyway, in other contexts, this is a symptom of our console manager squelching, which we want in production16:42
gary_posterto try and see if that is the case...16:42
benjiyep, make devel16:42
gary_posterand fix it...16:42
gary_poster1 sec getting details16:42
benjihmm, that is a possibility, looking16:42
gary_posterbenji, just type "console" in console16:43
gary_posterif it is JS object with noop methods then you are being squelched16:43
benjiif only I could... my Firefox locks up if I start the dev tools16:43
gary_posteryou can then type consoleManager.native()16:44
gary_posteroh you may have deeper problems :-P16:44
benjiI haven't tried today.  Maybe it has turned over a new leaf.16:44
benjiheh, that is a certainty16:44
benjiyep, Firefox is broken.  It is totally locked up and at 106.8% CPU (good job on the multi-processing, guys)16:45
gary_posterheh16:45
benjiI have started it in "safe mode" (which disables all extenstions) and have the same results.16:46
benjiI guess I need to go down that rabbit hole before I can make progress on this bug.16:47
hatchgary_poster: looks like the IE test deploy passes :)16:54
gary_posterhatch, awesome!!16:54
hatchso all 6 tests pass on ec2 :)16:55
gary_posterhatch I have one other trivial change on my branch, to make juju failures give us more information.16:55
gary_posterMaybe merge, and I'm also going to merge yours16:55
gary_posterand test on canonistack16:55
gary_posterwhere it should work fine16:55
hatchsounds like a plan16:55
gary_posterassuming canonistack itself works16:55
hatchlol16:55
hatchwith 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 python16:56
gary_posterhatch, 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-in16:58
gary_posterI'll recuse myself :-)16:58
hatchoh alright - I'm not really 'for' it just an idea16:58
hatchwell that's a lie16:59
gary_posterlol16:59
hatchI am for it because I know node haha16:59
hatchbut it's not that learning python is a bad thing :)16:59
gary_poster:-)16:59
gary_posterbac_, pinged you before, but repinging you in case you did not see17:05
gary_posterI may have pinged bac17:05
bac_gary_poster: ack17:05
=== bac_ is now known as bac
gary_posterbac, can talk any time17:06
gary_postertill 3 17:06
bacgary_poster: ok.  let me re-up my beverage17:06
gary_posterk17:06
bacupped17:08
hatchgary_poster: I was just starting on this documentation and I'm thinking we should pair on it17:08
hatchif you have time later17:08
gary_posterhatch, can do17:08
hatchwe'll probably produce better docs that way17:08
rogpeppeteknico: i've done a CL to make it feasible to return charm.Relation instead of state.Endpoint: https://codereview.appspot.com/8055044/17:29
teknicorogpeppe, thanks, looking17:29
teknicorogpeppe, wow, a bit on the big side :-)17:30
rogpeppeteknico: it's almost all mechanical changes17:30
rogpeppeteknico: it was a pain to do though17:31
teknicorogpeppe, hopefully it's going to be useful for more than my immediate problem17:32
rogpeppeteknico: yeah, it feels better actually17:32
rogpeppeteknico: and a lot of the changes are to use field names rather than unnamed fields in struct literals, which is a good change anyway17:33
rogpeppeteknico: the alternative was to define a parallel-universe Endpoint in params, and i really don't think that's worth doing.17:35
teknicorogpeppe, so, how about an example of how I use this? you mentioned calling state.Relation.Endpoint...17:36
rogpeppeteknico: so, you've just called AddRelation between two services, right?17:36
rogpeppeteknico: that gives you a Relation17:37
rogpeppeteknico: you can call r.Endpoint(svc1) and r.Endpoint(svc2)17:37
teknicorogpeppe, yes, in state/statecmd/addrelation.go17:37
rogpeppeteknico: which will give you the Relation values you want to return.17:37
rogpeppeteknico: i suggest returning Relations []charm.Relation17:38
rogpeppeteknico: where the first item is the relation for the first service, and the second is the relation for the second service17:38
rogpeppeteknico: oh yes, state.Endpoint now embeds charm.Relation17:38
teknicorogpeppe, however in that context I don't have the services, only args.Endpoints17:39
rogpeppeteknico: you've got the service names, right?17:39
rogpeppeteknico: and the Relation?17:39
rogpeppeteknico: state.Relation, that is17:39
teknicorogpeppe, yes, I have state.Relation returned by state.AddRelation17:40
teknicorogpeppe, how do I get the service names from the endpoint names?17:40
rogpeppeteknico: you've already got the service names, no?17:40
teknico(that's what is in args.Endpoints, right?)17:40
rogpeppeteknico: i guess so, one mo17:41
teknicorogpeppe, http://bazaar.launchpad.net/~teknico/juju-core/support-add-relation-in-go-env-2/view/head:/state/statecmd/addrelation.go17:41
rogpeppeteknico: ah yes.17:41
rogpeppeteknico: you can get the service names from the endpoints returned by InferEndpoints, i think17:42
teknicorogpeppe, yes, I see it now17:46
rogpeppeteknico: cool17:46
rogpeppeteknico: it's possible you might want to return map[serviceName]charm.Relation actually17:47
teknicorogpeppe, right17:48
teknicorogpeppe, thanks for all this17:49
rogpeppeteknico: no probs17:49
teknicorogpeppe, one more thing though :-)17:49
teknicois there any concept of a relation id? I can't see it anywhere17:49
hatchgary_poster: so that last jenkins test failed - but it actually passed17:49
gary_posterhatch wondered about that but on call will ping17:49
hatchit looks like it failed because some of the resources 404'd17:49
hatchoh alright17:50
gary_posterhatch guichat?18:00
hatchsure18:00
rogpeppegary_poster: this should fix the rpc connection-dropping issue: https://codereview.appspot.com/751805218:19
rogpeppeteknico: not really18:19
rogpeppeteknico: a relation id is just the concatenation of the two relation names18:19
rogpeppeteknico: sorry i didn't see your message earlier18:20
teknicorogpeppe, no problem18:20
teknicorogpeppe, I see. pyjuju returns stuff like relation-0000000118:20
gary_posterawesome thanks rogpeppe 18:21
rogpeppeteknico: yeah. we don't have relation ids like that18:21
rogpeppegary_poster: np!18:21
teknicorogpeppe, I guess concatenating the relation names should still be unique and amenable to the same purpose18:21
rogpeppeteknico: that's the idea, yeah18:21
rogpeppeteknico: that's what you'll see in the RelationInfo too18:21
rogpeppeteknico: (as returned by the AllWatcher)18:22
teknicorogpeppe, ah, so the concept has already been explored, great18:22
teknico great, tomorrow we'll see how this goes :-)18:23
teknicobye all, have a nice evening/afternoon/whatever!18:24
rogpeppeteknico: see ya!18:24
rick_h_hatch: did yuo get a sec to poke at qa on https://codereview.appspot.com/8055043/ ?18:30
hatchnegative, I can do that now18:31
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 :)18:31
hatchrick_h_ should I check out your branch or his?18:34
rick_h_hatch: so I re-submitted his branch. So that one is safe to check18:34
rick_h_it's just a merge of his but sumitted with the -req so the diff is clean18:34
hatchahh ok18:35
hatchrick_h_ done - it looks like you need to use LGTM instead of lgtm as it's not showing up green for yours18:40
rick_h_droidoh missed that all along 18:40
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 :)18:41
rick_h_droidI didn't put the green together with approval. 18:41
hatchoh that's ok - it's a fairly new development - you may not have been in that call18:42
* hatch just opened up a new Wired ......mm the smell of a new magazine18:42
rick_h_magazine? what is this thing you speak of?18:43
hatch:) I prefer to read on dead trees18:44
hatchit's a much more fulfilling experience18:44
benjirick_h_: he's reloading his gun18:44
rick_h_yea, just don't read magazines18:44
rick_h_benji: ah, that explains it. Yea a fresh magazine is a wonderful thing. Hope it was larger than the one you had before18:44
hatchlol18:45
benjiheh18:45
hatcharen't they banning large magazines in the US now?18:46
hatchI only catch bits of news so I could be totally missinformed18:47
gary_posterbac or benji are you available for a quick skype (!) call to check something out with Antonio and me?19:07
bacgary_poster: sure19:07
gary_posterthanks bac19:07
bacskype?19:07
bachold on, let me queue up Flock of Seagulls19:08
gary_posteryes bac19:08
gary_posterlol19:08
benjigary_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.19:08
gary_posterbenji, we're good thank you19:09
benjicool19:09
sinzuioh happy days. Looks like lxc-ls broke again...sso is trying to make it run as a py2 script19:10
* benji has lxc flashbacks from the last project.19:13
benjirick_h_: is there a way to fetch all subscribers to an event?19:35
rick_h_benji: hmmm, not something i know of but I guess there must be some way as chrome can list them19:36
benjiok, thanks19:36
rick_h_benji: I'd ask in #yui 19:37
benjithat sounds like a fine idea19:38
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 tested19:39
rick_h_heh, or just do what ln_s says. That sounds darn handy. /me writes that one down19:40
benjirick_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.19:41
rick_h_benji: ah, cool19:41
hatchbenji: so you're testing that the .on() functioned properly?19:42
benjihatch: nope, I'm testing that I called it properly19:42
hatchohh I gotcha19:42
benjinew branch up for review: https://codereview.appspot.com/805804320:00
hatchbenji: looking now - so you're saying that there should only be a single listener on _rps_response ?20:03
benjihatch: 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.20:04
benjiI will add a comment to that effect.20:05
hatchalright - and maybe add why that's necessary20:05
hatchadding extra events usually isn't a testable offence :)20:05
benji:)20:08
gary_posterbcsaller, 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 way20:23
gary_posterthis is the ghost service one20:23
gary_posterbug 111277120:23
_mup_Bug #1112771: Newly deployed service box not drawn <ie10> <juju-gui:In Progress by bcsaller> < https://launchpad.net/bugs/1112771 >20:23
bcsallergary_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 process20:25
gary_posterah gotcha.  cool, thank you20:25
gary_posterapproved20:26
gary_posterhatch any brilliant thoughts on test failures?  it passed again most recently. :-/20:33
hatchgary_poster: I'm still waiting for their reply - I am wondering if it's always the last browser20:34
hatchI think when it was in IE it was also the last browser20:34
gary_posterhatch I don't think so.  it was the last we ran because we always stopped if theer were errors :-)20:35
gary_posterhatch, the thing I noticed is that the same tests failed, between the two failing tests20:35
gary_posteralso for the reload thing: 20:36
gary_posterI mean the cacheing thing:20:36
gary_posterthe big cache problem we have is the manifest cache/index.html20:36
gary_posterthere's no reason for us to have cache problems with the unit test20:36
gary_posterand we don't see cache problems with index.html20:36
gary_posterwe could verify this by changing index.html20:37
gary_posterand rerunning test20:37
hatchwhat if we concatted our test files?20:37
hatchI'm wondering if maybe there are too many20:37
hatchmaybe it's trying to load too many things before the tests start across the wire20:37
gary_posterhatch, I was wondering about their vm memory size, but we rely on YUI loadr20:38
gary_posterand I haven't seen any issues with that20:38
gary_posterwe don't proceed until the YUI loader is OK20:38
gary_posterhatch did you get our branch up for review yet?  we ought to get that merged20:39
gary_postereven with this annoyance20:39
hatchI'm attempting too :)20:39
hatchI am fighting with some nfs garbage20:40
gary_posterah ok20:40
hatchahah fixed20:41
hatchnot sure what was up with that20:41
benjihmm, the latest YUI release 3.9.1 includes feature changes; tsk tsk20:46
hatchgary_poster: did you merge in my change adding back ie deployment stuff into your branch?20:46
gary_posternot sure hatch, will look in a sec20:46
* Makyo walkdogs.20:48
hatchbenji: yeah? I haven't looked yet, which ones20:48
gary_posterhatch, related to unit bugs, try this "./test-server.sh prod true"20:48
gary_posterI see bugs20:48
gary_posterfailures I mean20:48
benjiI'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."20:48
hatchgary_poster: and after you clear cache?20:49
hatchoh yeah...and that's a bad thing? The API didn't change20:50
gary_posterhatch, same20:50
gary_posteroh, wait20:50
* bac -> daily dog appeasement march20:51
gary_posterhatch, nm, forgot to run make build :-/20:51
hatch:D20:53
hatchgary_poster: so just to confirm you don't get errors in FF now?20:56
gary_posterhatch locally no20:56
gary_posterand most recent test run passed.  another running now...20:56
hatchok and the last two which failed - idential failures happened20:56
gary_postery20:56
hatchok I'm going to pull up the vids and see if I can find out why20:57
hatchsee if those rely on some common file20:57
* hatch working on a hunch20:57
gary_posterhatch, was thinking: tests are against prod, compressed files20:57
gary_posterthe only files not compressed are tests themselves20:57
gary_posterbut the main app is running from compressed bits20:58
gary_posterequivalent to "make build && ./test-server.sh prod true"20:58
gary_posterif you want to see what I mean20:58
hatchyep - but that passes locally20:58
hatchso I'm wondering if there is a common file which the failing tests rely on20:58
gary_posterhatch, IE failed that time20:59
gary_posteron unit tests20:59
hatcharg20:59
gary_posterhttps://saucelabs.com/jobs/cfa9fd980c1946038da32d5dca51899720:59
hatchnotice how in the video it's shows the tests21:02
hatchflashes, then starts running them?21:02
hatchI wonder if i'ts running two at the same time21:02
gary_posterhatch remember I put in a refresh21:02
hatchoh right21:03
gary_postermaybe making things worse.  I did have this crazy idea21:03
gary_posterrun tests twice :-/21:03
gary_posterunit tests21:03
gary_posterwill try21:03
hatchthe errors look like they are a result of the app instance screwing up21:05
hatchok I'm tracing back one of the errors21:09
hatchUnable to get property 'services' of undefined or null reference21:09
hatchwhich is in updateData in topology/services.js21:09
gary_posteron compressed code that will be interesting :-/21:09
hatchand it's trying to get services of topo.get('db')21:09
hatchso 'db' is undefined in topology/services.js21:10
gary_posterrace?21:11
hatchthat's my first thought21:12
hatchjust tracing it back21:12
hatchyeah so it looks like Y.juju.models.Database is undefined21:15
gary_posterhatch you mean the class itself21:15
hatchyeah because it looks like db is set with a new instance of it21:16
hatchbut I'm not sure how it could be undefined and not throw an error at 'new'21:16
gary_posteryeah that's what I was going to say21:16
hatchnew undefined or null would both throw typeerrors21:17
gary_posterif it were possible then it could maybe be explained by poor dependencies21:17
gary_posterbut new undefined makes no sense21:17
gary_posterhatch fwiw trying this crazyness: http://paste.ubuntu.com/5653490/21:18
gary_postertry running the tests21:18
gary_posterif they fail21:18
gary_posterrefresh and try again21:18
gary_poster:-/21:18
gary_postershrug21:18
gary_posterwe fail fast21:18
gary_posterso shouldn't add much time21:18
hatchahh21:18
hatchof course for the next 10 runs everything will run properly lol21:19
gary_posterno real reason to believe this will have diff behavior though21:19
gary_posterheh21:19
gary_posterhm idea: if it fails again, we can try running the /test/ url directly through saucelabs while charm is up21:22
gary_posterusing their immediate feature21:23
hatchok I'm getting somewhere21:23
hatchjuju charmworld0 api tests fail21:24
gary_posterhatch what do you mean?21:24
hatchbut one of the failing tests isn't even in that describe21:24
gary_posteroh21:24
gary_posterthat does sound suspicious21:25
hatchI can show you - guichat?21:25
gary_postersyre21:26
gary_posterthere now21:26
hatchlately I have been piping my diffs to colordiff22:48
hatchI attempted to put in a bzr alias to overwrite diff but that broke the reviews22:48
hatchdo you guys do anything similar under a separate alias?22:48
rick_h_hatch: I just use a pipe to vim. 22:57
hatchahh I would have guessed as much :P22:58
rick_h_hatch: I've got a zsh pip alias V that is `vim -` so I can bzr diff V22:58
rick_h_and it opens up vim and syntax higlights it nicely22:58
rick_h_and VV maps to gvim -22:58
rick_h_so if I want gui-ness22:58
hatchah that's pretty cool22:59
hatchI really have to decide on an OS at some point22:59
rick_h_only one choice :)23:00
hatchunfortunately I can't purchase music without windows or mac23:00
hatchlol23:00
hatchno itunes on linux :P23:01
rick_h_heh, itunes if your problem there23:04
rick_h_Google/AMZ ftw23:04
hatchthey won't sell to Canadians23:04
hatchour money is no good to them23:04
hatch:)23:04
rick_h_orly?23:04
hatchyep, we can't even get spotify, hulu, pandora etc23:05
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 upload23:05
hatchoh really? I thought it was all web based23:05
rick_h_sounds like you've got a bigger problem. We have houses here you know23:05
hatchlol23:05
hatchyeah and they are A LOT cheaper haha23:05
rick_h_you can buy/play but if you want to download from AMZ you have to use a client23:05
hatchohhh23:05
rick_h_I'm just N of detroit. Lots of cheap houses down there23:05
hatchI would have to move to aspen or something23:06
hatchno snow, no go23:06
hatch;)23:06
rick_h_well we get some snow. Nothing horrible23:06
hatchodly 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 store23:08
hatchlol23:08
hatchI was bored waiting for my flight and wanted to buy a movie - I was like wth? haha23:08
hatchgary_poster: if the CI stuff hangs on the ADDRESS... part does that mean it's waiting for a machine?23:30
hatchit's been over an hour23:30
gary_posterhey hatch.  I saw that.  both instances say that they are running.  lemme look a little farther23:31
hatchoh it just dumped a ton of python errors23:31
hatchheh23:31
gary_posterhatch, there ya go :-)23:31
gary_posterI'd say the -v worked :-P23:32
hatchlol23:32
hatchI'm going to kill it and try again23:32
hatchnothing I changed from your branch should have done that23:32
gary_posterit's already dead23:32
gary_posterjust rebuild23:32
hatchalright #18223:33
gary_poster:-)23:33
gary_posterIf the retry functionality worked it would automatically retry23:33
hatchoh maybe it did and I stopped it23:33
hatchoops23:33
gary_posterno it didn't :-/23:34
gary_posterit ;s not working23:34
gary_posteroh!23:34
gary_posteryes23:34
gary_posterooh!23:34
gary_posteryou are right!23:34
gary_posterStarted by Naginator!23:34
hatchnanananananananananaginator23:34
gary_poster:-) 23:35
hatchok well I'll leave this run again I guess23:35
hatchI want a successful run before I push the code :)23:35
gary_posterthat's awesome that the retry worked!  well, kind of sort of awesome within the larger context of non-awesomeness of canonistack flakiness!23:36
hatchyeah I just hope it stops polling when it's running23:37
hatchor - more imporatantly - continue poling and queue up those changes23:38
hatchI mean...it should ;)23:38
gary_posterhatch, 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.23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!