/srv/irclogs.ubuntu.com/2013/12/13/#juju-dev.txt

wallyworldthumper: you around?00:52
wallyworldi was hoping to see what i could get reviewed out of my remaining 4 (+ another 2 partially reviewed) branches00:54
thumperwallyworld: I am now01:14
thumperbusy freaking week01:14
thumpergot back from the gym01:14
thumperand Rachel is like "you forgot about Caitlin's end of year assembly didn't you"01:14
thumperwhich is going now01:14
thumperbut there is no room01:14
wallyworldoh no :-)01:14
thumperended up standing outside for a bit01:14
thumperbut I hadn't eaten01:14
thumperso the combination of not being able to see and being hungry drove me home01:15
thumperso here I am01:15
wallyworldta da01:15
wallyworldthumper: i reviewed your branches. i looked at the first one john reviewed. i sorta agree it's a shame there is yet another socket/listener01:15
thumperwallyworld: yeah, been thinking about that01:16
thumperpart of the issue was around lifetimes01:16
thumperthere is a note there somewhere to refactor the jujuc listener01:16
thumperwe should look to do that01:16
wallyworldi got so confused trying to sort through that hooks code. hard to know what runs where when just reading it01:16
thumperbut somewhat out of scope for this change01:16
* thumper nods01:16
thumperI know what you mean01:16
wallyworldi wish there was some doc01:16
wallyworldto explain all the moving parts01:17
wallyworldthumper: so i'd be happy to discuss the current state of play with my branches if you want01:18
thumperok01:18
thumperlets do it01:18
wallyworldhttps://plus.google.com/hangouts/_/7ecpibd25ularnidet2ikrkeq801:18
axw_thumper: do you know who I need to ask to get access to the HP Cloud account?02:56
thumperaxw_: antonio?02:56
thumperthat'd be my best guess02:56
axw_probably, I'll try him02:56
axw_thanks02:56
thumperor davecheney?02:56
axw_speak of the devil02:58
axw_davecheney: do I need to talk to arosales to get HP cloud access?02:58
thumperaxw_: and he shall appear :)02:58
axw_or are you able to hook me up?02:58
wallyworldthumper: any chance of doing the last branches?03:14
wallyworld:-D03:14
* wallyworld flutters eyelashes03:14
thumperwallyworld: yep, let me just finsih off these tests03:14
thumperwallyworld: I'll look at the next one while I run make check03:37
wallyworldok ta03:37
wallyworldbig queue in the bot03:37
thumperwallyworld: did you want jam to sign off on https://codereview.appspot.com/40870047/ ?03:57
wallyworldthumper: nah. i reckon my explanation is ok03:57
thumperso I don't need to look at that one do i?03:57
thumperwallyworld: here is the last of the juju-run ones:  https://codereview.appspot.com/4166004403:58
wallyworldthumper: don't think so03:58
thumperkk, looking at your last03:58
wallyworldand i'm looking at yours :-)03:59
thumperit has been a busy landing day today04:05
thumperyou'd think we've been doing real work or something...04:05
wallyworldthumper: with cloud init, will jujud be in place at the time the sym link is created?04:12
thumperwallyworld: yes, but given the magic of symlinks, it doesn't matter if it isn't :)04:12
wallyworldok04:12
thumperit is quite valid to make a symlink that points to something that doesn't exist04:13
wallyworldthumper: done. you can almost EOW :-) is the sprint approved?04:18
thumperwallyworld: yes, and I sent you an email about it04:18
thumperyou need to do the travel request form04:19
wallyworldah, too busy landing code to check :-)04:19
wallyworldi'llbook my own flights04:19
thumperwallyworld: you say to use cfg.jujuTools04:24
thumperwallyworld: my answer is "no"04:24
thumperwallyworld: jujuTools is the versioned directory04:24
thumperwe specifically want the one through the symlink04:24
wallyworldah ok04:24
wallyworldsorry04:24
thumperotherwise juju-run will never get updated when the machine updates04:24
wallyworldigmore me04:24
thumperI'll add a comment04:24
thumperwallyworld: if you were confused by it, sure as eggs, the next person will be too04:25
thumperhence the comment :)04:25
wallyworldyeah, or i could just be stupid04:25
thumperwallyworld: no, a very valid point, and the comment helps explain why04:27
wallyworldwell, the two assertions aren't mutually exclusive :-)04:28
thumperhell pizza ordered04:52
thumper$13 large pizzas for Friday the 13th04:52
thumperok, so last juju-run branch is in the landing chain04:54
* thumper EOWs04:54
=== axw__ is now known as axw
wallyworldaxw: hey, any chance of a review of my last branch before i go away for a few days? it is hopefully the final piece in a series of branches to add ssh key management https://codereview.appspot.com/4069005005:51
axwwallyworld: looking05:51
wallyworldthanks :-)05:51
wallyworldthe bot is being a bitch for my previous branches05:52
wallyworlda few spurious failures05:52
axwwallyworld: dumb question: why is the default user "admin". shouldn't it be ubuntu?05:57
wallyworldaxw: it's the juju user which i believe is admin05:57
wallyworldright now juju only has one user05:58
wallyworldi think05:58
wallyworldthere is and AddUser api but i'm not sure what if anything uses it05:58
wallyworldRBAC is coming though05:59
axwwallyworld: all our ssh commands log in as "ubuntu@"05:59
axwI'm a bit confused05:59
axwI'm not aware of us creating an admin user05:59
wallyworldit's the api user05:59
axwohhh05:59
axwsorry05:59
axwgot it05:59
wallyworldnp :-) it is confusing05:59
axwwallyworld: done06:15
wallyworldaxw: great thanks very much06:16
axwnp06:16
wallyworldi'm not sure why the cmd doesn't support multiple keys06:16
wallyworldperhaps it should06:16
wallyworldi might make that change before landing06:17
axwnot a major issue, since it can be added later easily06:21
wallyworldsure. but i'll add it as it's annoying me now :-)06:26
wallyworldi'll also fix add and delete i think while i'm there06:27
axwhehe06:28
axwcool06:28
wallyworldaxw: commands fixed :-) i'll land unless you have an objections06:54
axwwallyworld: go for it06:54
wallyworld\o/06:55
=== axw_ is now known as axw
=== axw_ is now known as axw
TheMuerogpeppe: ping10:05
rogpeppeTheMue: pong10:05
TheMuerogpeppe: I separated the goroutine, it's running fine10:05
TheMuerogpeppe: but I would like to discuss the idea of the WriteCloser with you10:06
* rogpeppe tries to remember which goroutine10:06
rogpeppeTheMue: ok10:06
TheMuerogpeppe: the reader goroutine in the tests10:06
rogpeppeTheMue: ah, of course10:06
rogpeppeTheMue: go on10:06
TheMuerogpeppe: the assert now uses the returned one and only string channel10:06
TheMuerogpeppe: ok, WriteCloser10:07
TheMuerogpeppe: the philosophy to use it has been, that it is simply an interface which allows the tailer to signal the writer that it doesn't has to expect more of the tailer10:08
rogpeppeTheMue: i think that the tailer finishing is probably just as good a way to do that10:09
TheMuerogpeppe: if I want multiple source write into one writer (which never has been the idea of the tailer, only all-machines.log) it's no problem to implement that interface with a kind of multiplexer10:09
rogpeppeTheMue: ISTM that the tailer is just a specialised form of io.Copy10:09
TheMuerogpeppe: w/o a Close the writer doesn't know that the tailer finished10:10
rogpeppeTheMue: io.Copy doesn't close the stream it's writing to10:10
rogpeppeTheMue: that's why I suggested adding a Wait method10:10
rogpeppeTheMue: similarly to most other similar interfaces we have10:10
TheMuerogpeppe: hmm, ok, that's an argument. but in that case the writer (or the using environment) needs perhaps a different way to know if the tailer has been stopped10:11
rogpeppeTheMue: different from Wait?10:11
TheMuerogpeppe: no, had written in while you wrote ;)10:11
rogpeppeTheMue: ah, sorry10:12
TheMuerogpeppe: so does the Tailer has a Wait? how would it be used?10:12
rogpeppeTheMue: we'll almost certainly want a Wait method anyway, so the agent can know when it needs to restart the tailer10:12
TheMuerogpeppe: hmm, can't follow10:13
rogpeppeTheMue: Wait would work just like any other Wait method that we implement - func (t *Tailer) Wait() {return t.tomb.Wait()}10:13
rogpeppeTheMue: we might want to also expose func (t *Tailer) Dead() <-chan struct{} {return t.tomb.Dead()}10:14
rogpeppeTheMue: for convenience10:14
TheMuerogpeppe: yes, but how would a writer implementation use it to get aware, that the Tailer has been Stopped by calling Stop()?10:14
rogpeppeTheMue: so, (responding to your "can't follow"), something is running the tailer right/10:14
rogpeppe?10:15
rogpeppeTheMue: why does it need to know that?10:15
TheMuerogpeppe: yep, and passes a Writer, in my case one to write into a StringsWatcher10:15
TheMuerogpeppe: to stop work when it runs in a loop (like the one you proposed in your review)10:16
rogpeppeTheMue: so, assuming we have the machine agent running a Tailer, it presumably needs to know when the Tailer exits, so it can restart it10:16
rogpeppeTheMue: it's trivial to Wait for the Tailer, then call Close on the Writer if that's what you need to do10:17
rogpeppeTheMue: sorry, i'm not quite sure what you mean by "to stop work when it runs in a loop" - what's "it" there?10:18
TheMuerogpeppe: take a look at the reading goroutine in your review. how do you think will it terminate?10:20
rogpeppeTheMue: go func() {tailer.Wait(); pipeWriter.Close()}10:21
TheMuerogpeppe: ah, ok, not as is but with a second goroutine10:23
TheMuerogpeppe: feels a bit inconvenient to me, but it's ok. for an own implementation still would use the WriteCloser because I like to let a user implement an interface the best fitting way. but that's a different design philosophy10:27
TheMuerogpeppe: so thanks, will add it and then repropose10:27
rogpeppeTheMue: thanks10:30
rogpeppeTheMue: i suspect when we use this for real, we won't want to close the Tailer immediately it finishes - we might want to append a message saying what's happened, for example.10:32
TheMuerogpeppe: here I'm more defensive, the problematic word is "might" ;) the tailer already today does more than the existing requirements10:34
rogpeppe1TheMue: i guess I'm saying that by doing less, it's actually more flexible10:46
TheMuerogpeppe1: maybe. I so far reach mostly the same in my code by focus on interfaces10:50
rogpeppe1mgz: standup?10:51
TheMuerogpeppe1: next run, just proposed11:23
rogpeppe1TheMue: ok, looking11:23
* TheMue => lunch11:54
rogpeppe1I'm going to be travelling this afternoon, so proabably incommunicado most of the time13:07
rogpeppe1natefinch: ^13:07
=== gary_poster|away is now known as gary_poster
TheMuerogpeppe1: thx for the review, and the index error inside the test data (missing the lines w/o termination) convinced me to use the mixed notation :D13:15
rogpeppe1TheMue: thanks13:15
TheMuerogpeppe1: I've got to thank you, has been a very good process13:15
rogpeppe1TheMue: cool - sorry it took a while :-)13:16
TheMuerogpeppe1: hehe, np13:16
TheMuehmm, very quiet here today. did i miss a public holiday?13:31
rogpeppe1TheMue: various people are on hols13:35
rogpeppe1TheMue: malta has a public holiday i think13:35
* rogpeppe1 goes for lunch13:39
TheMuerogpeppe1: ah, ic13:39
TheMuerogpeppe1: thx and enjoy13:39
rogpeppe1then i'll be out of touch for a while, depending on motorway 3G connectivity13:39
TheMuegets empty here13:41
marcoceppiIf anyone with MAAS experience, heh, could help out in #juju, that'd be great16:12
jcastrohi guys, I am still getting: agent-state-info: '(error: container "jorge-local-machine-3" is already created)' style errors with the local provider16:30
jcastrofresh install, saucy16:30
=== marrusl_ is now known as marrusl
rogpeppe2natefinch: here's what i've ended up with for the concurrent connecting stuff: http://paste.ubuntu.com/6567727/17:17
=== rogpeppe2 is now known as rogpeppe
rogpeppenatefinch: it's probably not obvious how it is intended to be used, though17:18
jcastroheya natefinch17:51
jcastrohttps://bugs.launchpad.net/juju-core/+bug/125935017:51
_mup_Bug #1259350: juju bootstrap fails in Azure (BadRequest - The affinity group name is empty or was not specified.) <azure-provider> <bootstrap> <juju-core:Triaged> <https://launchpad.net/bugs/1259350>17:51
jcastroany ideas on this one?17:51
fcorreahey there. Anyone here using the postgresql charm with an attached volume? A nova volume in this case17:52
fcorreaI'm having trouble trying to get it to work and wanted to double check I'm not doing it wrong17:53
natefinchfcorrea: sorry, most of the juju devs are out today for one reason or another.  You might try asking on #juju if anyone else has tried that.  I don't really know anything about nova, so not sure I can help much.18:06
natefinchjcastro, looking18:06
fcorreanatefinch, Will do. Thanks18:07
natefinchjcastro: I wonder if azure changed their API... they've done that before18:25
=== gary_poster is now known as gary_poster|away

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