/srv/irclogs.ubuntu.com/2014/02/05/#juju-dev.txt

axwwallyworld_:  I think the bot might need a poke again? waigani 's branch looks stuck (https://code.launchpad.net/~waigani/juju-core/expand-config-variable-names/+merge/204412)01:59
wallyworld_ok01:59
axwand my MP is attached to the bug here: https://bugs.launchpad.net/gwacl/+bug/127601902:00
_mup_Bug #1276019: 307s are not followed other than for GET/HEAD, and headers are dropped from those <Go Windows Azure Client Library:In Progress by axwalk> <https://launchpad.net/bugs/1276019>02:00
wallyworld_axw: bot seems ok actually02:00
axwhm ok02:00
wallyworld_it's running a test now02:01
wallyworld_axw: ah error02:01
wallyworld_erging https://code.launchpad.net/~waigani/juju-core/expand-config-variable-names into https://code.launchpad.net/~go-bot/juju-core/trunk would be pointless02:01
axwah. 6 hours just seemed like a long time :)02:01
axwoh02:01
wallyworld_so there's a problem with the branch02:01
wallyworld_it could be that trunk already has the changes02:02
wallyworld_yes02:02
wallyworld_it does02:02
axwokey dokey02:02
wallyworld_so i'd say another merge accidentally has these changes in it02:03
wallyworld_i set the mp to merged02:03
axwwallyworld_: FYI, I have Thursday/Friday off02:26
wallyworld_lucky bugger02:26
wallyworld_enjoy02:26
axwta :)02:27
axwwallyworld_: I have pushed another change to the gwacl MP. Tested live - works better now.04:48
wallyworld_ok, looking04:48
wallyworld_axw: to be consistent and simplify the code, should we always just check the response code and avoid needed to return a httpredirect error for some calls and not others04:50
axwwallyworld_: the error must be returned to prevent net/http from following redirects at all04:51
wallyworld_ah right04:51
wallyworld_in that case, looks good04:51
axwcheers04:51
hazmataxw, out of curiosity, what do you think about add-machine ssh: supporting instance id on the cli?06:41
axwhazmat: yeah, could be useful for manually provisioning into existing environments, e.g. on ec206:42
axwso the instance becomes managed by juju06:42
hazmati'm writing a cli plugin, and could avoid the use of the api entirely, if i could just set the instance id i could just use the cli.06:42
hazmatits mostly so i can correlate directly back to the underlying provider instance easily without doing ip addr matching.06:43
axwright06:43
axwI think it would have to be encoded into the address somehow06:43
axwto avoid further special casing of add-machine06:43
hazmataxw, ssh:user@ipaddress:instance_id ?06:44
axwwe might want : for non-standard ssh ports later. I'd say something like / or =06:44
axwbut anyway, yeah it could work06:45
hazmatsounds good, i'll file a bug06:47
davecheneyaxw: i was thinking about what could be done to make the gccgo detection work08:12
davecheneyit would be abomonation, but could proabably be done08:12
axwdavecheney: yup. I was thinking the same thing, i.e. a known caller name08:12
axwI wouldn't bother changing it now though, maybe if it needs to be changed again...08:13
davecheneyaxw: i think we're goig to be flapping between 4.8 and 4.9 for some time08:13
davecheneyit might be worth the effort to gold plate it08:14
axwheh ok :)08:14
davecheneyaxw: it might also be possible to cheat08:15
davecheneygccgo 4.8 implements go 1.108:15
davecheneymaybe I can use a +build tag08:15
axw1.1? :(08:15
axwI thought we had moved to 1.2 now08:16
davecheneygccgo 4.8 implements the 1.1 spec08:16
rogpeppedavecheney, axw: mornin'08:17
axwmorning rogpeppe08:18
dimiternmorning all08:26
dimiternrogpeppe, i have some questions re goamz, and since gustavo is not around, do you have some time?08:26
rogpeppedimitern: sure08:26
dimiternrogpeppe, so, i've tried (hard) yesterday to construct a sophisticated multi-part test that runs both on the test double and live08:27
dimiternrogpeppe, but i've run into issues like eventual consistency and such (i.e. i'd really like to have something similar to Long/ShortAttempt in goamz)08:28
rogpeppedimitern: i think goamz already has the attempt stuff in08:28
dimiternrogpeppe, am I to take from this such tests are not needed inside goamz itself, but just simpler ones that focus on response parsing is ok etc.08:29
rogpeppedimitern: yeah, aws.AttemptStrategy08:29
dimiternrogpeppe, ah, I've missed that08:29
dimiternrogpeppe, also i found the ec2test package a bit inflexible08:29
dimiternrogpeppe, i.e. you cannot easily setup the same case and make sure it'll run the same on both local and live servers08:30
rogpeppedimitern: yeah, it was as simple as i could come up with08:30
rogpeppedimitern: i'm not sure what you mean by that though08:31
dimiternrogpeppe, like state changes over time in instances / other entities08:31
rogpeppedimitern: there are quite a few existing tests that work both live and against ec2test08:31
dimiternrogpeppe, there's an SetInitialInstanceState08:31
dimiternrogpeppe, yeah, and I've done mine similarly, but for more complex cases it's much too difficult08:31
rogpeppedimitern: what would you like to be able to do?08:32
dimiternrogpeppe, like "i need to test network interface ops", but for that i need: 1) a vpc, 2) a subnet, 3) a *running* instance in that subnet, 4) a security group for that vpc, 5) the net interface itself08:33
dimiternrogpeppe, i.e. the set up is heavy, slow when run live and not very reliable08:34
rogpeppedimitern: i think that it's going to be hard to have ec2test actually run a live instance08:34
dimiternrogpeppe, apart from errors due to my assumptions, sometimes i get errors like "503 unavailable" or some random error08:34
rogpeppedimitern: and the heavy & slow setup applies to ec2 live tests, not ec2test, right?08:35
dimiternrogpeppe, so it's best to separate the local and live test cases for more complex scenarios08:35
rogpeppedimitern: and the reliability problems too, i'd guess08:35
dimiternrogpeppe, 2x yep08:35
rogpeppedimitern: why do you need a running instance?08:35
dimiternrogpeppe, because you can't attach a NIC on a instance that's not in running state08:35
dimiternrogpeppe, unless you've done it at runinstances time, but that's another test08:36
rogpeppedimitern: ok, so you don't actually need it to be running something, just for it to report the state as running08:36
dimiternrogpeppe, yes08:37
rogpeppedimitern: i'm not sure that particular case matters too much to test. is it that important to check all error states?08:38
dimiternrogpeppe, take a look at what i've came up with after several hours of trial-and-frustration yesterday: http://paste.ubuntu.com/6877862/08:38
rogpeppedimitern: BTW it's good to at least have the live tests, because then you get to know just how it's likely to fail for real08:39
dimiternit's not ready yet, i'll split it up, etc. but it works 60% of the time up to the last Check() which fails with "NIC cannot be deleted because it's in use" (but got detached ok)08:39
rogpeppedimitern: presumably you'll need to do a retry loop around the DeleteNetworkInterface call08:40
rogpeppedimitern: i'm still not quite seeing how the ec2test package isn't flexible enough for your needs here08:41
rogpeppedimitern: ISTM that the real difficulty is writing reliable live tests08:41
dimiternrogpeppe, yes, but i was too tired yesterday already - i'll also replace my jury rigged loop with attemptstrategy if possible08:41
dimiternrogpeppe, isn't because it's not simulating the "eventual consistency" of certain features08:42
dimiternrogpeppe, like "make the instance state change slowly" or "do not delete X immediately, but say you did, and report it in use for some time after"08:42
rogpeppedimitern: it's true, it doesn't, because it's hard to see how to get it right. but surely your tests will work ok if ec2test is always consistent?08:43
davecheneyrogpeppe: morning -- sorry, missed your thinggy08:43
rogpeppedavecheney: hiya08:43
dimiternrogpeppe, yes, I started with a far easier test that worked on ec2test like charm08:43
dimiternrogpeppe, the problem was to achieve the same live using the same steps, which turned into this08:44
rogpeppedimitern: i don't see why ec2test is making things harder here08:44
rogpeppes/why/how/08:44
rogpeppedimitern: BTW, rather than polling by calling Instances repeatedly, might it not be better to just call CreateNetworkInterface repeatedly until it doesn't return the expected error?08:47
rogpeppedimitern: then you won't need to worry about the fact that ec2test instances don't transition to running state08:47
dimiternrogpeppe, that's a good point, thanks08:52
dimiternrogpeppe, and then there are 2 more things i've been wondering about08:52
dimiternrogpeppe, 1) how detailed should be the tests checking for errors (i.e. how good the ec2test package should simulate all cases)08:53
rogpeppedimitern: it's not that important08:54
dimiternrogpeppe, and 2) right now goamz uses a fairly outdated api version - 2011-12-15, but some features we need are in later versions08:54
dimiternrogpeppe, should we support mixed versions?08:54
rogpeppedimitern: ec2test is a test double for the ec2 provider - it doesn't need to simulate all errors; getting the happy path right is what we've done so far08:55
rogpeppedimitern: i think we should use the earliest version that supports the features we need08:55
rogpeppedimitern: or... perhaps just update the whole thing to use the latest version08:56
rogpeppedimitern: there might not actually be too much in the way of changes08:56
dimiternrogpeppe, upgrading everything is less than trivial08:57
dimiternrogpeppe, but perhaps worth it08:57
rogpeppedimitern: yeah, i'm not entirely sure.08:58
rogpeppedimitern: the version is per-request though, right?08:58
dimiternrogpeppe, right08:59
dimiternrogpeppe, so far the least intrusive approach would be to change the version only for the new calls and only for the old ones if it's unavoidable09:00
rogpeppedimitern: yeah, i think that's a good approach to start with09:00
dimiternrogpeppe, how about supporting different filters in ec2test?09:02
rogpeppedimitern: is there a problem with just adding the new filters?09:03
dimiternrogpeppe, some are quite broad, like 25 cases09:03
dimiternrogpeppe, so ec2test should support all filters for the new entities09:03
rogpeppedimitern: ec2test does not have to support everything, but it should support the things that are being used09:04
dimiternrogpeppe, by whom?09:04
rogpeppedimitern: by your live test and by provider/ec209:04
dimiternrogpeppe, yep, but on one hand i'm not sure what we'll need in the provider, on the other - it's a generic library after all and it has other users that might benefit from fuller implementation09:05
rogpeppedimitern: i'd err on the "do less" side to start with09:06
rogpeppedimitern: that's been my approach since the start - the amazon API is much larger than we need to entirely support09:06
dimiternrogpeppe, ok then, i'll try to be minimalistic in the implementation :)09:07
rogpeppedimitern: so, pending actual code in the provider that uses the stuff, i'd just add the functionality in ec2test that's needed by the live tests, so that they can run on ec2test as well as live09:07
rogpeppedimitern: that's always a good thing in my book :-)09:07
dimiternrogpeppe, :) ok, thanks for the suggestions09:08
rogpeppedimitern: np09:08
dimiternrogpeppe, can you take a look at this please? https://codereview.appspot.com/49930045/ re what we just discussed09:09
dimitern(i.e. could it be simplified)09:10
rogpeppedimitern: looking09:10
=== bradm1 is now known as bradm
mgzstandup all?10:46
natefinchdimitern, rogpeppe: standup?10:48
mgztotally forgot to mention in standup, landing bot will be down shortly, I'll give you guys a heads up when it's online again11:18
jammgz: poke, i'd like to tweak some of the bot stuff, but I'd appreciate your help11:40
mgzjam: sure, remember it's all going down in ~15 mins11:45
jammgz: sorry about the delay. I'd like to see us add "go test -test.timeout 2m" to the test suite, so that instead of getting the 10m test-took-too-long, we'll get a panic if any individual test takes more than 2min12:14
jamwe shouldn't take longer than that for a test we're writing anyway12:15
jamand it might help us debug WTF for the provisioner12:15
mgzjam: that sounds reasonable12:17
jammgz: good. I just saw the "maintenance starting now" which reminded me I wanted to poke you about the bot for when it comes back up12:18
jamwe need to change that stuff in the juju conf, otherwise the bot will overwrite it all when it comes up12:18
mgzwe can just set the tarmac-conf value when we have the state server back, right?12:25
jammgz: well, and deal with any fallout of stuff that didn't actually get put into conf properly.12:34
jambut we have to do that anyway12:34
=== _mup__ is now known as _mup_
=== gary_poster|away is now known as gary_poster
dimiternmgz, hey, i've just updated all the CLs and proposed the NIC one: 1 https://codereview.appspot.com/49930045/ 2 https://codereview.appspot.com/54690048/ 3 https://codereview.appspot.com/54570048/13:41
dimiternrogpeppe, ^^ if you can take a look as well would be nice14:03
rogpeppedimitern: will do14:03
mgzdimitern: thanks14:05
rogpeppedimitern: you've got one review14:29
dimiternrogpeppe, cheers!14:30
dimiternrogpeppe, the "you" phrasing is copied from aws docs :)14:31
rogpeppedimitern: yeah, but it's not idiomatic in the goamz docs (no other occurrences of "You" AFAICS)14:31
dimiternrogpeppe, sure, thanks for spotting14:36
rogpeppedimitern: you've got another review14:47
dimiternrogpeppe, ta14:48
rogpeppedimitern: all reviewed :-)15:17
dimiternrogpeppe, tyvm!15:19
rogpeppedimitern: thanks for all that work15:19
dimiternrogpeppe, there's even more coming :)15:19
rogpeppedimitern: presumably the live tests pass?15:19
dimiternrogpeppe, but i'm fast now, it should be easier15:20
dimiternrogpeppe, yep, ran them several times in a row15:20
rogpeppedimitern: cool15:20
mgzwhat's a safe way to stop and restart jujud on a state server?15:23
natefinchmgz: sudo restart juju possibly?15:26
mgzjujud-machine-0 it seems15:27
natefinchrogpeppe: is there a way to compile all regular and test code at the same time, but not run the tests?15:29
natefinch(or if anyone else knows)15:29
rogpeppenatefinch: go test -c15:29
rogpeppenatefinch: except that unfortunately you can't run "go test -c ./..."15:29
natefinchrogpeppe: Tried that, but it does't work across packages, though.  I want go test ./... -c15:29
natefinchright15:29
rogpeppenatefinch: i have a script that does that15:29
rogpeppenatefinch: i call it "gotest-c"15:29
natefinchrogpeppe: nice15:29
rogpeppenatefinch: http://paste.ubuntu.com/6879643/15:30
rogpeppenatefinch: i should probably change it to use bash so other people can use it :-)15:30
natefinchrogpeppe: haha yeah I was thinking that15:31
rogpeppenatefinch: you can get pxargs with go get code.google.com/p/rog-go/cmd/pxargs15:31
rogpeppenatefinch: (it's similar to xargs except runs commands in parallel)15:31
rogpeppenatefinch: http://paste.ubuntu.com/6879677/15:35
mgzhm, so the real issue is I can't get the juju-db service to stick, comes up with no error, nothing in upstart log, but no mongodb process survives15:39
mgzprobably just the out of disk thing, will restart and watch syslog more closely15:40
jammgz: this is the tarmac machine-0? (vs the actual tarmac machine-1 that runs the bot?)15:42
mgzyeah, playing with machine-015:42
mgzlooks in better state at attempt #215:42
mgzhm, I say that, it's spamming machine-0.log still15:43
mgzwell, that sucked15:59
mgzhad to manually fix the provider-state file, and clean up spammed out logs for disk space15:59
mgzlogging ever 2s a state connection can't be made is pretty disk filling too16:01
rogpeppelunch16:05
jamhave a good night, we're heading off to dinner16:12
rogpeppedimitern: does this look reasonable to you? http://paste.ubuntu.com/6880125/16:55
rogpeppedimitern: i'm trying to check if a field is either false or not present16:56
rogpeppedimitern: (the hasvote clause)16:56
rogpeppedimitern: but it doesn't appear to be working16:56
dimiternrogpeppe, shouldn't it be more like {"$or", []D{{{"hasvote", D{{"$ne", true}}}}}} ?16:59
rogpeppedimitern: ah, that's a much better idea17:00
rogpeppedimitern: (and no need for the $or then)17:00
rogpeppedimitern: solved, thanks!17:01
* rogpeppe feels a bit stupid :-)17:01
dimiternrogpeppe, ;) np17:03
natefinchMan that mgo code kills me17:06
rogpeppenatefinch: it's the subtle distinctions between maps and arrays that i always forget17:13
rogpeppedimitern, natefinch: fairly trivial review? https://codereview.appspot.com/50590045/17:16
rogpeppedimitern, natefinch: and an even more trivial one: https://codereview.appspot.com/5469005117:26
dimiternrogpeppe, looking at both in order17:31
rogpeppedimitern: thanks!17:31
natefinchrogpeppe: looking at both in reverse order17:33
dimiternrogpeppe, both reviewed17:38
rogpeppedimitern: thanks a lot17:39
rogpeppedimitern, natefinch: and one last one, also trivial: https://codereview.appspot.com/5974004917:41
dimiternrogpeppe, LGTM17:43
rogpeppedimitern:17:43
rogpeppedimitern: ta!17:43
rogpeppeoh dear, the gobot seems to be broken18:05
rogpeppeflag provided but not defined: -test.timeout18:05
rogpeppemgz: do you know why that was changed?18:06
mgzjam asked earlier18:13
mgzI'll get back to fixing it if I manage to recover juju, which is pretty severly borked18:13
rogpeppemgz: ok, thanks18:22
rogpeppei'm done for the day. g'night all.18:22
mgznight!18:22
natefinchrogpeppe: g'night18:22
mgzokay, I might have un-stuck it18:24
mgzbut we're kind of in a bad spot18:24
mgzthe juju version for the landing bot is still 1.11.0 and because of all the tools and config changes, it actually not upgradable18:24
mgzor at least, I'd need to refer back to each old version to find the correct tools config to pass both client and remote side lookup of tools, then walk it up the versions18:25
mgzwhich... I don't want to do18:25
natefinchmgz: can we not just kill it and redeploy with a new juju?18:38
mgznatefinch: I think that would be the sanest option, but the tarmac charm needs work first18:41
natefinchmgz: so is this because we didn't keep up with upgrades, or what?  What do we expect users to do in this situation?18:42
mgzroll over and die I think...18:43
natefinchmgz: that seems to not be the most user friendly decision... :/18:43
mgzseriously though, we should probably make sure any one who runs juju for semi-production stuff does an upgrade at each major version18:44
mgzthough we should be less churny than we were last year18:44
mgzgoing through three config settings and a bunch of different layouts for tools stuff was pretty nuts18:45
natefinchmgz: we really just need to review our upgrade story.... there's no reason you shouldn't be able to upgrade directly from 1.11 to 1.17 (or whatever).  You just run the code that does 1.11->1.12, then run the code that does 1.12->1.13, etc (or whatever... I know we do that wacky even odd thing)18:49

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