/srv/irclogs.ubuntu.com/2017/03/16/#juju-dev.txt

axwwallyworld: would you please review https://github.com/juju/juju/pull/7100 some time today. the changes for remove-machine won't be far behind01:09
wallyworldsure01:09
axwwallyworld: I've kept the apiserver changes in a separate commit, to make reviewing a bit easier01:11
wallyworldsgtm ty01:11
rick_haxw: make sure to check out https://www.youtube.com/watch?v=tjp_JHSZCyA will have a blog post/email hopefully tomorrow as follow up01:50
axwrick_h: okey dokey. otp, will watch afterwards01:50
* axw brews a cup of tea and listens to rick_h's smooth radio voice02:04
babbageclunkaxw: sick burn when the guy's doing a video! ;)02:11
axwbabbageclunk: I'm just listening while doing other stuff!02:11
babbageclunkaxw: oh, right!02:11
axwI have a habit of being unintentionally offensive :|02:12
* rick_h winks at axw02:12
babbageclunkaxw: same. :(02:13
axwwhoa, matt's beard02:14
babbageclunkwallyworld, axw: worked out my bug - taking the address of a loop variable so all the metadata settings had the same value.02:20
wallyworldah, that old chesnut02:20
wallyworldthat's bitten me before too02:20
wallyworldi reckon it's bloody stupid design by Go02:20
babbageclunkwallyworld: is there a better way around it than making a new variable in the loop?02:22
axwbabbageclunk: depends on what you're doing. that's a common solution02:23
axwbabbageclunk: point me at code?02:23
wallyworldi usually make a new va rinside the loop02:24
babbageclunkaxw: I've seen the to.StringPtr in azure provider, but this is just one case so that's maybe overkill.02:24
axwbabbageclunk: yeah I think so02:24
babbageclunkaxw: it's herehttps://github.com/juju/juju/blob/develop/provider/gce/google/instance.go#L18502:26
babbageclunkaxw: ...but in the new api version the value is a *string02:26
babbageclunk(I mean, MetadataItems.Value is *string)02:26
axwI see02:27
axwbabbageclunk: yeah, I'd just do (above): valueCopy := value, then &valueCopy02:27
axwbabbageclunk: if you're using a loop value in a function literal (not the case here obv), I'd give the function args and pass the value in02:28
axwrather than just closing over the outer var02:28
babbageclunkaxw: yeah, that's how I'd handle the analogous problem in Python02:29
axwrick_h: looks good! having prebaked dashboards will be useful02:40
rick_haxw: yea, get an "opinionated" ootb thing going02:42
axwrick_h: in terms of useful things, I'm not sure what else to add. maybe API request throughput? but it's probably only useful for debugging, rather than general health check02:43
rick_haxw: yea, folks can turn on things when there's an issue but want to just do the basics for all folks ootb02:44
* axw nods02:44
wallyworldaxw: i had a few issues, see what you think02:46
wallyworldnothing that major02:46
axwwallyworld: ok, thanks02:46
axwwallyworld: huh, thought I renamed DestroyUnit to DestroyUnits. must've been thinking of the machines branch02:47
wallyworldno worries02:47
axwwallyworld: the api/machinemanager changes weren't meant to be there, but ok if I leave them in and add tests in the follow up? they're not used yet anyway02:50
wallyworldaxw: yeah, i figured as much :-)02:50
babbageclunkwallyworld: Do you know how I could tell bootstrap to use a different network in GCE?03:27
wallyworldno :-(03:28
babbageclunkhmm03:28
wallyworld--bin peraps03:29
wallyworld--bind03:29
wallyworldi think that may work?03:29
wallyworldbabbageclunk: actually03:29
wallyworld--to03:29
wallyworldwith a network placement directive03:29
wallyworldi remmeber now03:29
babbageclunkwallyworld: so I can say bootstrap --to with-subnets? I'll try that.03:30
wallyworldi can't recall the exact syntax03:30
wallyworldit was in some release notes for 2.1 i think03:30
babbageclunkwallyworld: seems to be doing something anyway03:32
wallyworldi'll see if i can find the release notes03:32
wallyworldbabbageclunk: https://github.com/juju/juju/pull/690703:37
wallyworldit's in 2.203:37
wallyworldnot released yet03:37
babbageclunkwallyworld: cheers03:37
babbageclunkwallyworld: d'oh, that's aws specific - I want it for gce. Not that surprising, I guess, given that we don't support subnets in gce yet.03:44
wallyworldbabbageclunk: yeah, once subnets are implemented, it should work. i thought that's what you were testing :-)03:44
axwwallyworld babbageclunk: if you're adding more stuff to apiserver/application for CMR, can you please add tests to application_unit_test.go, not application_test.go03:47
wallyworldok03:47
wallyworldi didin't notice we had that even03:48
axwapplication_test.go should eventually be gutted, split into unit tests and feature tests (using commands, preferably)03:48
axwwallyworld: yeah I started it a while ago, but ran out of steam03:48
axwthere's a lot of existing tests03:49
axwwallyworld: PTAL at https://github.com/juju/juju/pull/710004:49
wallyworldaxw: looking05:06
wallyworldaxw: the reworded messages look ok to me, ty05:16
axwwallyworld: ta05:17
axwwallyworld: here's the remove-machine branch: https://github.com/juju/juju/pull/710807:46
wallyworldok07:51
=== frankban|afk is now known as frankban
wallyworldaxw: lgtm, thanks08:09
axwwallyworld: why do we need to update CI tests?08:19
axwwallyworld: to check for those messages? as long as we don't expect them to be unchanging over time, I guess08:20
axw(because it's meant for humans, not for scripts)08:20
wallyworldaxw: that is true, but we want to be sure the correct units/storage etc are reported08:22
axwokey dokey. probably should add it to the test plan for storage then08:23
wallyworldyeah08:23
axwadded a card08:23
wallyworldta08:23
wallyworldaxw: i asked because there were no feature tests as such, so nothing that did full end-end tests08:23
wallyworldof the new bits08:24
axwwallyworld: might make more sense just to add one there, rather than running a separate CI test on all clouds08:24
wallyworldthat would work08:25
mupBug #1466951 changed: juju incorrectly mixes http-proxy with apt-http-proxy and doesn't mix no-proxy <docs> <proxy> <juju:Triaged> <juju-core:Won't Fix> <https://launchpad.net/bugs/1466951>08:30
mupBug #1466951 opened: juju incorrectly mixes http-proxy with apt-http-proxy and doesn't mix no-proxy <docs> <proxy> <juju:Triaged> <juju-core:Won't Fix> <https://launchpad.net/bugs/1466951>08:42
mupBug #1466951 changed: juju incorrectly mixes http-proxy with apt-http-proxy and doesn't mix no-proxy <docs> <proxy> <juju:Triaged> <juju-core:Won't Fix> <https://launchpad.net/bugs/1466951>08:45
axwthe merge bots are a little bit crap today08:51
rogpeppe1axw: just a heads up: i'm just merging a PR that removes the state/workers package: https://github.com/juju/juju/pull/707409:03
axwrogpeppe1: sounds good, thanks09:04
rogpeppe1axw: i like deleting code :)09:04
axwme too, sadly I've been adding more than deleting lately :(09:04
axwrogpeppe1: ah, I see you also fixed at least one of the 1.8 test failures.. just started looking at that. thanks.09:06
rogpeppe1axw: i fixed a couple of the 1.9 test failures too09:06
axwheh, I haven't gone there yet09:06
rogpeppe1axw: i usually run on tip09:07
axwrogpeppe1: do you see much instability along the way?09:07
rogpeppe1axw: the monotonic clocks muck up quite a few places that do DeepEquals on times09:07
* axw nods09:07
rogpeppe1axw: no, not really09:07
rogpeppe1axw: it's generally rock solid all the time09:07
axwcool09:08
rogpeppe1axw: using tip means that i can provide early feedback (e.g. a bug i reported resulted in the semantics of Time.Round and Time.Truncate changing)09:08
axwrogpeppe1: yeah, I saw that. I should do the same, just a bit slack09:09
rogpeppe1axw: i think the go stability is a lesson in how it's possible to have a stable multiplatform product without gating commits directly on CI.09:09
Hetfieldgood morning! when i use juju to deploy a charm using containers (i.e. openstack)09:20
Hetfieldi can see containers in maas, but, as i'm using an external dns they don't resolve, causing aodh for instance to fail. so question is: can juju (or better maas as it allocates hostname + ip) trigger a script/hook to invoke dns registration (and de-registration when lxd is released)?09:21
Hetfieldthis is a blocking issue for me09:21
=== frankban is now known as frankban|afk
=== frankban|afk is now known as frankban
=== petevg_afk is now known as petevg
=== hml_ is now known as hml
=== hml_ is now known as hml
=== hml_ is now known as hml
=== hml_ is now known as hml
=== frankban is now known as frankban|afk
rogpeppe1anyone around that can give this a review, please (a simple fix to a flaky test): https://github.com/juju/juju/pull/711317:49
=== rogpeppe1 is now known as rogpeppe
rogpeppethe above PR now fixes three bugs in one, a bargain! review much appreciated: https://github.com/juju/juju/pull/711318:19
rogpeppeperrito666: wanna take a look?18:20
perrito666why not? :)18:20
rogpeppeperrito666: thanks a lot :)18:21
perrito666I wont make a fuzz about in your pr but... WTF " func (st *State) SetClockForTesting(clock clock.Clock) error "18:23
perrito666rogpeppe: ship it, nice change, seems to add decent determinism18:24
rogpeppeperrito666: thanks a lot; already saw your approval and hit $$merge$$ :)18:24
rogpeppeperrito666: i think that much of the clock mocking fad in juju is misguided tbh18:24
rogpeppeperrito666: clock mocking is useful when you know everything about the components you're testing, but not for higher levels18:25
perrito666rogpeppe: I believe that live clock should never be used but perhaps our design should account for the fact that the clock can be replaced and behave accordingly to avoid out of band knowledge need18:28
rogpeppeperrito666: i used to go along with that, but i have come to change my mind18:28
rogpeppeperrito666: i think the live clock is the only decent way18:29
rogpeppeperrito666: to avoid severely fragile test code18:29
rogpeppeperrito666: otherwise you need to know exactly how many agents there are in the system and exactly what they are expected to do at any moment, so you know how many alarms to wait for18:30
rogpeppeperrito666: and even then you have race conditions18:30
rogpeppeperrito666: if Go provided support for clock mocking (a la Go playground) i think things might be different18:30
rogpeppeperrito666: having a clock that runs faster than real-time is an another approach i've seen. that doesn't suffer the same problems.18:32
perrito666rogpeppe: interesting, what changed your mind?18:33
rogpeppeperrito666: trying to write robust tests using the clock mocking technique18:35
rogpeppeperrito666: and finding them flaky even with appropriate values passed to WaitAdvance18:36
perrito666rogpeppe: I do agree however that the ability to own the system clock would be a big win18:36
rogpeppeperrito666: the problem is that the tests are also governed by the system clock18:36
perrito666rogpeppe: true, true18:37
rogpeppeperrito666: i like clock mocking when testing low level worker code where I know exactly what's going on18:37
rogpeppeperrito666: and i still use it for that18:37
perrito666I dont think I have a strong opinion in either aproach18:37
rogpeppeperrito666: but pretending you can thread a mock clock through the whole system and have meaningful tests that won't break at the least change of unrelated code is... hopeful :)18:38
mattywperrito666, I'm just heading off, but if you're looking for something to do: https://github.com/juju/juju/pull/711018:38
mattyw:)18:38
rogpeppeperrito666: but i know it's kinda like a religion in juju-core these days :)18:38
perrito666mattyw: I certainly am not but ill gladly review you18:38
mattywperrito666, haha, that's the spirit :)18:38
rogpeppeperrito666: anyway, good to chat. i'm eod now, but hopefully catch you again before you go.18:39
perrito666cheers, ill be her until the 21st :)18:39
mattywperrito666, less than a week?18:40
perrito666mattyw: 3 work days18:40
mattywperrito666, counting down?18:40
perrito666mattyw: it matches the day I have a vacation :)18:41
babbageclunkrogpeppe: I'm not sure it helps much but I'm on your side of the testing clock debate - except for very narrow tests they hurt more than the problem they solve.20:06
redirclock.Advance(1)20:29
babbageclunkredir: yeah, I know you're a convert - we went through that pain together.20:35
babbageclunkwallyworld, perrito666, thumper, hml, externalreality, menn0: anyone know about networking in GCE? I presume jam does, probably axw - anyone awake now?21:39
thumperNFI sorry21:39
wallyworldi don't know anything in detail21:39
perrito666jam does21:39
wallyworldor at all i guess21:39
hmlbabbageclunk: not i22:06
menn0babbageclunk: sorry, was on call and I don't know much about the topic22:27
babbageclunkmenn0: no worries, muddling along for now - will chat with jam later (although I guess he won't be around until Monday).22:28
babbageclunkwallyworld: do you know who I should hit up to get my own GCE account? I'm beginning to get a bit nervous about messing around with the networks and firewall rules on the juju-qa account.22:53
wallyworldbabbageclunk: i can find out22:53
babbageclunkwallyworld: cool, thanks22:54

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