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

wallyworlddavecheney: if you are free, i'd love a review for a critical 1.15 release fix https://codereview.appspot.com/1401104300:30
* davecheney looks00:30
wallyworldthanks :-)00:31
davecheneywallyworld: LGTM. not a lot to complain about there00:32
wallyworld\o/00:32
davecheneyif you want, i *can* complain00:32
davecheneyi have had a lot of practice00:32
wallyworldi really wish we have CI testing cause these things would have shown up sooner00:32
davecheneydoes anyone know what 'provider state lookup' is ?01:04
thumperdavecheney: I thought ` quoted strings were raw?01:43
thumperbut it is complaining about \01:43
thumperwhat is the difference between ` and " ?01:44
davecheney` is raw01:45
davecheneyso01:45
davecheney`"tim"` == "\"tim\""01:45
davecheneywhat is 'it' ?01:45
thumpera fuck sticks01:45
thumperthere is a mix of ` and " in the file for error matches01:45
davecheneyhttps://bugs.launchpad.net/charms/+source/haproxy/+bug/123176801:55
_mup_Bug #1231768: config-changed: fails when global_maxconns is not set <haproxy (Juju Charms Collection):Triaged> <https://launchpad.net/bugs/1231768>01:55
davecheneywhat has gone on here ?01:55
* thumper shrugs02:01
thumperthis is a bug about all bool options being false, perhaps related?02:01
thumperwallyworld: I'll send an email to the list about the local provider issues02:10
wallyworldthumper: ok. did you notice one of your branches had a few small test issues?02:10
thumperyeah, fixed and resubmitted02:11
wallyworldthumper: i'm trying to get legacy tools removal finished. i think we should land that because legacy tools does not pick up checksums and running from trunk now uses simplestreams anyway02:11
thumperwallyworld: how does this impact the local provider?02:12
wallyworldthe local provider uses simplestreams now that i have landed a previous fix02:12
wallyworldit was failing for you because it was failing bacl to legacy02:12
wallyworldhence no checksums02:12
wallyworldso removing legacy will catch the error earlier02:13
wallyworlds/the/any02:13
thumperok02:30
axwwallyworld: null-provider is getting "cannot set agent tools for machine 0: empty size or checksum"  -- is this related to not implementing SupportsCustomSources?03:09
wallyworldaxw: yes. it needs to do what i just did for local provider03:09
axwI just added the GetToolsSources method to nullEnviron, but I get that still03:09
axwwallyworld: thanks, I'll see what else you did03:09
wallyworldwhat did you return03:09
axwwallyworld: same as local03:10
wallyworldthat should have worked then03:10
wallyworldit will have the checksum error if it can't find tools via simplestreams03:10
wallyworldare tools uploaded?03:10
wallyworldis this in a test?03:10
axwwallyworld: simplestreams metadata has been uploaded03:11
axwwallyworld: in a live test against my VM03:11
wallyworldif you run with debug and you see a messaging saying can't find tools, using legacy (or something like that) then it is not finding the tools meatdata03:12
axwwallyworld: nothing about legacy, just this:03:13
axw2013-09-27 03:09:57 ERROR juju runner.go:211 worker: exited "upgrader": cannot set agent tools for machine 0: empty size or checksum03:13
wallyworldthat will happen as a result of not finding tools metadata. or, it could be a Tools{} struct is being constructed somewhere without Size and Checksum being set03:14
axwwallyworld: I guess it's not finding it, because what's there does have the size and checksum03:15
axwI'll keep digging03:15
wallyworldrun with debug and paste the output if you like03:15
wallyworldare you sure the tols have been put in the right place?03:16
wallyworldbbiab03:18
* thumper upgrades to saucy to look for lxc issues03:30
thumperI'm having trouble replicating some of the bugs with raring03:30
davecheneythumper: god's speed03:32
axwwallyworld: ah, I think I know the problem. It's because of the sftp:// url ;)03:33
davecheneyi've finally got this laptop stable after the random reboot o rama of precise and quantal03:33
davecheneythere is no way i'm upgrading again03:33
thumperheh03:33
wallyworldaxw: ah ok.03:33
axwthumper: given this issue that's just popped up, and me remember that Monday is a holiday, one of my tasks probably does want to go red03:37
axwremembering*03:37
wallyworlddavecheney: i forgot to add public bucket to ec2 before https://codereview.appspot.com/1402104303:40
thumper2.4 gig to download to upgrade03:46
thumper18 packages are going to be removed. 232 new packages are going to be  installed. 1943 packages are going to be upgraded.03:46
* thumper goes to make a coffee03:46
davecheneywallyworld: LGTM, trivial03:47
davecheneyfire at will03:47
wallyworldthanks :-)03:47
davecheneyo.O03:47
davecheney2.4 G to download ?03:47
davecheneyi don't think precise ocupied 2.4 Gb on disk03:47
thumperdavecheney: raring04:27
davecheneywow04:30
davecheneyDOWNLOAD ALL THE THINGS!04:30
davecheneycan anyone help me with this issue06:13
davecheneyp1/0:config-changed % config-get --format json global_maxconn06:13
davecheney""06:13
davecheney^ inside the unit the default value is not being reported06:13
davecheneythis value defaults to 4096 in the config.yaml06:13
davecheneybut is being returned as "" in the hook context06:14
rogpeppemornin' all06:37
davecheneymornning rogpeppe06:37
davecheneyany idea on the questio above ?06:37
davecheneyit's blocking me atm06:37
rogpeppedavecheney: just looking06:37
davecheneyi'm redoin the environment06:38
rogpeppedavecheney: i wonder if this is related to the recent problems with boolean in a hook context06:38
davecheneyi REALLY hope this isn't a transient failure06:38
davecheneyrogpeppe: we copy the config settings into the state don't we ?06:39
davecheneywell, obviously06:39
davecheneythat is how juju get works06:39
davecheneyand get reports the value correctly, and understands its got a default, and is an int06:39
rogpeppedavecheney: this stuff has changed not too long ago and i'm not familiar with the code any more06:40
davecheneyoh poo06:45
davecheneychange is bad06:45
rogpeppedavecheney: how can i get sudo to use my normal environment vars?06:46
rogpeppedavecheney: scratch that, found it06:47
davecheney-E from mempory06:48
davecheneyprobably not right06:48
rogpeppedavecheney: yeah, but it doesn't preserve $PATH. crappy frickin' thing. a recipe for unexpected behaviour06:49
rogpeppedavecheney: so is this *really* the hoop one needs to jump through to bootstrap the local provider? sudo -E sh -c "export PATH=$PATH; juju bootstrap -e local --debug06:52
rogpeppeaxw: ^06:52
davecheneyrogpeppe: juju will already be in the path06:52
davecheneyunless you're a developer06:52
davecheneywhich sucks for you06:52
rogpeppedavecheney: true06:53
davecheneyahh06:53
davecheneynow I understand your comment on unexpected behavior06:53
davecheneyand why none of you guys test the juju ppa's :)06:53
rogpeppedavecheney: and non devs won't need GOROOT set either, i suppose06:53
axwrogpeppe: ?06:53
axwrogpeppe: sudo `which juju` ...06:53
rogpeppeaxw: you've been using the local provider quite a bit06:53
davecheneyrogpeppe: NOBODY needs $GOROOT set06:53
davecheneybut lets not get distracted06:54
rogpeppeaxw: that doesn't work for me06:54
fwereadedavecheney, https://bugs.launchpad.net/juju-core/+bug/123145706:54
_mup_Bug #1231457: uniter API discards non-string config settings <juju-core:Fix Committed by dimitern> <https://launchpad.net/bugs/1231457>06:54
rogpeppedavecheney: ahem06:54
axwrogpeppe: what's the problem?06:54
rogpeppedavecheney: yeah, it's just path06:54
axwI mean, what's the outcome06:54
rogpeppeaxw: i bootstrapped it ok - i just found it... unintuitive06:54
davecheneyfwereade: shit, i'm using yesterdays rev06:55
davecheneywell, that is a day I won't get back06:55
rogpeppeaxw: if you've got a version of juju that isn't at /usr/bin/juju, it fails06:55
axwrogpeppe: yeah, it's not great. IIANM, future versions of Ubuntu/lxc/upstart will allow us to have local without root06:56
rogpeppeaxw: that would definitely be an improvement!06:56
fwereadedavecheney, chit, bad luck:(06:56
davecheneyfwereade: checking now06:57
davecheneythanks for the answer06:57
davecheneyi take it that the cli doesn't use the api in the same way the unit agent does06:57
fwereadedavecheney, the CLI still hardly uses the api06:57
fwereadedavecheney, but even when it does there will be approximately no overlap with the agent API06:57
davecheneythat would explain the disparity06:58
fwereadedavecheney, yeah -- and particularly in terms of config settings the results are very different *anyway*06:59
fwereadedavecheney, because ServiceGet or whatever it is returns a great ugly pile of human-targeted bs like "description" and whether or not a value is the default07:00
davecheneyfwereade: oh fuck, don't mention default07:01
davecheneyi'll cry07:01
fwereadedavecheney, when really it should be a charm url + basic config settings, and the client can dress that up however he wants07:01
rogpeppefwereade: do you have anything to say about https://codereview.appspot.com/13969043/ before i approve it?07:12
fwereaderogpeppe, I still don't love it but I'm not going to fight it,because an extension *will* be useful if those files are floating around freely, and it'll be better to have all such files with a consistent convention07:22
rogpeppefwereade: well, i'm very happy to go with any alternative suggestion07:22
fwereaderogpeppe, if you're just thinking of the actual choice of extension I'm fine with .jenv... can't see anything elseobviously using it07:26
rogpeppefwereade: yeah, that's what i was thinking of07:26
rogpeppefwereade: ok, cool07:26
rogpeppefwereade: you'd prefer no extension at all?07:26
fwereaderogpeppe, only slightly, and I don't have strong arguments to justify it07:27
fwereaderogpeppe, whereas your arguments is favour of an extension doseem pretty strong07:28
rogpeppefwereade: ok, cool07:28
rogpeppefwereade: i'll approve then07:28
rogpeppefairly simple review, anyone? https://codereview.appspot.com/1402804308:23
rogpeppedimitern, fwereade, axw, TheMue, wallyworld: ^08:24
TheMuerogpeppe: looking08:26
rogpeppeTheMue: thanks08:26
rogpeppeg08:34
rogpeppeaxw: thanks for the review08:35
axwnps08:35
wallyworldfwereade: i have to do a few things now, but can we talk about the release etc later08:44
TheMuerogpeppe: reviewed08:46
fwereadewallyworld, sure08:49
fwereadewallyworld, pre-standup?08:49
wallyworldfwereade: maybe, depends when i'm back. i have a branch which removes all legacy tools. there are about 6 upgrader tests commented out because of a slight change in tools finding logic (it stops looking earlier than legacy) and the tools in private hide the ones in public08:52
wallyworldi could out that up for a pre-review if you want08:52
wallyworldput08:52
wallyworldi had to rename all our fake charms from "series" to "quantal"08:52
wallyworldsince simplestreams does not allow fake series08:52
wallyworldand no test machine will be running quantal08:52
wallyworldso there's a lot of one line changes all over the place08:53
wallyworldfwereade: so i might propose it with the upgrader tests mentioned above commented out and come back later to talk about it08:54
wallyworldfwereade: https://codereview.appspot.com/14031043/   i'll come back later, i may miss the standup but do want to discuss the release08:58
TheMuefwereade, rogpeppe, dimitern: one one too complex review, https://codereview.appspot.com/14030043/09:03
rogpeppeTheMue: why do we need to keep the old Status method around?09:05
rogpeppeTheMue: can't you just return some more data from Status (like you added the data param to SetStatus) ?09:06
TheMuerogpeppe: only want to do this in two CLs09:06
TheMuerogpeppe: just keep this one small09:07
dimiternTheMue, looking09:07
rogpeppeTheMue: i don't think a few extra underscores add much to a review burden, but fair enough i guess09:08
dimiternTheMue, reviewed09:11
TheMuedimitern: thx, just seen09:12
TheMuedimitern: maybe I should really change Status immediatelly ;)09:13
axwif anyone has cycles, could I please get a review on this? https://codereview.appspot.com/14011046/09:27
axwnull provider is broken without it.09:27
axwfwereade: I've POCd some changes to wire up prechecker; let me know if it's too evil ;)  https://codereview.appspot.com/1403204309:27
axwfwereade: only thing I'm not really sure about is the modification to cmd/jujud. it's a new dependency, but it seems like the setup of State does belong here09:28
rogpeppewallyworld: any particular reason you changed "series" to "quantal" in your MP?09:30
fwereadeaxw, cheers, I'll take a look09:36
rogpeppeaxw: i think your changes there are a good reason for us to avoid optional environs interfaces.09:44
rogpeppeaxw: but it may well be too late for that.09:44
rogpeppemgz: ping10:24
rogpeppeaxw: i'm wondering about bootstrap storage10:25
rogpeppeaxw: would it be possible for a provider to know if it has already been bootstrapped and therefore whether it's appropriate to use bootstrap storage or not?10:26
rogpeppeaxw: then we could lose all externally visible BootstrapStorage stuff10:27
mgzrogpeppe: hey10:34
rogpeppemgz: could we have a chat about the addressing stuff10:34
rogpeppe?10:34
mgzyup, before or after standup?10:35
rogpeppemgz: how about now, same hangout?10:35
mgzI'm there10:35
fwereadeaand I'm back through no logical means that I can discern10:48
axwrogpeppe: I couldn't think of a good way to do that before, but I'd certainly prefer that if possible11:02
axwgoing out now - have a nice weekend11:02
dimiternaxw, have a good one as well11:02
fwereadegaah11:04
TheMuerogpeppe, dimitern, fwereade: to be sure please once again https://codereview.appspot.com/14030043/11:05
fwereadeTheMue, reviewed11:11
TheMuefwereade: thanks11:15
dimiternrogpeppe, I'm trying to add a test to prove state.Open fails for unit agents11:47
dimiternrogpeppe, the problem is it always fails, even when I call SetMongoPassword on the unit in the test11:48
dimiternrogpeppe, mongo passwords are not hashed, right? Whatever I pass in SetMongoPassword should be it, right?11:48
dimiternrogpeppe, I want to make the test fail reliably, so when I remove SetMongoPassword on the unit it will succeed11:50
rogpeppedimitern: how does it fail?11:52
rogpeppedimitern: perhaps you could paste the test code?11:52
dimiternrogpeppe, I doesn't fail, that's the problem11:52
dimiternrogpeppe, here it is http://paste.ubuntu.com/6162450/11:52
dimiternrogpeppe, and I have unit.SetMongoPassword(initialUnitPassword) in primeAgent11:52
rogpeppedimitern: you said "the problem is it always fails" ... then "it doesn't fail"... which one?11:53
rogpeppedimitern: so that test fails, because it succeeds in connecting to the state?11:53
dimiternrogpeppe, the test case, as written should pass when I *didn't* set a mongo password11:53
dimiternrogpeppe, but it should fail if I did, and it passes in both cases11:54
natefinchit fails by not failing11:54
rogpeppenot failing is passing11:54
rogpeppeoh no, that's wrong11:54
mgzfail test is failing11:54
dimiternc'mon :)11:54
dimiternmaybe I'm not explaining it well enough11:55
natefinchif at first you succeed, try again until you fail11:55
rogpeppedimitern: so you're saying that that test successfully connects to the state, even though the mongo password isn't set (supposedly) ?11:55
dimiternif only..11:55
rogpeppedimitern: perhaps you should paste the output from the test too...11:55
dimiternrogpeppe, no, I'm saying the test (as written) always passes (i.e. fails to connect to state), whether I set a mongo password or not in primeAgent11:55
natefinchthis is like watching Who's On First :)11:56
rogpeppesomething whizzes over roger's head11:56
dimiternrogpeppe, does that make more sense?11:56
rogpeppedimitern: that would imply that a unit agent could never connect to the state...11:56
dimiternrogpeppe, the agent is not even running yet11:57
dimiternrogpeppe, that's step 211:57
dimiternrogpeppe, at step 1 here, I want to make sure I'm setting a mongo password and with it I can connect to state as that unit11:57
dimiternrogpeppe, and when I remove the password setting it'll fail to connect11:57
dimiternrogpeppe, istm state connections are not based on tag+password, just a password?11:58
rogpeppedimitern: that does seem a bit odd11:58
dimiternrogpeppe, how can we tell who's connecting?11:58
rogpeppedimitern: no, they're based on tag and password11:58
dimiternrogpeppe, ah, so maybe I'm missing Tag = unit.Tag() in state.Info11:59
rogpeppedimitern: maybe so11:59
rogpeppedimitern: you'll be setting the admin password if tag is blank11:59
dimiternrogpeppe, I see11:59
dimiternrogpeppe, now it works! :)12:00
rogpeppegreat!12:00
dimiternrogpeppe, what's an admin password and what it is used for?12:00
rogpeppedimitern: that's what the juju clients use12:01
rogpeppedimitern: it's guarded by admin-secret12:01
rogpeppedimitern: we should be able to delete that account entirely in time, probably12:01
dimiternrogpeppe, I see, ok12:02
dimiternrogpeppe, thanks12:02
fwereadedimitern, rogpeppe: any chance we could drop the ""->"user-admin" business? it doesn't seem like a win to me12:03
rogpeppefwereade: i'd love to, but given that it's going away and has compatibility issues, i think it's probably not worth changing at this point.12:04
rogpeppes/has comp/changing it has comp/12:04
fwereaderogpeppe, how's it going away? that would entirely satisfy me :)12:04
rogpeppefwereade: because nobody needs to connect to mongo with the admin password, in the future12:05
fwereaderogpeppe, oh! it's mongo-only is it? sorry, I see12:06
rogpeppefwereade: yea12:06
rogpeppeh12:06
fwereaderogpeppe, heh, we *really* want UUID in environ, don't we12:26
rogpeppefwereade: context?12:26
fwereaderogpeppe, advising people not to use environment name as a unique identifier when writing environs12:27
fwereaderogpeppe, I think they might reasonably ask wtf else they're expected to use12:27
rogpeppefwereade: ha, yes12:27
mgzbut the name is so handy...12:27
fwereademgz, for users, yes12:28
mgz(the main advantage being anywhere the value resurfaces, it's easy to see at a glance what juju thing it's related to)12:28
fwereademgz, internally, for distinguishing between environments? it's hopeless12:28
fwereademgz, using it as such leads to great pain when developers use shared provider credentials12:29
mgzright, I do have sympath with that12:29
mgz+y12:29
mgzI just suffer from dealing with uuids in nova daily12:30
fwereade:)12:30
mgzis this one a volume or a machine... did I repaste the right thing to the commandline12:30
fwereadeha, yeah12:30
TheMuefwereade: https://codereview.appspot.com/14030043/ looks better now12:50
dimiternrogpeppe, fwereade: so right now, because of the firewaller  we need to enable state workers for JobManageEnviron as well13:21
fwereadedimitern, yep, sounds right13:22
dimiternfwereade, ok13:22
fwereadehey, cool, that *was* the red arrows who flew across the bay with fancy coloured smoke, must be practising for the airshow tomorrow13:26
TheMuefwereade: send pics *lol*13:27
gary_posterare compilation complaints in trunk goyaml and juju-core expected, or is this indicative of something wrong on my local saucy system?  http://pastebin.ubuntu.com/6162806/13:44
fwereadegary_poster, that looks more like goamz to me, but I wasn't aware of changes there13:52
fwereadegary_poster, and also goose13:53
TheMuefwereade, gary_poster: i had the goose one too. clearing all 3rd party pkg and src and re-get them helped13:54
gary_posterfwereade, TheMue thanks, was just thinking of doing the same thing13:55
TheMuefwereade: btw, could you find a moment to take a look into the reproposed CL13:56
TheMue?13:56
fwereadeTheMue, I'm churning through a big one from ian before he goes to sleep13:56
TheMuefwereade: ok, makes sense13:56
dimiternrogpeppe, fwereade: why do we have only PasswordHash() method on agent.Config, but not the actual password?13:59
rogpeppedimitern: because we never store the actual plaintext14:00
rogpeppedimitern: um14:00
dimiternrogpeppe, well I need it for testing now :)14:00
rogpeppedimitern: hmm, actually i'm talking rubbish14:00
dimiternrogpeppe, how can I access the password that gets changed after opening state the first time?14:00
rogpeppedimitern: one mo, i'll have a look14:00
rogpeppedimitern: it seems to me that there's no reason14:01
rogpeppedimitern: it could just return the password14:01
dimiternrogpeppe, you mean rename agent.Config.PasswordHash() to Password() and return the plain test?14:02
dimiterntext14:02
rogpeppedimitern: i think so, yeah14:02
gary_posterTheMue, fwereade killing all third party and rebuilding did the trick, thanks14:03
dimiternrogpeppe, it's actually used only in 2 places in tests only14:03
wallyworldfwereade: i just noticed that the hp cloud image metadata on cloud-images has a trailing / for the auth url whereas our boilerplate does not. so bootstrapping hp cloud fails. i could add that change into  the tools branch, or else a new branch will be required14:03
fwereadewallyworld, well I'd really prefer a separate branch14:05
wallyworldok14:05
TheMuegary_poster: yw14:05
fwereaderogpeppe, ISTM that the only things that use Instances are the firewaller and the ssh command (which should be getting machine addresses)14:12
fwereademgz, speaking of which, is there anything I can do to support you in the addresses stuff?14:12
mgzfwereade: rog and I are making pretty good progress here I think14:13
rogpeppefwereade: me and mgz are rattling it off as we speak...14:13
fwereademgz, I am primarily talking emotional support to be fair, but let me know if there's something practical I can do14:13
fwereademgz, rogpeppe: <314:13
rogpeppefwereade: the forthcoming worker/addresspublisher will use Instances14:13
dimiternrogpeppe, can you take a look at this please http://paste.ubuntu.com/6162906/, more specifically line 914:13
dimiternrogpeppe, how will this ever work?14:13
fwereaderogpeppe, is Instances likely to move onto InstanceBroker then?14:14
fwereaderogpeppe, that would be convenient :)14:14
rogpeppefwereade: not as far as i was aware14:14
dimiternrogpeppe, and what's the original intent?14:15
rogpeppefwereade: at the moment we're thinking of the address publisher as something that runs independently of the provisioner.14:15
fwereaderogpeppe, ah ok, I guess it's not part of the provisioner14:15
fwereaderogpeppe, jinx :)14:15
rogpeppefwereade: hold on, i'll give you a sneak preview if you like14:15
rogpeppefwereade: then we can get some feedback14:15
fwereaderogpeppe, cool14:16
rogpeppefwereade:14:16
fwereaderogpeppe, I should do TheMue's first though14:16
rogpeppepackage addresspublisher14:16
rogpeppeimport (14:16
rogpeppe"fmt"14:16
rogpeppestdtesting "testing"14:16
rogpeppe"time"14:16
rogpeppegc "launchpad.net/gocheck"14:16
rogpeppe"launchpad.net/juju-core/instance"14:16
rogpeppe"launchpad.net/juju-core/state"14:16
rogpeppecoretesting "launchpad.net/juju-core/testing"14:16
rogpeppejc "launchpad.net/juju-core/testing/checkers"14:16
rogpeppe"launchpad.net/juju-core/testing/testbase"14:16
rogpeppe)14:16
rogpeppefunc TestPackage(t *stdtesting.T) {14:16
rogpeppegc.TestingT(t)14:16
rogpeppe}14:16
rogpeppevar _ = gc.Suite(&publisherSuite{})14:16
rogpeppetype publisherSuite struct {14:16
dimiternoh nooo :)14:16
rogpeppetestbase.LoggingSuite14:16
rogpeppe}14:16
* fwereade goes off for a 5 minute break? ;p14:16
rogpeppevar testAddrs = []instance.Address{instance.NewAddress("127.0.0.1")}14:16
rogpeppefunc (*publisherSuite) TestSetsAddressInitially(c *gc.C) {14:16
rogpeppectxt := &testMachineContext{14:16
rogpeppegetAddresses: addressesGetter(c, "i1234", testAddrs, nil),14:16
rogpeppedyingc:       make(chan struct{}),14:16
natefinchlol14:16
rogpeppe}14:16
rogpeppem := &testMachine{14:16
rogpeppeinstanceId: "i1234",14:16
rogpepperefresh:    func() error { return nil },14:16
rogpeppelife:       state.Alive,14:17
rogpeppe}14:17
rogpeppedied := make(chan machine)14:17
rogpeppepublisherc := make(chan machineAddress, 100)14:17
mgzpaste error :)14:17
rogpeppe// Change the poll intervals to be short, so that we know14:17
* dimitern ducks for cover14:17
rogpeppe// that we've polled (probably) at least a few times while we're14:17
rogpeppe// waiting for anything to be sent on publisherc.14:17
natefinchabort abort!14:17
rogpeppedefer testbase.PatchValue(&shortPoll, coretesting.ShortWait/10).Restore()14:17
rogpeppedefer testbase.PatchValue(&longPoll, coretesting.ShortWait/10).Restore()14:17
mgzwho can kick? :)14:17
rogpeppego runMachine(ctxt, m, nil, died, publisherc)14:17
rogpeppeselect {14:17
rogpeppecase addr := <-publisherc:14:17
rogpeppec.Assert(addr.addresses, gc.DeepEquals, testAddrs)14:17
rogpeppec.Assert(addr.machine, gc.Equals, m)14:17
rogpeppecase <-time.After(coretesting.LongWait):14:17
rogpeppec.Fatalf("publisher never published the expected address")14:17
rogpeppe}14:17
rogpeppeselect {14:17
rogpeppeah, sorry about that14:17
natefinchhaha14:17
rogpeppefwereade: http://paste.ubuntu.com/6162921/14:17
rogpeppeat least i know now that reconnecting aborts14:18
natefinchwow, weird, goyaml recovers from panics inside a type's GetYAML and SetYAML and returns them as errors... didn't see that one coming.14:18
natefinchI guess they don't return an error value, so that's sort of all you can do.14:19
rogpeppenatefinch: they should definitely return errors. it's a design flaw that they don't14:19
rogpeppedimitern: what's the issue you have with that paste?14:20
rogpeppedimitern: it looks roughly plausible to me14:20
rogpeppedimitern: we connect using the password, falling back to the old password if the password isn't set or we can't connect with it14:20
rogpeppemgz: i'm gonna grab some lunch too14:21
natefinchrogpeppe: I'm like || this close to rewriting the whole stupid thing.  I already looked around for alternatives and didn't see anything. The other yaml parsers just build up a document tree in memory... which is like, sorta useless by itself14:25
dimiternrogpeppe, we construct and empty state.Info, filling in some stuff,  not setting the password, and the immediately  after that we check if the password is set14:28
abentleysinzui: I've filed RT #1224057 asking for a VPN.14:29
dimiternrogpeppe, ah, sorry, I'm blind14:29
dimitern:)14:29
sinzuithank you abentley14:29
fwereaderogpeppe, that's looking pretty sane to me14:31
fwereadeTheMue, that sorta LGTM -- I think you need *some* more testing of Status() returns14:32
fwereadeTheMue, but if you agree that a followup putting the 3 vars into a struct would be a good idea, you can defer most of that work until then14:32
fwereadedimitern, opinion? ^^14:32
fwereadeTheMue, this would make me happy because if you landed it now then gary_poster would have status-data in 1.1514:33
dimiternfwereade, looking14:33
gary_posteryay :-)14:33
dimiternfwereade, TheMue, I like the idea of a SetStatusParams struct14:34
dimiternfwereade, TheMue, and definitely +1 on more specific tests for statusData14:36
dimiternfwereade, TheMue, I'm ok with doing these in a follow-up though, if it's soon14:36
TheMuefwereade: yep, we've already talked about the struct, so it would follow14:36
wallyworldfwereade: ok, merge is done. so release good to go hopefully14:40
fwereadewallyworld, <314:41
wallyworldi smoke tested on ec2 and hp. but that was only using dev tools14:41
fwereadeTheMue, if you can just fill in all the Status-specific unit/machine unit tests that's good enough for this CL14:41
wallyworldhopefully will be ok with tools pre-uploaded14:41
fwereadedimitern, TheMue: I was thinking of just a Status struct in state tbh, I am agnostic re api/params14:42
fwereadewallyworld, indeed so :)14:42
wallyworldactually, i did test with tools already uploaded to priavte hp cloud bucket and it was ok14:43
fwereadedimitern, TheMue: butactually yeah it would go in params wouldn't it14:43
TheMuefwereade: could you rephrase "just fill in all the ..."14:43
wallyworldbut we need to smoke test with tools in various public locations, especially ec2 which has not had simplestreams before14:43
fwereadeTheMue, in unit_test.go and machine_test.go, find any tests that are testing Status/SetStatus directly, and make sure they're not using _14:44
TheMuefwereade: ah, ok14:44
wallyworldfwereade: ao you ok to liaise with sinzui wrt the release?14:44
fwereadeTheMue, anything else -- eg if there's a test that SetStatus doesn't cause a watcher change -- you can leave14:45
fwereadewallyworld, I think so14:45
sinzuiyep. I just need a rev and any late additions to the release notes14:45
wallyworldi'll check in again in a few hours after some sleep to make sure its all ok14:45
fwereadesinzui, you'll have a rev very soon, and I can give you one at any time you're blocking on us14:46
wallyworldno additions to the release notes that i am aware of14:46
sinzuifwereade, I am not blocked14:46
fwereadewallyworld, yeah, no worthwhile distinction between "we use simplestreams" and "we use simplestreams and don't fall back to the original"14:46
wallyworldnah14:47
fwereadesinzui, cool, please let us know if you are in danger of becoming so14:47
wallyworldshould be transparent14:47
sinzuiack14:47
natefinchfwereade, rogpeppe: I'm removing the --yaml flag from juju get-constraints, since obviously, it won't work14:47
fwereadenatefinch, SGTM14:47
natefinchfwereade: handily, the panics I put in GetYAML and SetYAML cause the tests that checked for yaml support to fail, so it was easy to find them.14:48
rogpeppenatefinch: you could always do "go panic(...)"... :-)14:52
fwereadenatefinch, nice :)14:53
natefinchrogpeppe: go panic is not a bad idea14:55
rogpeppefwereade: cool, glad to know we're not too far off track14:57
TheMuedefer func()  { panic("ouch")  }()15:36
dimiternaaarghh!15:36
dimiternwtf is this about Waiting for sockets to die: 1 in use, 1 alive15:37
dimiternI can see in the logs that the state connection gets closed15:37
dimiternhow come there are sockets open? and how can I see who's to blame?15:37
dimiternrogpeppe, ^^15:37
TheMuefwereade: proposal is in again, so i could land it now15:37
rogpeppedimitern: there's probably another one that hasn't been closed15:38
fwereadeTheMue, LGTM, just a couple of stray lines to remove15:38
TheMuefwereade: oh, yes, forgot them15:40
dimiternrogpeppe, I figured that much, but it's really hard to debug so many layers15:44
rogpeppedimitern: i tend to add some log statements to show where state instances are being allocated, and by whom15:44
natefinchfwereade, mgz:  updated code review with some more tests and code to disable yaml serialization of constraints: https://codereview.appspot.com/1380204515:45
dimiternrogpeppe, that's what I'm doing - adding stack traces to state.Open and Close, using your debug package btw15:45
mgznatefinch: ace15:45
rogpeppedimitern: i'm a bit involved currently, but could take a look later15:46
dimiternrogpeppe, whew.. found the culprit15:50
rogpeppedimitern: \o/15:50
natefinchfwereade: there was something Tim mentioned in the meeting yesterday about testing something on MaaS.... but in banging my head against goyaml for a day, I've forgotten what he wanted15:55
TheMuefwereade: the eagle has landed15:55
fwereadenatefinch, ghhh not sure exactly -- almost certainly, though, it's making sure we can run containers there15:55
fwereadenatefinch, but in terms of *specifically* what might be a problem? I don't know15:56
natefinchfwereade: ok, thanks.  I've done some initial testing with containers in MaaS  (specifically --constraints container=lxc) and it seems to work fine. I'll ping him and see if he needed more than that15:56
fwereadenatefinch, have a go at `juju add-machine lxc:0`15:58
fwereadenatefinch, actually no that's crack15:58
fwereadenatefinch, would you start 2 machines, each running containers; put a related unit in each and check they can actually communicate15:59
natefinchfwereade: sure15:59
fwereadenatefinch, awesome15:59
* fwereade just smacked a mosquito that had *just* been snacking on him16:00
fwereadeahh, that was satisfying :)16:00
natefinchha nice16:00
mgzsnacking on it would have been even more appropriate16:00
natefinchsignificantly more disturbing, however16:01
TheMueso, have to step out. our local public festival starts today :)16:06
TheMuehave a nice weekend16:06
fwereadeTheMue, tyvm16:06
fwereadeTheMue, have fun16:06
TheMuefwereade: thx, will have16:06
fwereadenatefinch, so, a horrible thought...  would it work, hateful as it is, if we used *[]string? would that let us dance through the hoops?16:07
fwereadenatefinch, ie a nil pointer is "not set", non-nil pointer to nil (or empty) slice is "cleared"?16:08
natefinchfwereade: maybe. I'm not convinced that goyaml will treat the pointer any differently than a non-pointer slice... but I can give it a quick test.16:08
fwereadenatefinch, thanks16:09
natefinchfwereade: that works, actually.  I'm not sure if that makes me happy or not16:15
fwereadenatefinch, haha16:28
natefinchfwereade: so, update the Tags to be a *[]string?  Doable, just... ug.16:28
fwereadenatefinch, it's one of those humdrum workaday development tradeoffs -- working code at the cost of just a little piece of your soul ;p16:28
natefinchhaha yeah16:29
fwereadenatefinch, I don't see a better way to do it I'm afraid16:29
natefinchfwereade: yep, you're right.16:31
mgzthe "just string" argument is stronger and stronger :)16:43
natefinchmgz: :p16:43
dimiternfwereade, rogpeppe, finally I'm almost done with the disabling of state access to agents, I'd appreciate if both of you have a look when I propose it shortly17:12
fwereadedimitern, will do soon17:12
rogpeppefwereade, dimitern, natefinch: start of the addresspublisher package: https://codereview.appspot.com/14038045/17:32
* rogpeppe has reached the weekend17:32
rogpeppedimitern: sorry, i won't be able to review your branch this evening. i will shortly be drinking copious quantities of BEER.17:32
rogpeppehappy weekends all17:32
dimiternrogpeppe, also good :)17:32
natefinchrogpeppe: have fun :)17:34
dimiternfwereade, well, it was a struggle, but I made it https://codereview.appspot.com/1403604517:45
fwereadedimitern, cool,looking17:56
fwereadedimitern, ok, I think it may be a bit of a struggle to finish this tonight18:03
dimiternfwereade, no rush, I can hardly look at it anymore anyway :)18:04
dimiternfwereade, it's probably not very elegant, but tests pass at lest18:05
dimiternleast18:05
dimiternfwereade, and I suspect some live testing is required, which I haven't done yet18:05
fwereadedimitern, most assuredly so :)18:05
dimiternfwereade, as they say in kerbal space program, I'll have to pull a Jebediah :)18:07
fwereadedimitern, haha18:07
dimiternfwereade, I've been watching some amazing videos past few days18:08
dimiternfwereade, I'll play some myself over the weekend18:08
fwereadedimitern, http://mlkshk.com/p/UBFM18:09
fwereadedimitern, not KSP but pretty cool18:10
natefinchfwereade: reproposed with pointers to lists now18:10
natefinchfwereade: https://codereview.appspot.com/13802045/18:10
fwereadenatefinch, on it, thanks18:10
dimiternawesome!18:10
dimiternfwereade, take a look at this when you have 20 mins http://www.youtube.com/watch?v=oqYKXo1gbc818:11
fwereadedimitern, cheers18:11
fwereadenatefinch, I think that LGTM18:18
fwereadenatefinch, but I think I had a question about maas setting hardware characteristics in an earlier review -- did you find anything out about that?18:19
natefinchfwereade: maas doesn't set anything automatically.   You can create tags that have a definition that match against the hardware characteristics returned from a syscall, and it'll get automatically applied to the machines that match18:20
fwereadenatefinch, it's not a blocker here indeed18:20
fwereadenatefinch, but we will need a followup that gets the tags on the maas instance that gets picked, and puts them into the HardwareCharacteristics return value from StartInstance18:21
natefinchfwereade: ahh yeah18:21
fwereadenatefinch, and you'll need to do something with it in state.Unit.findCleanMachineQuery  as well to actually match it18:35
fwereadenatefinch, I'm assigning you to https://bugs.launchpad.net/juju-core/+bug/1161919 which I think is already fixed, but which as it happens covers that bit quite neatly18:37
_mup_Bug #1161919: unused machine assignment ignores constraints <juju-core:Triaged> <https://launchpad.net/bugs/1161919>18:37
fwereadenatefinch, but you'll be in a position to check it in detail and probably just mark it fix released:)18:38
natefinchfwereade: cool18:38
fwereadenatefinch, tyvm for pushing that18:39
fwereadenatefinch, did you get a chance to fiddle with containers on maas and check sanity?18:39
natefinchfwereade: no problem.  I started to... actually most of the way to it - deployed two services in separate containers, just need to try the relation18:40
natefincharg18:40
natefinchfwereade: once again, someone has shut down my maas host18:41
fwereadenatefinch, bleh, that sucks18:41
natefinchfwereade: last time it royally screwed up the environment18:41
natefinchfwereade: I'll wait for it to come back up and poke at it, and if it's all gone to hell like last time, I'll complain to red squad.18:42
natefinchfwereade: actually, I'll complain to red squad regardless18:42
fwereadenatefinch, sgtm :)18:42
natefinchsmoser: someone powered off my maas host machine :/18:43
smoserhm..18:45
smoseri'm still up18:45
smoserlet me check18:45
smosernatefinch, fwiw, i blame juju for this.18:45
natefinchsmoser: rofl18:46
natefinchsmoser: I suppose it's possible it's juju's fault. However, my guess is that it was someone doing something they weren't supposed to do.18:47
smoserhttps://bugs.launchpad.net/ubuntu/+source/maas/+bug/122927518:47
_mup_Bug #1229275: juju destroy-environment also destroys nodes that are not controlled by juju <juju:Confirmed> <juju-core:Triaged> <maas (Ubuntu):Triaged> <https://launchpad.net/bugs/1229275>18:47
smoseri suspect you are a victom of that.18:47
natefinchsmoser: ahh, hmm... I guess I'm surprised juju doesn't just go through it's list of machines and dispose of the ones it knows about18:48
smoseryeah, woudln't that make sense ?18:49
smosernatefinch, fwiw...18:49
fwereadesmoser, natefinch: it would indeed make sense, sadly the maas provider never did anything to mark instances with their environ and nobody spotted it until now18:51
smoserfwereade, i filed a similar bug over a year ago i think.18:51
smoserpyjuju probably.18:51
fwereadesmoser, yeah, we need to look at pyjuju and see how it solves it18:52
smoseroh, it doesn't.18:52
smoser:)18:52
smoserbug 108124718:53
_mup_Bug #1081247: maas provider releases all nodes it did not allocate [does not play well with others] <juju:New> <MAAS:Invalid> <https://launchpad.net/bugs/1081247>18:53
fwereadesmoser, lol18:53
fwereadesmoser, we're bug-compatible!18:53
* fwereade sighs gently18:53
natefinchnice18:53
smoserread that bug for a workaround.18:54
smoserits not as bad as it seems.18:54
smosersinc eyou can have multiple maas keys, you can have multiple juju environments.18:54
smoserat least i hope juju-core is consistent with that feature of pyjuju18:54
fwereadesmoser, a quick read reveals no reaosn it would not be18:55
smoserits a fun bug to find.18:56
smoseryou deploy soething with juju18:56
smoserand then you deploy another node.18:56
smoser(without juju)18:56
smoserand then juju shoots your other node18:56
smoserand you say WTH! i swear i deployed a node.18:57
smoserand you do it again18:57
smoserand repeat18:57
fwereadesmoser, ouch18:59
fwereadesmoser, pyjuju also had sort of the opposite bug18:59
fwereadesmoser, someone had an old environment lying around and they spotted a couple of unused instances, so they killed them19:00
fwereadesmoser, but didn't terminate the machines in juju19:00
fwereadesmoser, so they kept popping up and would not go away ;)19:00
fwereadesmoser, we fixed that at least ;)19:00
smoseri dont know which id' rather lose.19:01
smoserdata or money19:01
smoser:)19:01
fwereadehaha19:05
fwereadenatefinch, uh-uh, is the bot broken?19:08
fwereadenatefinch, gaah commit message19:09
fwereadenatefinch, set one on the tags branch19:09
fwereadenatefinch, feel free to do the same for 015-typos after this one's landed, but that might want a fresh look, it's a bit old19:09
fwereadenatefinch, OTOH I remember it and, yeah, it's just typos :)19:10
sinzuifwereade, is r1902 a sensible release candidate?19:11
natefinchfwereade: yeah, really just was typos... though roger suggested a wording change... still, it's just a string19:11
fwereadesinzui, it would be ideal to wait for r1903 which we approved a while ago... and then forgot to set the commit message on, but the bot should be on it now19:12
sinzuifwereade, okay. I am not pressing anyone to rush and make mistakes. Once I know the revision, it will take a short drive of it before feeding into my scripts19:14
fwereadesinzui, sensible19:14
fwereadesinzui, it will depend upon simplestreams data in ec2, hpcloud, canonistack19:15
sinzuiyep. I will upload that before actually announcing it19:17
natefinchfwereade: you put a comment on the maas tags branch ,so is that going in now?19:20
fwereadenatefinch, I hope so19:20
natefinchfwereade: thanks, btw19:22
fwereadenatefinch, no worries, thank you :)19:22
fwereadenatefinch, sinzui: ok, great, merged at revision 190319:25
sinzuifab. Thank you fwereade , et al.19:26
fwereadenatefinch, please add a comment to the release notes :)19:26
natefinchfwereade: I'd be happy to.... where are they?19:26
fwereadedimitern, that video was *awesome*19:37
dimiternfwereade, it's only 23 out of like 30 something like that from the same guy - from basically scratch to building amazing infrastructure19:55
natefinchdimitern: is that a video game?19:56
natefinchdimitern: I didn't recognize it, but I'm pretty far out of the loop19:56
dimiternnatefinch, yes, it's "an early alpha" but completely playable like a sandbox simulation, there's a demo as well20:02
natefinchdimitern: very cool20:02
dimiternnatefinch, check it out some time, it's worth it, if a bit frustratingly realistic20:03
natefinchdimitern: heh... what's it called?20:05
dimiternnatefinch, kerbal space program20:06
fwereadesinzui, I feel obliged to state that it will also need simplestreams on azure, but this is just an obsessive personal-correctness thing and not any sort of actual concern that you won't ;)20:25
natefinchfwereade: dang.... speaking of azure, we need to add juju help azure20:25
fwereadenatefinch, oh bugger -- ah well, too late for this one20:26
natefinchfwereade: as long as it makes it into saucy, that seems ok20:26
sinzuifwereade, I have the power, though I don't like all the steps needs to do that. I need to script that out still20:26
sinzuinatefinch, what is the effort needed to add the missing help?20:34
natefinchsinzui: it's really just a string.  Adding it to the code is trivial. It's a matter of someone typing it up in a way that is coherent and useful.20:35
sinzuiunderstood20:36
fwereaderogpeppe, I don't suppose you recall why the instance ports methods take a machine id?20:48
fwereaderogpeppe, oh right, group names are named after machine id20:49
wallyworldsinzui: how's the release? anything i can do?22:54
wallyworldfwereade:  everything good with 1.15?22:58
sinzuiwallyworld, still waiting for the build to complete23:38
sinzuiEverything has been fine. I don't see anything that will cause a problem23:39

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