/srv/irclogs.ubuntu.com/2013/05/27/#juju-dev.txt

thumperwallyworld_: hangout now?00:05
wallyworld_ok, just let me get my headphones00:06
wallyworld_thumper: https://plus.google.com/hangouts/_/d3f48db1cccf0d24b0573a02f3a46f709af109a600:07
thumperwallyworld_: looking at your create machine branch01:57
thumperwallyworld_:  surprised at the amount of change01:57
thumperwallyworld_: wondering why you didn't just add a function: func (st *State) AddMachineWithConstraints(series string, extraCons *constraints.Value, jobs ...MachineJob) (m *Machine, err error) {01:58
thumperwallyworld_: then there wouldn't be so much change01:59
thumperwallyworld_: also, putting constraints before the other params seems wrong too...01:59
wallyworld_thumper: i thought creating machines with constraints would become the norm02:00
thumperwallyworld_: not in our tests02:00
thumperit is just noise now02:00
wallyworld_you also dislike the constraints param before the jobs param?02:01
wallyworld_it can't go after02:01
thumperno, before instance and nonce02:01
thumperstrange as it may seem...02:02
thumperto me it is like pushing in02:02
wallyworld_i think it (the consraints param)  aligns more closely with the series param02:02
wallyworld_it is pushing in, but that's deliberate02:02
wallyworld_series and constraints for of go together to me02:02
wallyworld_sort of02:02
thumperperhaps...02:03
thumperbut I think we should have an extra method for adding constraints02:03
wallyworld_i can look at adding the extra method to reduce the noise02:03
thumperthat means all the tests still look good02:03
wallyworld_yep, ok02:03
thumperI'll keep reviewing02:03
thumperalso...02:04
thumpersoy flat white tastes funny02:04
wallyworld_*soy* why???????02:04
thumperran out of milk02:04
wallyworld_you ran out of milk02:04
thumperand don't like black coffee02:04
wallyworld_i would have had a pure expresso02:04
wallyworld_espresso02:04
thumpernah02:04
wallyworld_good coffee, tastes quite nice02:05
wallyworld_don't you have a shop just up the road?02:05
thumpersick kids at home02:06
thumpercan't really leave them alone02:06
thumperand don't want to take them with me02:06
wallyworld_oh yeah, forgot that02:07
wallyworld_thumper: thanks for the reviews, i think i've addressed the issues03:39
thumperok, will look shortly03:39
wallyworld_no hurry03:42
dimiternmorning everybody06:02
fwereademorning all07:02
dimiternfwereade: morning07:38
fwereadedimitern, heyhey07:42
dimiternfwereade: i'll start implementing the necessary stuff to allow agents to connect to the API server first thing today07:58
fwereadedimitern, great, I'm still catching up on email etc myself07:59
thumperfwereade: you going?08:02
fwereadethumper, oh, hey, you're still around? sorry, I didn't check, I thought it'd be unreasonably late for you08:02
kyhwanafwereade: it's only 20:0008:02
thumperfwereade: no, it is about 0800UTC which is the time I'm back08:03
thumperI said that in the email :)08:03
thumperI came back especially to talk to you and TheMue08:03
thumperfwereade: so time for the "ah ma gahd" hangout?08:03
fwereadethumper, cool, thanks, I forgot UTC was 2 hours08:03
thumper:)08:03
fwereadethumper, TheMue, I am at your service08:03
thumperfwereade: I'll chat first, and will grab TheMue after...08:04
* TheMue is listening08:11
dimiternreviewers? https://codereview.appspot.com/9781044/ - a small step towards having API connection in agents08:43
dimiternfwereade, TheMue: ^^08:44
thumperTheMue: ping?08:55
dimiternyo thumper!08:56
thumperdimitern: hey there08:56
dimiternthumper: if you have 5m take a look at that CL? ^^08:56
thumpersure, while I'm waiting :)08:56
thumperdimitern: you have one :)08:58
dimiternthumper: cheers!08:58
TheMuethumper: pong09:02
thumperTheMue: hey, care to join the hangout?09:02
dimiternfwereade: ping09:40
fwereadedimitern, sorry, meeting09:41
dimiternfwereade: np, ping me when you have 5m pls09:41
=== wedgwood_away is now known as wedgwood
fwereadedimitern, hey dude10:24
dimiternfwereade: hey, can you take a look at https://codereview.appspot.com/9781044/ please?10:25
* fwereade looks10:25
fwereadedimitern, can we g+ a moment? need to read surrounding code and think out loud at you a bit10:26
dimiternfwereade: sure, i'll start one10:27
fwereadedimitern, cheers10:27
dimiternfwereade: https://plus.google.com/hangouts/_/31a0adf406ea37411478622bf93d2c364764ab93?authuser=0&hl=en10:27
danilosdimitern, hey, joining us?11:33
=== wedgwood is now known as wedgwood_away
dimiterndanilos: oops be right there11:37
dimiternfwereade: https://docs.google.com/a/canonical.com/document/d/1qNSzFUh_r_fnceAUDsIT4SPVJhCH4G8V-YfXpv_GQGA/edit?usp=sharing12:32
fwereadedimitern, cheers12:41
dimiternfwereade: actually it looks like you cannot access ping/pong frames directly - they're handled internally12:42
dimiternfwereade: and the gui guys actually wait for a connection to be dropped and then reconnect12:42
dimiternfwereade: also, looking at the apiserver implementation, when a connection is dropped the server dies, so that's a possibility to detect12:49
dimiternfwereade: ping12:57
fwereadedimitern, heyhey, sorry, meeting again -- g+?13:17
dimiternfwereade: yeah, just a sec13:17
dimiternfwereade: https://plus.google.com/hangouts/_/4cdea2d176b825a710dfe5865a1b69ca5bd61944?authuser=0&hl=en13:17
=== wedgwood_away is now known as wedgwood
dimiternfwereade: you just froze and i tried to rejoin13:41
=== niemeyer_ is now known as niemeyer
dimiternfwereade: https://codereview.appspot.com/9811044/15:34
fwereadedimitern, I'm not sure we should be exposing SetDeadline directly... and I'm becoming unsure whether it's actually what we need, I think my brain was still parsing it as SetTimeout15:47
fwereadedimitern, it doesn't strike me as very goroutine-safe15:47
fwereadedimitern, in the service of quick progress I think I'd be fine with just a trivial Ping() method15:47
fwereadedimitern, if we want to get clever with deadlines I think we need to do it around where we're actually reading/writing on the conn15:48
fwereadedimitern, sensible?15:48
fwereadedimitern, and remember, we need to have this turning into a channel close at some point so we can select on it15:50
fwereadedimitern, ideally all we'd be exposing on State is a method returning that channel15:50
fwereadedimitern, sorry, gtg, bank15:51
dimiternfwereade: sgtm, I'll leave Ping() only then15:53
fwereadedimitern, consider keeping it unexposed on the client, though, I can't think of much reason to use it15:54
fwereadedimitern, I'm thinking of something like select { <-apist.ConnDead(): ... }15:55
dimiternfwereade: we can't - how should we call it if it's not exposed on che client15:55
fwereadedimitern, can't the client keep track internally of the connection's state?15:55
dimiternfwereade: are we talking about Ping here?15:55
fwereadedimitern, that's what I'm looking for15:55
fwereadedimitern, Ping is just a means towards that end15:55
dimiternfwereade: ok, i'm confused now15:55
fwereadedimitern, so the server needs it15:56
fwereadedimitern, but there's little cause for a client of api.State to ever call it15:56
fwereadedimitern, because a client of api.State cares about whether the conn has gone down15:56
dimiternfwereade: what then?15:56
fwereadedimitern, and api.State should be exposing that information15:56
dimiternfwereade: it's intended to be called by the task monitoring the heartbeat15:56
fwereadedimitern, I wasn't expecting that to be a task as such... and, sorry, I really must go, I'll ping you when I'm free again15:57
dimiternfwereade: so you're suggesting to implement a goroutine in the client to periodically ping the server and have a Closed() <-chan error available outside?15:58
dimiternfwereade: ok, ping me when you're back15:58
mrammjust checking for a few minutes here on my day off -- anobody need anything?16:30
dimiternmramm: everything is fine :)16:31
mrammdimitern:  I figured it would be.   You guys are all great.16:31
dimitern:)16:33
dimiterni'm off - can't think anymore, need to rest16:33
=== wedgwood is now known as wedgwood_away
=== tasdomas_afk is now known as tasdomas
=== tasdomas is now known as tasdomas_afk
ahasenackhm, since default-image-id is now deprecated:19:49
ahasenack2013/05/27 16:49:25 WARNING config attribute "default-image-id" (4dade8d2-2b95-4e4c-b947-c5e3ff4a31ea) is deprecated and ignored, use simplestreams metadata instead19:49
ahasenackand gojuju by itself seems unable to find a suitable image id:19:50
ahasenack2013/05/27 16:49:37 ERROR command failed: cannot start bootstrap instance: no "precise" images in lcy02 with arches [amd64]19:50
ahasenackhow do I bootstrap? In this case, it's openstack19:50
ahasenack(canonistack to be more precise)19:50
fwereadeahasenack, `juju image-metadata` will generate simplestreams data for a single image as specified, and you can then copy those to your public-bucket21:26
fwereadeahasenack, I *think* we are expecting simplestreams data to be published for lcy02 before too long, but I'm not really up to speed on that, was on holiday last week21:26
ahasenackfwereade: ok, got something to play with now21:28
ahasenack$ juju image-metadata -a amd64 -i 4dade8d2-2b95-4e4c-b947-c5e3ff4a31ea -r lcy02 -s precise -e https://keystone.canonistack.canonical.com:443/v2.0/21:28
ahasenackBoilerplate image metadata files "index.json, imagemetadata.json" have been written to /home/andreas/.juju.21:28
ahasenackCopy the files to the path "streams/v1" in your cloud's public bucket.21:28
ahasenackthanks21:28
fwereadeahasenack, great21:28
ahasenackfwereade: it was so simple when all I needed was default-image-id :D21:29
fwereadeahasenack, it's a bit annoyingly manual at the moment, but it's better than having to assume that the default image id always has the exact required characteristics (regardless of series, arch, etc)21:30
fwereadeahasenack, default-image-id just enables too many fail cases -- if the tools don't match the image, nothing will work, and the reasons will be desperately unclear... although we kinda dropped the ball on the error message there, the resolution is far from clear. bah.21:32
fwereadeahasenack, would it have helped if the error message just ended with "(run `juju image-metadata`)"?21:36
wallyworld_fwereade: another problem which we can discuss tonight (my time) - stale data. there are issues with the tests which mask stale data issues in the domain entities. our code is broken, need to think about how to fix23:40
wallyworld_right now, some tests pass by fluke. adding code to ensure dirty attribute is properly refreshed causes other tests which rely on the stale data to fail23:42

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