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

marcoceppiis -r not implemented for relation-set yet with juju-core?00:38
bigjoolswould people please stop adding ~juju to more freaking teams00:56
* bigjools adds another procmail entry line 00:56
jtvwallyworld_: I'm trying to add some debug logging to imagemetadata, to help track down failures to find matches.04:37
wallyworld_you poor bastard04:38
jtvIn the outer getImageIdsPath() loop, there's a condition: can't load package: package launchpad.net/juju-core: no Go source files in /home/jtv/go/src/launchpad.net/juju-core04:38
jtvAhem, not that one.04:38
jtvIgnore that one; old buffer contents.  It's a Go error that means "you put an option on the command line in the wrong place."04:38
jtvThe code I mean is:04:39
jtvif metadata.DataType != imageIds {04:39
wallyworld_imageIds is "image-ids" i think04:39
jtvIs that a search (i.e. true for at most, and ideally exactly, one iteration)?  Or a filter (i.e. true for any number of iterations)?04:39
jtvYes, it is.04:39
jtvISTM it's meant as a search.04:39
wallyworld_the simplestreams contains data belonging to different data types04:40
wallyworld_it is meant to iterate over them and only look at image-ids data types04:40
jtvFWIW it's usually a good idea to extract these search loops, so that you get explicit "not found" conditions instead of just arriving at the end of the big loop without success.04:40
jtvSo it's a filter, not a search?04:40
wallyworld_yes, i guess you could say that04:40
jtvThanks.  I'll apply loop fission.04:41
wallyworld_it's a filter built into the loop04:41
jtvThe code will be easier to follow, but also have explicitly recognizable, reportable "nothing found" conditions.04:41
wallyworld_the not found condition hasn't been important04:42
jtvI find these things usually improve a lot with loop fission.04:42
wallyworld_maybe it is now04:42
jtvIt's bloody well important to me!04:42
jtvFor debugging.04:42
jtvJust about the only error condition is "sorry, no luck."  A nightmare to debug.04:42
wallyworld_the idea is that there can be many metadata files and if one doesn't suit, it just looks at the next one04:43
wallyworld_no need to bother the user with such trivialities04:43
wallyworld_but for debugging, i see your point04:43
jtvAnd I yours, w.r.t. the user.04:44
jtvWell, except for cases maybe where "not found" errors are quietly skipped.  :)04:44
wallyworld_that's desired behaviour sometimes :-)04:45
jtvI can see that -- but I think even non-dev users need to be able to get at debug output sometimes.04:55
wallyworld_agreed04:56
wallyworld_i just never added any cause it sorta just worked04:56
wallyworld_so i didn't have an itch to scratc04:56
wallyworld_h04:56
* jtv scratches04:58
=== tasdomas_afk is now known as tasdomas
=== tasdomas is now known as tasdomas_afk
=== tasdomas_afk is now known as tasdomas
rogpeppemornin' all07:36
axwrogpeppe: morning07:38
rogpeppeaxw: hiya07:38
rogpeppeaxw: simplifying the patterns is a great idea, BTW. that had also occurred to me as a possibility07:39
axwrogpeppe: cool07:40
rogpeppeaxw: we can easily expand the syntax later if people have the need07:40
axwokey dokey07:40
axwrogpeppe: LGTM stands then? I wanted to give you a chance to respond before I went ahead and merged07:41
rogpeppeaxw: i'm just having a last look through it07:41
axwok07:41
axwfwereade: thanks for the review; no additional feedback needed, if you're happy with the latest changes07:42
fwereadeaxw, it looked great yesterday and you're more than competent to make the changes I suggested ;)07:44
axwheh thanks :)07:44
rogpeppeaxw: shouldn't validatePattern allow a slash ?07:45
axwvalidatePattern is called on either side of the slash07:45
axwrogpeppe: see the strings.Split in newUnitMatcher07:46
rogpeppeaxw: ah i'd missed that, yes.07:47
rogpeppeaxw: reviewed07:52
axwrogpeppe: ta07:53
thumperaxw: are you around?08:18
axwthumper: I am08:19
thumperI'm thinking about what to get you to look at08:19
thumperI'll have a chat with jam and fwereade and get back to you :)08:19
axwthumper: okey dokey, thanks08:20
thumperI am tempted to leave you going through all the high bugs thinking that at this rate, we'll be all done real soon now :)08:20
thumperbut that is a bit mean08:20
davecheneythumper: et al, is there a bug for the juju-plugins fuckup ?08:20
thumperdavecheney: I don't think so, jcastro was pinged by people with private clouds going "huh? fubared"08:21
thumperdavecheney: feel free to file one08:21
davecheneykk08:21
davecheneyhttps://docs.google.com/a/canonical.com/document/d/1XPzmRAM3W7oYYmCGVYB5nR1DZyB16t8qPF68xxmWZho/edit#08:23
davecheneyrelease notes for 1.13.108:23
davecheneyjcastro: did anyone log an issue for the juju-metadata snafu ?08:23
davecheneyif not, no worries08:23
* davecheney waves to anonymous frog08:24
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: dimitern | Bugs: 4 Critical, 82 High - https://bugs.launchpad.net/juju-core/
mthaddonhi folks, we're having a problem with CPU constraints and juju-core 1.13.0-1~1594. --constraints "cpu-cores=1 mem=4G arch=amd64" gets 4 core machine08:34
mthaddonis this a known issue? couldn't see anything in the bugs list on LP08:35
axwoops08:36
axwfwereade: your surprise was well warranted ;)08:36
axwI missed a test08:36
axw(wordpress endpoints)08:36
dimiternmthaddon: the constraints are the minimum values you want, not the maximum08:37
mthaddondimitern: is there some way of specifying maximum values as well?08:37
dimiternmthaddon: perhaps there are no 1 core x64 machines with 4G ram08:38
dimiternmthaddon: not that I know of08:38
dimiternmthaddon: even py-juju I think didn't support that08:38
mthaddonin pyjuju you could specify an instance-type which would achieve what we're trying to do here08:38
dimiternmthaddon: in juju-core, the algorithm is to satisfy your given constraints to the best possible, even exceeding them, if not possible to meet them all08:39
mthaddonand in this case there very much is an instance type defined that matches the constraints we want exactly08:39
dimiternmthaddon: yeah, that's being discussed and should be coming soon08:40
mthaddondimitern: any idea of what "soon" means here?08:40
dimiternmthaddon: not with certainty, but most likely a couple of weeks or so after the IoM sprint08:41
dimiternwhich ends this week08:41
mthaddondimitern: if we can show that there is an instance satisfying the constraints (cpu-cores=1 mem=4G arch=amd64) and nothing more that's available, would we be more likely to get that bug fixed or better to wait for the ability to specify an instance-type? this is a critical issue for us as to whether we can deploy on juju-core or need to stick with pyjuju08:43
dimiternmthaddon: try specifying them incrementally, don't overspecify - first try ram, then cores or cpu-power, at last arch08:44
rogpeppemthaddon: what provider are you using?08:44
mthaddondimitern: if I can boot an instance with the exact constraints outside of juju, but then juju-core can't surely that'd be a good enough test of a bug?08:44
mthaddonrogpeppe: openstack08:44
rogpeppemthaddon: hmm, it's possible that the simplestreams data is erroneous08:45
dimiternmthaddon: since juju starts filtering the instance by ram, and 4G defined as 1024*1024*1024, you might want to try specifying something a bit lower08:46
dimiternmthaddon: but by all means, if you want, file a bug as well, describing what you expect as a constraints selection behavior08:47
mthaddondimitern: we have plenty of flavors that should match - http://paste.ubuntu.com/5961886/08:49
mthaddonrogpeppe: is that something we'd need to fix? how would we verify that? I'm not familiar enough with simplestreams yet to know how this could affect this issue08:50
dimiternmthaddon: let me check the exact matching08:50
rogpeppemthaddon: i'm looking into the code at the moment08:51
mthaddoncool, thx guys08:51
rogpeppemthaddon: hmm, it would be interesting to have some debugging prints in instances.getMatchingInstanceTypes08:52
dimiternrogpeppe: or Tracef08:52
rogpeppedimitern: that's what i mean08:52
frankbanrogpeppe: hey, re your suggestions to use params.ServiceUpdate as the only argument for Client.ServiceUpdate. I have no problem in doing that, but that would be the only client call like that. E.g. ServiceDeploy, which takes almost the same number of arguments, does not use params in its signature.08:53
rogpeppefrankban: yeah, ServiceDeploy is pushing the boundaries08:54
rogpeppefrankban: but i think ServiceUpdate is slightly different, as all the parameters are optional08:54
frankbanrogpeppe: good point, I'll make the change08:54
rogpeppefrankban: thanks08:55
frankbanrogpeppe: should I use *params.ServiceUpdate?08:57
rogpeppefrankban: that's a good question. on balance, i think no. others' opinions may vary.08:58
frankbanrogpeppe: I'll use the value then, thank you08:58
rogpeppefrankban: i might use a pointer if it was useful to be able to omit all parameters08:58
frankbanrogpeppe: it is not, the service name is not optional08:59
rogpeppefrankban: yeah08:59
rogpeppefrankban: and it wouldn't be that useful anyway08:59
frankbanyeah09:00
mthaddonis this juju-core's way of telling me there's no environment booted? http://paste.ubuntu.com/5961915/09:00
rogpeppemthaddon: lol09:00
rogpeppemthaddon: it's entirely possible09:00
* mthaddon files a bug about that09:00
rogpeppemthaddon: there may already be one09:00
mthaddonk, will check09:00
mthaddonhttps://bugs.launchpad.net/juju-core/+bug/102805309:01
_mup_Bug #1028053: running juju status on a non bootstrapped environment gives confusing results <juju-core:Triaged by danilo> <https://launchpad.net/bugs/1028053>09:01
dimiternmthaddon: this one is being worked on I think09:01
* mthaddon nods - obviously not very high priority, but good to have logged as a bug09:02
=== 17WAB9WQY is now known as jam
axwINFO juju.environs.sync sync.go:166 download 2882kB, uploading download 2882kB, uploading09:38
axwlove it09:38
frankbandimitern, rogpeppe: re-proposed the branch with the requested changes. I am going to approve it unless you want to take another look09:39
rogpeppefrankban: i'll just take a very quick look09:39
frankbanrogpeppe: cool thanks09:40
rogpeppefrankban: done09:42
frankbanrogpeppe: great, proceeding09:43
frankbanrogpeppe: merged, and filed bug 121007610:02
_mup_Bug #1210076: Expose minUnits in the CLI <juju-core:New> <https://launchpad.net/bugs/1210076>10:02
jtvwallyworld_: you wouldn't be available to review my logging branch by any chance?  https://codereview.appspot.com/1265504310:03
mthaddonhttps://bugs.launchpad.net/juju-core/+bug/121008610:14
_mup_Bug #1210086: CPU instance constraints not working as expected <canonical-webops> <juju-core:New> <https://launchpad.net/bugs/1210086>10:14
dimiternrogpeppe, natefinch: https://codereview.appspot.com/12658043 UniterAPI10:20
dimiternsorry, left out a piece of debugging code, reproposing without it now10:22
rogpeppe dimiternlooking10:24
rogpeppedimitern: reviewed10:33
dimiternrogpeppe: cheers10:33
dimiternrogpeppe: strictly speaking, these tests are not the same and even if some logic is the same (setup/teardown/asserts), the thing that's being tested is different10:35
dimiternnatefinch: ping10:37
dimiternthumper: hey, I need a review on a small branch if you have 5m? https://codereview.appspot.com/12658043/10:41
* thumper looks10:41
jtvAnd anyone free to review this one? https://codereview.appspot.com/1265504310:51
rogpeppejtv: looking10:51
dimiternjtv: me too10:51
rogpeppejtv: i was thinking earlier that something like this might be a good idea10:52
jtvThanks guys10:53
jtvWell, Roger, here you go.  :)  I'm sure you'll be able to make some good suggestions then.10:53
dimiternthumper: thanks!11:07
sidneinoodles775: feel like taking a look at mthaddon's bug above ^?11:09
* noodles775 looks11:09
noodles775Sure - sounds interesting :)11:11
dimiternjtv: reviewed11:11
jtvThanks dimitern11:14
rogpeppejtv: reviewed11:16
sidneimthaddon: can you paste the full list of instance types?11:20
sidneimthaddon: also the one that got selected11:21
mthaddonsidnei: I don't have the actual one that got selected, would need to confirm with thedac if he has that in history - the full list of instance types coming up (it's massive)11:23
sidneimthaddon: ok. i think you said it selected the 4cores one instead of a 1core one11:24
mthaddonyep11:24
dimiternrogpeppe: standup?11:32
sidneirogpeppe: https://bugs.launchpad.net/juju-core/+bug/1210086/comments/1 makes sense?11:56
_mup_Bug #1210086: CPU instance constraints not working as expected <canonical-webops> <juju-core:New> <https://launchpad.net/bugs/1210086>11:56
rogpeppesidnei: yeah, that looks plausible11:58
rogpeppesidnei: it should probably try to minimise all constraint attributes in the absence of a monetary cost11:59
rogpeppervba: you have a review: https://codereview.appspot.com/12251044/12:24
=== tasdomas is now known as tasdomas_afk
sidneirogpeppe: what do you suggest, changing byCost to take the other attributes into account or changing the openstack environ to use a combination of ram and cpu cores?12:42
rogpeppesidnei: just having a look12:43
rogpeppesidnei: i think it would probably be better to change byCost12:45
rogpeppesidnei: that way providers don't have to worry about fitting a multidimensional value into a scalar12:45
sidneirogpeppe: and change openstack to have nil as default cost instead of ram, makes sense?12:46
rogpeppesidnei: yes, i think so12:46
sidneiack, on it.12:46
rogpeppesidnei: we will need to decide on precedence12:47
rogpeppesidnei: i *think* we should probably weigh ram higher than cores12:47
rogpeppesidnei: so, in order of precedence (each only considered if the previous values are equal): cost, ram, cores12:47
sidneisounds good to me12:48
rogpeppesidnei: cool12:48
sidneirogpeppe: to double check, lowest cost but highest ram and highest cores?13:01
rogpeppesidnei: no, i think lowest of all of them13:02
rogpeppesidnei: we want to pick the slimmest machine that fits the constraints, i think13:02
sidneirogpeppe: i'd think if two machines have the same cost and one has more ram i'd pick the one with more ram, but i could do that by tweaking the constraints anyway, so fine.13:03
rogpeppesidnei: yeah13:03
rogpeppesidnei: when monetary cost is implemented, it will tend to pick least ram/cores, so this is just extending that heuristic13:04
dimiternrogpeppe, mgz: next CL https://codereview.appspot.com/12661043/ - uniter client-side API13:10
rogpeppedimitern: LGTM13:13
dimiternrogpeppe: thanks13:14
sidneirogpeppe: would cpu-power come before or after cpu-cost?13:14
rogpeppesidnei: cpu-cost?13:14
sidneirogpeppe: sorry, cpu-cores13:16
rogpeppesidnei: your guess is as good as mine. perhaps before, as fast cpus are more expensive in general?13:17
sidneik13:17
wallyworld_rogpeppe: hi there. have you had a chance to look at my latest changes for the control bucket stuff?13:21
=== tasdomas_afk is now known as tasdomas
rogpeppewallyworld_: i have; i really think this should probably go on hold until we can have a proper discussion about it along with fwereade13:22
wallyworld_:-(13:22
rogpeppewallyworld_: i know, but i think this taps into something a bit deeper that it's worth sorting out earlier rather than later13:22
wallyworld_ok then13:23
rogpeppewallyworld_: i'm really sorry - i've been thinking a lot about the issue over the last couple of days13:23
wallyworld_i'm following the design document13:23
rogpeppewallyworld_: can you point me to the design doc again please - i always lose Drive links13:24
* wallyworld_ looks it up13:24
wallyworld_https://docs.google.com/a/canonical.com/document/d/1ncsNzDHauV_9Fwsm59GjX0-O-_g48UYnObefwtBStG0/edit13:25
wallyworld_william was also ok with the approach i started with - get rid of control bucket, admin secret,and also the keys (in the followup branches)13:26
* rogpeppe wishes google drive remembered what documents i'd viewed13:26
wallyworld_it can do13:26
wallyworld_goto docs.google.com13:27
wallyworld_and your recently viewed ones are there13:27
wallyworld_plus you can put them in folders etc13:27
rogpeppewallyworld_: i've viewed that doc recently and it isn't there13:28
* wallyworld_ shrugs13:28
dimiternmgz: ping13:29
rogpeppehmm, it is now13:29
rogpeppewallyworld_: anyway13:29
rogpeppewallyworld_: the design doc says this:13:29
rogpeppe$ juju bootstrap myenv1 --template experimental13:29
rogpeppe# generate admin-secret, CA cert/key, and control-bucket13:29
rogpeppewallyworld_: the problem i have is that your proposal generates these values even when you're not bootstrapping13:30
rogpeppewallyworld_: for instance, if you haven't bootstrapped an environment, and you call juju status, it'll generate these values, which i think is wrong13:30
rogpeppewallyworld_: i think your proposal is nice and non-disruptive to most juju code, but i think something more is needed13:32
mgzdimitern: hey13:32
wallyworld_rogpeppe: well, it will generate the attrs whenever NewFromName is called ie whenever a new env is required to be constructed13:33
rogpeppewallyworld_: exactly13:33
wallyworld_so whats the issue there?13:34
wallyworld_a new env requires certains attrs13:34
wallyworld_some come from yaml, others are generated13:34
rogpeppewallyworld_: i think the provider should have the chance to verify that the new bucket can actually be created13:34
wallyworld_then next time an env is used, the attrs are there13:34
dimiternmgz: https://codereview.appspot.com/12661043/ .13:34
dimitern?13:35
rogpeppewallyworld_: and there might be other attributes that we want to put in there that are not random, but obtained by querying the provider13:35
wallyworld_rogpeppe: status won't work without being bootstrapped. the next bootstrap can verify the control bucket etc. but if we want the new attrs done on bootstrap, that will likely mean major code changes13:36
rogpeppewallyworld_: i don't think the changes are too bad - i've already got an experimental branch that makes ec2 work in that kind of way13:37
rogpeppewallyworld_: BTW, i've just realised your changes will break sync-tools13:38
wallyworld_i guess it depends on what is considered the lifecycle of an env and what is allowed to create one as opposed to just using one13:38
rogpeppewallyworld_: yeah, absolutely13:38
rogpeppewallyworld_: that's the crux of the issue13:38
wallyworld_sync-tools breakage is bad13:38
rogpeppewallyworld_: here's my current thoughts on how we might change the EnvironProvider interface: http://paste.ubuntu.com/5962612/13:39
mgzdimitern: lgtm13:40
rogpeppewallyworld_: both the bootstrap and sync-tools commands would call Prepare rather than Open, and save any extra attributes in .environments13:40
dimiternmgz: thanks!13:40
wallyworld_prepare vs open is good - separates out the semantics13:41
wallyworld_open would fail is prepare weren't called first13:41
rogpeppewallyworld_: yeah13:42
rogpeppewallyworld_: when calling Open we'd pass it all the config attributes including local ones13:42
rogpeppewallyworld_: actually that needs to be true for Prepare too13:43
rogpeppewallyworld_: and we're delete the local attributes when destroy-environment is called13:43
wallyworld_or have open merge them and complain if they aren't there13:43
rogpeppewallyworld_: i think it can be done outside the provider13:43
wallyworld_NewFromName and the associated Read functions would need looking at13:44
rogpeppewallyworld_: yes13:45
wallyworld_a bit of work there13:45
rogpeppewallyworld_: not too much i think actually13:46
rogpeppewallyworld_: we don't have to change the semantics of NewFromName13:46
rogpeppewallyworld_: we'd add something like PrepareFromName (bad name!)13:46
rogpeppewallyworld_: very little code is actually directly involved in bootstrapping13:46
wallyworld_i'll think about it tomorrow. quite late here now. i actually took  sick day today. i got a broken cheek bone from being king hit from behind. had to get xrays and go to the police etc etc13:48
wallyworld_it happened during a soccer game of all things13:48
rogpeppewallyworld_: woah13:49
rogpeppewallyworld_: you poor bugger13:49
wallyworld_it's not too bad. i can't chew without a fair bit of pain. makes eating kind hard13:49
rogpeppewallyworld_: BTW here are the changes to environs/ec2 required for the above interface. http://paste.ubuntu.com/5962643/13:49
rogpeppewallyworld_: soup!13:50
wallyworld_thanks, i'll look in detail and see what i can add to my branch13:50
* wallyworld_ hopes the ocr can look at his other simplestreams branch13:50
* wallyworld_ goes to take some more painkillers and heads to bed13:51
rogpeppewallyworld_: mend soon!13:52
rogpeppewallyworld_: g'night13:52
* rogpeppe goes for some lunch13:52
wallyworld_see ya, thanks for discussion13:52
rogpeppe wallyworld_: np, sorry for pushing back in the review13:53
rogpeppei'm planning to take the day off tomorrow, BTW13:54
rogpeppedimitern, nate-finch, wallyworld_: ^13:54
dimiternrogpeppe: ok13:54
nate-finchrogpeppe: cool, have fun with the long weekend13:59
sidneirogpeppe: https://codereview.appspot.com/1256904414:05
sidneidimitern: ^14:07
dimiternsidnei: looking14:07
dimiternsidnei: reviewed14:13
=== BradCrittenden is now known as bac
sidneican i get a second eye on https://codereview.appspot.com/12569044/ ? im getting someone to copy over the flavors from prodstack to canonistack so i can do some manual testing soonish.14:53
dimiternrogpeppe: ^^ ?14:54
rogpeppedimitern: just back from lunch14:56
rogpeppesidnei: lookin14:56
rogpeppeg14:56
sidneidimitern: i need to upload-tools and bootstrap with the newest to test right?14:58
dimiternsidnei: yeah, but before that, make sure you do "go install ." inside cmd/juju and cmd/jujud15:03
sidneidimitern: and what's the syntax for sync-tools?15:03
dimiternsidnei: juju sync-tools --help ? :)15:04
dimiternsidnei: you don't need sync-tools if you're doing --upload-tools15:04
sidneidimitern: ah, bootstrap --upload-tools, i was looking for an upload-tools command15:05
dimiternsidnei: yeah - when in doubt, use juju help commands and --help on a command - it's really good15:05
rogpeppesidnei: reviewed15:07
mthaddonsidnei: do you need the flavors on canonistack to be able to test?15:07
mthaddon(if so I can try and get that pushed through)15:07
sidneimthaddon: i think jjo is on it, let me check again15:08
sidneii see a couple dozen are already added, i guess the script is running15:08
dimiternsidnei: if, while testing you  see the issue mthaddon reported earlier is resolved, can you please link your MP to the bug as well?15:10
sidneialready did15:10
dimiternsidnei: great, thanks!15:12
dimiternrogpeppe: you have a few branches ready for landing15:18
sidneirogpeppe: if cpu power is only set in one of the instances then it fallsback to cpu cores, right?15:21
dimiternsidnei: cpu power and cpu cores are not linked in any way, and cpu power has only ec215:22
rogpeppesidnei: i think that if cpu power is only set in one of the instances, the one with no cpu power set will win15:22
rogpeppesidnei: because 0 is less than a positive cpu power15:23
rogpeppesidnei: or...15:23
rogpeppesidnei: are you asking about desired behaviour?15:23
rogpeppesidnei: if so, yes15:23
sidneirogpeppe: per your suggested if either side is nil we skip the cpu power check15:23
rogpeppesidnei: yeah15:23
sidneirogpeppe: ok, just double checking15:24
sidneirogpeppe: done && pushed, doing manual verification.15:27
sidneimanual verification worked as expected, so landing it.15:41
noodles775dimitern: thanks for the trivial... I assume that means it doesn't need a second LGTM, so I did the s/'/" and submitted - you should be able to just approve the MP.15:43
noodles775dimitern: btw, there were 4 bugs, so I chose one and marked the other 3 dups.15:43
dimiternnoodles775: great, will do now15:43
dimiternnoodles775: approved15:44
sidneidimitern: what's the process for creating a tarball? i thought it was in the makefile but apparently not15:51
dimiternsidnei: mgz might answer that better15:51
sidneidimitern: alternatively, i guess i just need to tar up $GOPATH/bin?15:53
dimiternsidnei: there's a script that generates the tarball + all dependencies, but I don't know where it is and the process is not documented clearly15:53
dimiternsidnei: no, you'll need the sources as well - wget a tarball and see what's inside15:54
teknicoguys, where do I find the procedure to upgrade to go 1.1?16:01
dimiternsidnei: why do you need a tarball anyway? isn't --upload-tools enough?16:01
dimiternteknico: sudo add-apt-repository ppa:james-page/golang-backports && sudo apt-get update && sudo apt-get install golang16:01
sidneidimitern: i need to get a trunk client into a canonistack instance to run tests in jenkins.16:01
teknicodimitern: thanks :-)16:02
dimiternteknico: then remove all binaries in $GOPATH/linux_*/ and rebuild & retest everything16:02
dimiternteknico: oops - I meant $GOPATH/pkg/linux_*/ :)16:02
dimiternsidnei: I see16:03
teknicodimitern: yep, and bin/ too for good measure16:03
dimiternteknico: yeah16:03
dimiternteknico: won't hurt16:03
mgzsidnei: what are you trying to do exactly?16:05
sidneimgz: getting a binary built and shipped to a remote instance to run deployment tests from the cloud16:06
mgzjust make a tarball? running the thingy under scripts/ does that16:06
sidneimgz: although i could just as easily build the binary over there16:06
mgzyou can probably just use --upload-tools?16:07
mgzor, if it's not for testing trunk, just use sync-tools16:07
mgzthen you can pull the files out of your control-bucket16:08
mgzthe tarball is nice because you can be exactly sure about what have been built and reproduce it16:08
mgzif you don't need that though (eg, for a one off test), then the existing dev methods are probably fine16:08
sidneimgz: yeah, i'll go for building from tip directly.16:09
mthaddonhi guys, who controls when PPAs get built for https://launchpad.net/~juju/+archive/devel/+packages ?16:13
mthaddoner, when packages get built for that PPA, I mean16:14
sidneimthaddon: seems to be https://code.launchpad.net/~dave-cheney/+recipe/juju-core16:16
sidneiseems they are built on https://code.launchpad.net/~juju/+archive/experimental by default16:17
mthaddonyeah, looks like it16:18
thedacsidnei: great, which revno do we need to wait for?16:18
mthaddonso can we just request a build using the button there?16:18
mthaddonthedac: we need 162116:18
mthaddon(or later)16:19
sidneii can trigger a build it seems16:19
mthaddonwoohoo16:19
thedaccool16:19
thedacI'll port that to precise-cat as soon as it builds16:19
=== Guest79504 is now known as amithkk
sidneithedac: https://code.launchpad.net/~juju/+archive/experimental/+builds?build_text=&build_state=all it's where it's at16:20
thedacthanks16:21
sidneithedac: source package is built, since i guess that's all you need16:36
thedacsidnei: thanks16:36
nate-finchrogpeppe: for the record, the import cycle I was having mysteriously went away after I finished some rework from code review suggestions.  Weird, but I'll take it16:45
rogpeppenate-finch: it may have been to do with state object files, i suppose16:46
rogpeppes/state/stale/!16:46
nate-finchrogpeppe: yeah, I was thinking that too16:47
sidneifwereade: got a minute?17:02
nate-finchdimitern, rogpeppe: https://codereview.appspot.com/12546043/   mostly minor code review changes17:06
dimiternnatefinch: looking17:09
dimiternnate-finch: reviewed17:16
=== flaviami_ is now known as flaviamissi_
nate-finchdimitern: why are we renaming gocheck to gc?  I tend to try to use the original name unless there's a conflict17:18
dimiternnate-finch: convention17:18
dimiternnate-finch: because gocheck and juju-core/checkers are used a lot, we decided to alias them to gc and jc respectively17:19
dimiternnate-finch: it helps to keep the code consistent17:19
nate-finchdimitern: fair enough17:19
dimiternnate-finch: originally, gocheck was imported as . but that's bad, just like from x import * in python, so we decided to avoid that and be explicit17:20
rogpeppenate-finch: because "gc" is better than nothing at all, but still reasonably terse17:20
dimiternnate-finch: not all of the codebase is converted to the new style: 1) separating stdlib, third-party and juju-core imports by blanks; 2) using gc and jc for gocheck and checkers; 3) prefer longer names if possible, rather than 1-2 letters vars17:21
dimiternnate-finch: exception for 3) (most of the time) method receivers, like func (s *someSuite) are usually ok17:22
nate-finchdimitern: yeah import  as . is really bad. Glad we're moving away from it.17:22
dimiternbut it's better to have machiner, err := state.Machine(id) than m, e := state.Machine(id)17:23
nate-finchdimitern:  yep17:23
dimiternnate-finch: most of these are not really "set in stone", but like highly recommended "best practices"17:24
* rogpeppe finds "m" just fine for a local variable referring to a machine17:26
rogpeppenate-finch: reviewed17:26
dimiternrogpeppe: but "machine" is even better :)17:27
rogpeppedimitern: personally, i don't think so17:27
rogpeppedimitern: i think extra verbosity can make code harder to read17:27
dimiternrogpeppe: aha.. ok :)17:27
dimiternrogpeppe: if, we're talking about takeThisVeryLongAndMeaninglessIdentifierHere, I agree17:28
dimiternrogpeppe: otherwise, for short and meaningful idents, like machine, or wordpressUnit, or assertStopsCleanly := func() .. I disagree17:29
rogpeppedimitern: russ cox said it best: the length of an identifier should be proportional to its information content17:30
dimiternrogpeppe: yeah, and unless it's a loop counter, it'd better be a word at least17:31
nate-finchrogpeppe: I agree with you and russ. I use single letters most of the time... sometimes up to 3 letters if it's a good abbreviation of the word (like ctx for context)17:31
rogpeppedimitern: if i see m := x.Machine(), it's a fair bet that the Machine method is returning a *Machine :-)17:32
dimiternnate-finch: you should try to convince thumper then :)17:32
rogpeppenate-finch: this is not idiomatic Go territory :-)17:32
dimiternrogpeppe: I'm glad it isn't :)17:33
nate-finchrogpeppe: that's too bad. I like almost everything in idiomatic Go17:33
* rogpeppe finds the standard Go library very easy to read17:33
rogpeppenate-finch: yeah, me too; it's one of the things that makes me like the language as a whole.17:33
nate-finchrogpeppe: yep. Simplicity and explicitness and readability17:34
dimiternrogpeppe, nate-finch: well, don't forget there are other people with different views on what's considered "readable" :)17:35
nate-finchdimitern: of course.17:35
rogpeppedimitern: i understand that, and i write my juju code accordingly these days17:35
nate-finchdimitern: they're just wrong ;)17:35
dimiternnate-finch: hehe, wrong or not - it's consensus that matters17:35
nate-finchdimitern: yes, definitely. And that's actually one of the things I like about go format... I wouldn't have made all the same choices, but I like that there's no more debate about it.17:36
dimiterna bit of compromise, here and there for the benefit of even people, not that familiar with go itself17:36
nate-finchdimitern: and I'm fine with whatever conventions are established in Juju17:36
dimiternlet's try to keep in mind that the project is open source and aims to be popular and attract external contributors17:37
dimiternif a few extra chars make things easier to read, even for a novice go dev, it's a good thing17:37
dimiterni kinda hate OSS projects where you've to read *pages* of rules on how to contribute, etc. because the project is so important17:39
dimiternrogpeppe: btw so you'll be off tomorrow, and wallyworld as well17:40
dimiternnate-finch, mgz: you'll be here tomorrow, right?17:40
nate-finchdimitern: yep.17:40
rogpeppedimitern: i will be, yes17:40
nate-finchdimitern: I haven't earned much vacation time in the last 8 work days :)17:40
dimiternman, we're running low on workforce this week :)17:40
rogpeppedimitern: leaving very soon actuall17:40
rogpeppey17:40
dimiternit's good the iom guys will be back next week17:41
nate-finchrogpeppe, dimitern: you guys are on London  time, right?17:41
rogpeppenate-finch: i am17:41
dimiternrogpeppe: rogpeppe yes, but I'm on CET17:41
rogpeppedimitern: dimitern is one hour earlier17:41
dimiternlater17:41
rogpeppedimitern: yeah. well, depends how you look at it17:42
rogpeppedimitern: you get up an hour earlier than me :-)17:42
dimiternrogpeppe: i doubt it :)17:42
dimiternrogpeppe: it's 7.42pm here now17:42
nate-finchthat's what really matters :)17:42
rogpeppedimitern: lol17:42
nate-finchdimitern: makes for a late working day17:43
* rogpeppe is off now17:43
nate-finchrogpeppe: Have a good weekend17:43
dimiternrogpeppe: have a nice, long weekend then ;)17:43
rogpeppedimitern, nate-finch, mgz: g'night17:43
rogpeppedimitern: i will. going to the Lake District and up some cliffs, then down some caves to learn vertical rope technique.17:44
dimiternman.. one more huge review to do and i'll be off as well17:44
nate-finchrogpeppe: wow, awesome17:44
dimiternrogpeppe: wow - upsailing?17:44
rogpeppedimitern: SRT17:44
rogpeppedimitern: going up and down the rope17:45
rogpepperight, gotta go!17:45
dimiternrogpeppe: take care then, don't overdo it17:45
rogpeppe:-)17:45
jrwrenhas anyone attempted to write a vmware environment?19:06
=== tasdomas is now known as tasdomas_afk
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/121032823:14
_mup_Bug #1210328: cloudinit: switch apt-add-repository to use ppa:juju/stable <juju-core:New> <https://launchpad.net/bugs/1210328>23:14
davecheneyjamespage: thanks for getting this sorted for me/us/everyone23:14
davecheneyok, going to hunt some breakfast then will cut 1.13.123:41

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