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

=== wedgwood is now known as wedgwood_away
thumperdavecheney: ping03:27
thumperunping04:27
* thumper wanders off for a bit04:27
=== tasdomas_afk is now known as tasdomas
rogpeppewallyworld: ping08:50
wallyworldrogpeppe: hello08:55
rogpeppewallyworld: i was just looking at the simplestreams stuff08:55
rogpeppewallyworld: and realised that i didn't have the first idea about what it's about08:55
wallyworldme either :-)08:55
rogpeppewallyworld: why "streams" ?08:55
wallyworldrogpeppe: i have no idea how the naming was done, i just inherirted the data format. there's a lp project at lp:simplestreams08:56
wallyworldthis stuff was invented by scott moser08:56
wallyworldi just provided the go implementation to use it08:56
rogpeppewallyworld: yeah, i've been looking at that and trying to work out the reasoning behind the abstractions08:57
wallyworldsince that's what the image metadata is being done in moving forward08:57
wallyworldthere was a big email thread on some list somewhere but i haven't seen it - not sure how far ago it was08:57
rogpeppewallyworld: is there a good overview of simplestreams somewhere?08:57
wallyworldnot that *I* know - I just looked at some readmes in the project08:58
wallyworldi got the lp:simplesytreams source code and poked around a bit08:58
wallyworldwhen i started this stuff, i hadn't even seen the project, so had to reverse engineer everything :-(08:58
rogpeppewallyworld: what did you use as a reference for the data format?08:58
rogpeppewallyworld: just the simplestreams source code?08:59
wallyworldthe sample files :-(08:59
rogpeppeoh lawks08:59
wallyworldand then i read the source code08:59
wallyworldand the readmes and some gaps were filled in08:59
wallyworldand also, i was told via email a few extra tidbits09:00
wallyworldrogpeppe: not the best way to implement something is it :-(09:00
rogpeppeseems weird.09:01
wallyworldi'm happy though it works for ec2 and openstack (canonistack) data out of the box09:01
rogpeppewallyworld: and as seems to be usual for something with "simple" in the protocol, it seems anything but :-)09:01
wallyworldlol09:01
rogpeppes/protocol/name/09:01
wallyworldrogpeppe: some of the alias stuff was forced on scott by someone else09:01
wallyworldthat adds to the complexity09:02
wallyworldrogpeppe: from mgz: https://lists.canonical.com/mailman/private/cloud/2013-March/004476.html09:03
* wallyworld goes to read the spec of the thing he has just implemented09:03
rogpeppewallyworld: i can't seem to authenticate to that archive09:03
wallyworldhmmm. you might need to be subscribed already to that mailing list09:04
wallyworldyou can manage your subscriptions via launchpad09:04
* wallyworld has to go to soccer09:04
mgzI was trying to not post links people can't read to public channel, but it doesn't matter much :)09:05
mgzit's not a launchpad list, you need to sign up via the we interface there09:06
mgz*web09:06
rogpeppei guess i'll have to wait for someone to react to the subscription request09:06
rogpeppewallyworld: i see stuff in the go package that doesn't seem to be mentioned in the simplestreams project. e.g. i can't find any occurrence of the string "csrn" (for the RegionAlias field). where's that stuff defined?09:08
wallyworldrogpeppe: i don't think crsn is defined as a supported attribute - it is merely a key into the alias map09:09
wallyworldit could be called foobar09:09
wallyworldbut for our purposes, we can assume it's there09:10
rogpeppewallyworld: and the code would still work if we renamed it to foobar?09:10
wallyworldno. but it's easier that trying to deal with totally generic interface{} types in Go09:10
wallyworldrogpeppe: the EC2 metadata is the only thing that uses that attribute afaik09:11
wallyworldand it will always be crsn (customer region short name)09:11
rogpeppewallyworld: so where's it defined? what code has populated that attribute? it seems like it's part of the data format we're parsing.09:12
wallyworldrogpeppe: there's tools in lp:simplestreams (shell scripts and pythin modules) to generate the data i believe09:12
wallyworldrogpeppe: the only reason crsn is there (and the alias stuff) is that gustavo didn;t like the verbosity09:13
wallyworldso endpoint and region we pulled out of the ec2 image records09:13
rogpeppewallyworld: i think i have a slight difficulty with simplestreams as a name for the go package, which sounds very generic, but actually we're interested in parsing something that was produced by simplestreams but is actually more (and less) than that09:13
wallyworldi have no attachment to the name09:14
rogpeppewallyworld: cool09:14
wallyworldi just wanted something in it's own package that could read the image data we need to consume09:14
rogpeppewallyworld: it's really "imagemetadata" or something not too far from that, i think09:15
wallyworldsounds good to me09:15
rogpeppewallyworld: maybe just "images" :-09:15
rogpeppe)09:15
wallyworldthat works also :-)09:15
* wallyworld really has to run away now09:15
rogpeppewallyworld: have fun!09:16
wallyworldwill do. thanks for looking at the crap code i wrote09:16
dimiternfwereade: https://codereview.appspot.com/9084045/09:50
fwereadedimitern, cheers09:53
fwereadedimitern, did you have a change of heart re errRefresh? I thought we decided last night that we could actually eliminate it10:07
fwereadedimitern, by ignoring the initial value of the service's relation count10:08
fwereadedimitern, and just asserting that by the time the txn runs, it will have as many relations as we observed it to have when building the txn10:08
dimiternfwereade: I did remove s.Refresh(), but kept the error to signal the need to get a fresh service from state in the loop, where it should be i think10:09
fwereadedimitern, I don't actually think we need to refresh the service at all, because we don't need to look at RelationCount and we don't need a fresh service to get the current .Relations()10:10
dimiternfwereade: well, you're basically agreeing with rogpeppe about not using s.doc.RelationCount then?10:11
fwereadedimitern, I thought that not needing a frsh relationcount was the major epiphany last night, but it is possible that it was all in my head10:11
fwereadedimitern, we need to assert it, but we don't need to validate it when building the txn10:11
rogpeppefwereade: +110:11
rogpeppefwereade: that's what i was trying to get at10:12
fwereaderogpeppe, dimitern: yeah, this stuff is tricky to communicate10:12
dimiternok, i'll remove the refresh and keep the assert(RC, eq, len(relations))10:12
rogpeppedimitern: sounds good10:12
fwereadedimitern, that's perfect10:13
fwereadedimitern, LGTM with comments/suggestions in the CL then :)10:14
dimiternfwereade: cheers10:14
jamespagehey - can anyone confirm whether bug 1175958 is also a problem from juju-core?11:53
_mup_Bug #1175958: New peer relations not created when upgrading charms <amd64> <apport-bug> <raring> <juju:New> <juju (Ubuntu):New> <https://launchpad.net/bugs/1175958>11:53
jamespageI've not got my maas/juju-core env quite right yet so can't confirm quickly11:54
dimiternjamespage: i fixed this in juju-core12:05
dimiternjamespage: it's in the 1.10 release12:06
jamespagedimitern, +1 - great12:11
mgzno one has been poking me for reviews today...13:46
dimiternmgz: it's a slow day it seems13:49
mgzeveryone's packing :)13:49
mgzpacking BYTES13:49
mgzthere are some existing reviews to go over, and my own bits to land13:50
dimiternyeah, i'll start packing soon as well13:50
rogpeppemgz: it's not mine, but i've been reviewing this and i'd like to see your views on it: https://codereview.appspot.com/9138044/13:53
mgzyeah, need to go over that one13:56
=== wedgwood_away is now known as wedgwood
rogpeppemgz: there are some issues with the parsing, but i'm concerned whether it's exposing the right level of detail. i'm wonder if a higher level interface might work better.14:04
rogpeppegah!14:06
mgznogah14:07
mgzit will all be okay rog14:07
rogpeppemgz: apparently the cable is "mostly" been fixed14:08
rogpeppes/is/has/14:08
mgzehehe14:08
rogpeppe*sigh*14:09
rogpeppefwereade, dimitern, mramm: i think i'm going to give up14:12
rogpeppefwereade, mramm: please let me know if there is anything i should know about14:13
dimiternrogpeppe: bad luck14:13
fwereaderogpeppe, I think the gist is "see you soon"14:14
rogpeppefwereade: \o/14:14
fwereaderogpeppe, is there a pithy name for the "1-buffered chan for mutexed field access" pattern?14:46
* rogpeppe thinks14:47
rogpeppefwereade: not sure. "chan as resource holder" is about as good as i've got14:47
rogpeppefwereade: what's context will the name be used in?14:47
fwereaderogpeppe, I'm just about to propose it14:52
fwereaderogpeppe, dimitern: opinions on https://codereview.appspot.com/9175043 much appreciated14:58
dimiternfwereade:  will look shortly14:59
rogpeppefwereade: will have a look in a bit. i have to take my lunch break and eat food and acquire heavy sacks of compost.14:59
fwereadedimitern, rogpeppe: np14:59
fwereademgz, if you're on reviews, https://codereview.appspot.com/9175043 might be interesting15:00
mgzta15:01
dimiternfwereade: reviewed15:06
fwereadedimitern, cheers15:11
=== tasdomas is now known as tasdomas_afk
hazmatfwereade,  what's the status of --config support for deploy?15:50
fwereadehazmat, it's not complete but I don't anticipate problems finishing it off15:50
fwereadehazmat, but it was a bit messier than I hoped and it's taken a little while to massage into shape15:51
hazmatfwereade, cool.. its the last issue i think before people can start using core for their deployer stacks (ostack, etc)15:51
hazmati'm holding off an announce of the new core compatible deployer till it lands15:51
fwereadehazmat, awesome -- I probably won't propose it today, but hassle me in person if I haven't done so on sunday ;p15:52
hazmatfwereade, thanks will do, and safe travels15:52
fwereadehazmat, cheers, and you15:53
fwereadehazmat, btw, re wedged unit status, can it be resolved by bouncing the unit agent?15:53
hazmatfwereade, i've had multiple wedged causes..15:54
fwereadehazmat, ah sorry, I meant the resolved/hook-error one15:54
hazmatfwereade, i'll check next time i run into it.. its the deployer running that helps me trigger it, but thats in holding pattern and basically done.  the other one looked like more of a state issue.. the status reported missing provider state for the machine.15:57
hazmatfwereade, i suspect that indeed a restart should fix the resolved wedge15:57
fwereadehazmat, the other one is interesting too, I made a note on the bug16:10
fwereadehazmat, finding out what actually happened to the instance is the issue there -- it *looks* like an environ issue not a state issue to me16:12
hazmatfwereade, yes.. but i think its juju modifying/terminating the instance. that one needs more analysis.16:20
hazmatfwereade, as afar getting foresenic evidence for this stuff, is there a good set of known things to capture?16:21
hazmatfwereade,  i was figuring i can grab the unified log and a mongodb dump which should cover everything afaics16:21
fwereadehazmat, that should cover it, I think16:23
rogpeppefwereade: did you see my text around major-version upgrades yesterday?17:15
fwereaderogpeppe, I saw it go by and totally failed to do anything with it17:16
fwereaderogpeppe, sorry :(17:16
rogpeppefwereade: that's fine. i'd appreciate your thoughts at some point though.17:17
hazmat rogpeppe where17:20
rogpeppehazmat: http://paste.ubuntu.com/5629750/17:21
hazmatrogpeppe, thanks17:21
hazmatrogpeppe, you might also want to account for local changes made to machines during major upgrades17:22
rogpeppehazmat: what kind of thing are you thinking of?17:22
hazmatrogpeppe, i modeled as a separate job upgrade that the agent restarted itself (only that job) into upon seeing the major watch trigger, and could then do local changes after seeing the db upgrade complete.17:23
rogpeppehazmat: that's a good point17:24
hazmatrogpeppe, ie. upgrade major.. barrier for agents into restart mode. db upgrade. local upgrade. restart17:24
rogpeppehazmat: perhaps a similar thing should apply as at the server side. we could have a subcommand "upgradeclient" or something17:25
hazmatrogpeppe, its critical that agents signal into the barrier that their in restart mode, else state usage is uncertain to the db upgrader17:25
rogpeppehazmat: yes, that's the intent17:26
rogpeppehazmat: although i see i've managed to omit that detail17:26
rogpeppehazmat: updated http://paste.ubuntu.com/5629770/17:28
hazmatrogpeppe, another item worth calling out is that the upgrade coordinator is happening server side, ie possible long run, don't depend on client staying connected17:28
rogpeppehazmat: yes. that's kind of implicit, but probably worth mentioning.17:29
rogpeppehazmat: all we need is some indicator from each client.17:29
hazmatrogpeppe, re api wait for reporting upgrade status. a minimal api impl for upgrade that just reports status sounds appropriate17:29
hazmateither status of agents into the barrier, or simple stage and status.17:30
hazmatits trickier.17:30
rogpeppehazmat: that's not so easy though, as we need to upgrade all the API servers too17:30
hazmatrogpeppe, yeah.. i'm saying upgrade job can run a minimal api17:30
hazmater.. api servers have a minimal upgrade api job17:31
rogpeppehazmat: that might work actually - the upgrade job could publish its own address as the only API server address17:31
* hazmat bows out to a meeting17:32
rogpeppehazmat: but since the clients are all going to have to reconnect anyway, i'm not sure that emulating a subset of the API is necessary17:32
rogpeppehazmat: see ya17:32
rogpepperight, i'm off17:46
rogpeppesee y'all in Oakie!17:46
mgzso, their demo just demostrated one bug, then that terminating a machine juju-core doesn't recover, unlike juju which starts a new machine18:08
hazmatmgz, which demo?18:36
TheChistoso|2hi guys -- sorry to bother you here, but i need help working around https://bugs.launchpad.net/juju-core/+bug/117297322:41
_mup_Bug #1172973: sync-tools requires aws credentials be set in the (shell) environment <juju-core:Confirmed> <https://launchpad.net/bugs/1172973>22:41

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