/srv/irclogs.ubuntu.com/2016/06/22/#juju-dev.txt

menn0perrito666: do you mean the DestroyModel method on the Client facade?00:00
perrito666menn0: ah, Its there, that explain, I was looking for it in ModelManager00:01
perrito666menn0: tx a lot00:01
* perrito666 takes a moment to learn how to use expensify00:01
* perrito666 fails00:01
menn0thumper: rogpeppe1 has a PR up to do API login redirection. I haven't looked in detail yet but it looks like what we also need for migrations.00:14
wallyworldmenn0: any reason why destroy model is not on model manager facade?00:53
wallyworldor should not be?00:53
axwwallyworld: can talk now if you're free00:59
wallyworldsure, let's. standup ho will do00:59
menn0wallyworld: no idea. I had very little to do with that. thumper/01:21
thumperum... yes01:28
thumperthere was a good reason01:28
axwanastasiamac: #1167616 is still valid01:29
mupBug #1167616: state.SetEnvironConfig should take old and new config values <config> <state> <juju-core:Triaged> <https://launchpad.net/bugs/1167616>01:29
axwthere's a TODO in the code01:29
thumperit had more to do with who could call it01:29
wallyworldnatefinch: 1 minute late01:29
thumperbut perhaps that isn't a great reason01:29
thumperbut it made sense at the time01:30
axwthumper: only admins can use the controller facade, right? but shouldn't a non-admin model owner be able to destroy their own model?01:30
thumperaxw: they can01:30
thumperthrough the client facade01:30
thumperthe controller facade allows admins to kill other people's models01:30
axwI see01:30
axwIMO we should have it on modelmanager, but just do an auth check if auth-user != owner01:31
wallyworldexactly01:31
axwcheck if they're an owner, or a controller admin01:31
wallyworldand now is the time to make that breaking change. the gui guys will love us01:31
axwwallyworld: I already broke the ability to create new models, so seems like a good time to change it :)01:32
axwcan't destroy if you can't create01:32
wallyworld:-)01:32
thumperdo it before beta 1001:35
thumperthen they can't really complain more01:35
* menn0 is drowning in reviews01:49
menn0wallyworld: I'm looking at http://reviews.vapour.ws/r/5126/02:17
wallyworldmenn0: sorry :-(02:18
menn0wallyworld: post-bootstrap will there be any way to change the cloud config stored in the controller?02:18
wallyworldmenn0: yes, there will be a command but not done yet02:18
menn0wallyworld: ok cool02:18
wallyworldmenn0: note that mdels fork (copy) the common config so changing will only affect new models02:19
menn0wallyworld: that was going to be be my next question :)02:19
wallyworldin effect, there's no user visiblw change with this work currently therefore02:19
menn0wallyworld: so if you had something like http-proxy set on a bunch of models02:20
wallyworldie stuff works for the user the same as now, except that they don't need to use --config for the shared stuff02:20
menn0wallyworld: and you wanted to change it02:20
wallyworldypu'd need to change all models02:20
menn0wallyworld: you would have to change it on all the existing models02:20
menn0ok02:20
menn0wallyworld: will there be a way to do a mass change across all models?02:20
wallyworldlast week it was inherited, but that got nixed02:20
wallyworldthe ux will need to be discussed, yes02:20
menn0wallyworld: I guess it's easier to understand if there's no inheritance02:21
wallyworldexactly02:21
wallyworldmenn0: https://docs.google.com/document/d/1PWUwx9kITQajQQgvHnweUuqTGmBo9p35bVwd-uLKAi4/edit?ts=57626636#heading=h.ppor8yz4jan002:21
wallyworldthat's from mark02:21
menn0(well it's prototypical inheritance I guess)02:21
wallyworldthere will be various sources of shared config02:22
wallyworldright now, we've just the 2 of them02:22
wallyworldmenn0: i have to pop afk for 30 minutes to relocate (long story), will be online again in a bit02:23
menn0wallyworld: no problems. you've answered my questions. that doc helps too.02:23
wallyworldexcellent02:23
davecheneymenn0: i've fixed your review comments and stress tested my patch03:09
davecheneyi'm going to try landing it03:09
menn0davecheney: awesome03:18
natefinchahh full stack external tests... change one line of code, get 4 tests failing in incredibly obscure ways03:34
wallyworldaxw: i can't do the settings write and model source updates in one txn - the settings is a separate struct which completes in own work before existing03:36
wallyworldsettings.Write()03:36
natefinchwallyworld: well, that fix worked perfectly well in a manual test, but it breaks 4 tests in bizarre ways.03:37
axwwallyworld: settings.Write() is implemented in terms of txn.Ops...03:37
wallyworldit is, but it's a method on a separate struct with its own semantics03:37
axwwallyworld: so if you split the txn.Op building from transaction running, you can do them in one transaction03:37
wallyworldthat breaks encapsulation03:38
axwwallyworld: so? you can still compose transactions. they either all run or none03:38
natefinchwallyworld: we don't have any other way to compose multiple actions into a transaction03:38
wallyworldso in this case, there's no harm spliting them as per my comment in the code03:38
axwwallyworld: we're inside the package, there's no encapsulation. having an inconsistent model is worse than exposing the ops03:38
natefinchwe should really have most of our actions like this returning ops rather than running their own transaction03:39
wallyworldnatefinch: so you'll just have to fix the tests i guess03:39
wallyworldexcept when we want to provide a fully encapsulated access to state03:39
axwwallyworld: nobody's suggesting we expose ops *outside* of state. I'm saying that UpdateModelSettings should either update the settings *and* the sources, or *neither*03:40
axwif we update the settings and then later the sources, we leave ourselves open to having lies in the model03:41
wallyworldok, i'll need to break apart settinsg.Write()03:41
wallyworldmoving ModelDestroy() off client is a pita - all the call sites in shared code use *state.State instead of interfaces, sigh03:42
natefinchI spent a lot of time fixing service creation and unit assignment so that we can't get into an inconsistent state.... and there's still some improvements to make... but the most obvious takeaway was that returning ops is composable, and hiding the ops is not.  Hopefully they can be encapsulated into a single state method call, so no one outside of state needs to worry about it... but inside of state... defaulting to returning ops rather than03:43
natefinchexecuting a transaction should probably be the default for most code.03:43
axwwallyworld: I've been looking at the GCE issue, and it's a bit of a pain. the issue is that we assume there's a one-to-one mapping between credentials.yaml contents and credentials in model config03:43
axwwallyworld: so not sure what I should do. it will be fixed hwen my in-progress stuff is done, but that's a ways off03:43
wallyworldnatefinch: yeah, so long as we are on mongo it seems that's what we must do03:44
axwwallyworld: there's a workaround: don't use jsonfile03:44
wallyworldaxw: damn. using json file will be the most common case, especially when people use autoload03:45
wallyworldi wonder if we can special case something for beta 1003:45
axwwallyworld: perhaps, just wondering if it's worthwhile expending the effort.03:46
wallyworldaxw: the issue AFAICT is that our users would be using autoload-credentials mostly03:46
wallyworldand they will be screwed with this beta03:46
axwwallyworld: I'll fix the empty auth-types one, and then come back to this03:47
wallyworldok03:47
thumperwallyworld: hi ho03:59
wallyworldyo03:59
* wallyworld relocating back home, bbiab04:05
natefinchaxw: I made a tiny change to the azure provider's StartInstance to fix a bug Ian had added to it when he split out the controller config... and now I'm getting this weird test failure (and 3 others similar to it): http://pastebin.ubuntu.com/17679429/04:20
natefinchaxw: any ideas what is going on?  The bug was that we weren't setting the apiport unless it was during bootstrap, which obviously falls down for machines added for HA: https://github.com/juju/juju/pull/5590/files#diff-8a18f1cda410ddced1438bf9bc8e8eb9R47604:22
natefinchaxw: I just don't understand the error from the test04:22
natefinchwallyworld: do you understand the azure tests?04:42
wallyworldhave never looked at them04:42
wallyworldaxw does04:42
wallyworldyou getting failures right04:43
natefinchyeah04:43
natefinchwallyworld: http://pastebin.ubuntu.com/17679429/04:43
natefinchthat's one of them... the others look pretty similar, so probably same root cause04:44
wallyworldmy guess off the top of my head is that the test does not set apiport in start instance params04:46
wallyworldhence the correct security groups are not created04:46
wallyworldbut just a guess04:46
menn0thumper: http://reviews.vapour.ws/r/5132/04:49
mupBug #1589774 changed: Ghost models exist after being destroyed <juju-core:Incomplete> <https://launchpad.net/bugs/1589774>04:59
axwnatefinch: sorry was having lunch, reading backlog now05:01
axwnatefinch: the azure tests set up a list of expected requests. they're not matching. you'll probably need to modify some calls to "startInstanceSenders" to pass true instead of false05:03
axwnatefinch: i.e. that a controller instance is being started05:04
natefinchaxw: oh yes, I see05:05
natefinchaxw: though I don't really understand why that needs to change due to the change I made to the code05:06
axwnatefinch: if you push the change I'll take a look, if you like05:07
natefinchaxw: https://github.com/natefinch/juju/commit/3534aa71f7aac1eb364ecdb32e51e3c8220c163e05:09
axwnatefinch: we shouldn't be doing it unless it's a controller. so check "else if args.InstanceConfig.Controller != nil"05:10
axwnatefinch: possibly we can ignore the Bootstrap case, I forget if APIInfo is set at bootstrap time05:11
axwnatefinch: if it is, we should do that05:11
mupBug #1589774 opened: Ghost models exist after being destroyed <juju-core:Incomplete> <https://launchpad.net/bugs/1589774>05:14
natefinchmna, I hate the way we use pointers in our config options and you just have to know if they're expected to be nil or not05:18
mupBug #1589774 changed: Ghost models exist after being destroyed <juju-core:Incomplete> <https://launchpad.net/bugs/1589774>05:20
wallyworldaxw: there's other places in the code where we use that args.InstanceConfig.Bootstrap != nil check - they all probably need to be cleaned up a bit05:28
wallyworldsome do use the isController() check05:29
axwwallyworld: quite possibly. I think in some cases it is valid, e.g. in gce I think we set up a firewall rule that applies to all machines in the model05:29
mupBug #1594211 changed: creating hosted model: model already exists <juju-core:New> <https://launchpad.net/bugs/1594211>05:29
wallyworldaxw: yeah, i think it's just a 2 i did - ec2 and openstack. i'll do a drive by in the current pr05:30
wallyworld*this05:30
natefinchwallyworld: we really should put helper methods on that struct, rather than relying on institutional knowledge of what it means for one of the values to be nil or non-nil05:30
wallyworldno argument there, is tech debt05:31
wallyworldaxw: you even have a todo in the rwckspace proviser05:31
wallyworlddamn, can't type05:32
axwwallyworld: yeah it was broken before I think?05:32
wallyworldi think so05:32
axwI think I added a bug for it05:32
wallyworldaxw: i'll fix now and push to the model config pr so we can get it landed05:32
natefinchaxw: thusly? http://pastebin.ubuntu.com/17681411/  Also, do we need to check the length of ports or is it safe to assume it's non-empty?05:34
axwnatefinch: it should always be one-and-only-one. I just noticed that instancecfg.ControllerConfig's Config field has an APIPort() method tho, that's probably more appropriate to use05:37
axwwallyworld: is ^^ set at bootstrap time?05:38
axw(I think it should be, if it's not)05:38
wallyworldaxw: i think so, i'm double checking now05:38
wallyworldas i am doing05:38
wallyworldif isController(args.InstanceConfig) {05:38
wallyworldapiPort = args.InstanceConfig.APIInfo.Ports()[0]05:38
wallyworld}05:38
wallyworldi deleted the bootstrap bit05:39
natefinchwallyworld: I tried that and get index out of range at bootstrap.. ports is zero-length05:39
natefinchwallyworld: at least in the azure tests05:39
wallyworldthe tests may not set things up correctly05:40
axwwallyworld: tests probably need updating, but I was talking about args.InstanceConfig.Controller.APIPort()05:40
axwsorry, Controller.Config.APIPort()05:40
wallyworldjeez we have so many bit of duped data05:40
axwtell me about it05:40
axwnatefinch: I think you just want this: http://paste.ubuntu.com/17681608/05:41
axwerr, you'll need to assign and take pointer, but you get the idea05:41
wallyworldaxw: yeah, that should work with the recent landing the past few days05:42
natefinchaxw: ControllerConfig doesn't have a Config field05:42
natefinchunless I'm out of date?05:42
axwnatefinch: must be, it's there on master05:43
natefinchha, I guess I anm05:43
axwhttps://github.com/juju/juju/blob/master/cloudconfig/instancecfg/instancecfg.go#L16005:43
axwwallyworld: your branch LGTM, let me know when you've added the fixes05:48
wallyworldty, testing live on aws now05:48
natefinch-y05:49
natefinchI have to run to bed.  The tests pass, but I don't have time to do a manual test right now... also we should probably add a test that'll ensure this doesn't break again, but I have no clue how to do that with the code as is.05:51
natefinchwill do more manual tests in the morning and see if I can put a unit test in there to catch this if it breaks again.05:54
mupBug #1559299 changed: cannot obtain provisioning script <bootstrap> <ci> <manual-provider> <regression> <xenial> <juju-core:Invalid> <juju-core 1.25:Fix Committed by anastasia-macmood> <juju-core api-call-retry:Fix Released by axwalk> <https://launchpad.net/bugs/1559299>05:56
mupBug #1575940 changed: LXC containers under MAAS get no "search <domain>" entry in resolv.conf when deployed with juju2 <cdo-qa-blocker> <landscape> <juju-core:Incomplete> <https://launchpad.net/bugs/1575940>05:56
mupBug #1482074 changed: worker:  environSuite.TestInvalidConfig fails on go 1.6 <ci> <go1.6> <intermittent-failure> <unit-tests> <juju-core:Invalid> <juju-core 1.25:Invalid> <https://launchpad.net/bugs/1482074>06:11
mupBug #1581579 changed: resource-get fails with duplicate key error <juju-core:Incomplete> <https://launchpad.net/bugs/1581579>06:12
mupBug #1588784 changed: juju/state: intermittent test failure in SubnetSuite with mongod 3.2 <mongodb> <unit-tests> <juju-core:Triaged> <https://launchpad.net/bugs/1588784>06:12
wallyworldaxw: pushed, i tested enable-ha on ec2. i also changed azure with no failing tests, not sure what nate was seeing06:46
axwwallyworld: reviewed06:53
wallyworldta06:54
wallyworldaxw: i hit the commit button too soon, that error is fixed. i'll remove the IsController helper - that was there i guess before we had a Controller attribute and had to check jobs06:58
wallyworldaxw: i'm down a rabbit hole with moving DestoryModel() to apiserver/modelmanager. all the stuff in common.modeldestroy.go uses state.State and the tenticles reach into metrics and everywhere. i may have to type cast the api.state attribute on modelmanager facade to state.State for now07:00
=== bodie__ is now known as bodie_
urulama_wallyworld, axw: good evening ... looking at what perrito666 mentioned as a breaking change. is there anything else besides https://github.com/juju/juju/commit/9933a39c799639084bd822ea3ee8e6345131bac7 ?07:05
=== urulama_ is now known as urulama
wallyworldurulama: well hello. another change we discovered today - i am looking to move DestroyModel() off the client facade onto the ModelManager facade.07:06
wallyworldi didn'tt hink you wer ehere today?07:07
urulamawallyworld: i am just happy to have 2 days off :D07:07
wallyworldthat destoy model api is the only one on the client facade, it just should not be there07:07
wallyworldwe have create and list model on the model manager facade already07:07
wallyworld2 days off, luxury07:07
axwwallyworld: there's also a breakage of the CreateModel API call, which I've mailed Francesco about07:11
axwerr urulama^^07:11
axwurulama: would you like me to forward the details to you?07:11
wallyworldaxw: i did already :-)07:12
axwok cool07:12
urulamaok, thanks, will sync with frankban|afk ... see, even 2 days off is a risk! :D07:14
urulamawallyworld: do you have a track of all the breaking changes somewhere? as in a list? if not, we'll make it so we don't miss anyone and share it with other clients as well07:20
wallyworldurulama: it will be complicated by tim's work - there's only one api change as such - create model. well 2 if i can get detroy model landed. but then tim's stuff potentially alters the json attributes all over. i can get a diff of the tag changes07:21
wallyworldadd model i mean07:21
urulamawallyworld: no, no, not in such detail. tim's change is well defined ... no worries, i'll make a list07:22
=== rogpeppe1 is now known as rogpeppe
rogpeppeaxw: what's changed in the CreateModel API call?07:25
axwrogpeppe: no more ConfigSkeleton for one thing07:26
rogpeppeaxw: great!07:26
rogpeppeaxw: is the new API documented anywhere?07:26
axwrogpeppe: there's a "name" field on the params struct now, and it's an error to have it in the config bag07:26
* rogpeppe goes and generates the API docs again07:26
axwrogpeppe: and you can specify a region and/or credential name, but they'll have defaults if you're an admin07:26
rogpeppeaxw: this has landed, right?07:27
=== frankban|afk is now known as frankban
anastasiamacaxw: wallyworld: m meant not to be able to bootstrap maaas on tip of master? m getting with auth-type "oauth1" is not supported (expected one of ["empty"])07:27
axwrogpeppe: yes, post beta907:27
anastasiamacfor maas deployment that worked before..07:27
axwanastasiamac: I'm fixing it07:27
anastasiamac\o/07:27
axwanastasiamac: https://bugs.launchpad.net/juju-core/+bug/159356607:27
mupBug #1593566: Bootstrap reports oath1 not supported with maas 2.0 <bootstrap> <cdo-qa> <cdo-qa-blocker> <maas-provider> <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1593566>07:27
wallyworldanastasiamac: you need to add auth type to your cloud07:27
axwrogpeppe: https://github.com/juju/juju/blob/master/apiserver/params/internal.go#L8607:28
anastasiamacaxw: tyvm - trying now07:28
=== akhavr1 is now known as akhavr
rogpeppeaxw: http://s3.amazonaws.com/rogpeppe-scratch/juju-api-doc.html#ModelManager :)07:33
axwrogpeppe: nice!07:33
axwwallyworld anastasiamac: http://reviews.vapour.ws/r/5133/07:36
wallyworldok07:36
wallyworldaxw: ty, lgtm07:42
anastasiamacaxw: looking (and workaround worked)07:46
anastasiamacwallyworld: is it a state of origin night again? \o/07:46
wallyworldyes indeed07:46
anastasiamac:)07:48
=== akhavr1 is now known as akhavr
frankbanwallyworld: this is the mega-wather response I am getting from current master: {'RequestId': 1, 'Response': {'watcher-id': '1'}}08:10
frankbanwallyworld: so it seems that we still have some CamelCase there?08:10
wallyworldfrankban: i think RequestId / Response may be part of the api infrastructure, so maybe missed tim's changes, not sure08:11
frankbanwallyworld: same for the request top level fields, like Params, Request, RequestId, Type, Version08:12
wallyworldthumper: ^^^^ ?08:12
thumperthat is a different level08:13
thumper:(08:13
thumperdidn't touch that bit08:13
frankbanthumper: are you going to handle that as well?08:14
thumperI hadn't thought about it, but could do08:14
thumperwe probably should... right?08:15
frankbanthumper: I think so, as otherwise the API style is still inconsistent08:15
thumperfrankban: ack, will look at it tomorrow08:16
frankbanthumper: thanks!08:16
axwthumper: I think atm you can connect to a 2.0 server with a 1.25 client, and you'll be told that the client is incompatible. If we totally change the arg casing, that would be broken... or we'd need to handle both08:17
dimiternfrankban: FWIW those RequestId and Response fields are not part of the API contract, but the RPC layer08:17
thumperaxw: yeah... interesting08:17
dimiternthumper: I was unable to add a machine after your API changes landed08:17
* thumper will consider08:17
dimiternthumper: some of the decisions re adding omitempty seem inconsistent08:18
* urulama has a feeling that should end up as a breaking test somewhere :-/08:19
dimiternthumper: and there are a few omissions, e.g. an embedded Entities gets a `json:"entities"` (IIRC GetAgentEntitiesResults?), while an embedded Address in HostPort doesn't08:19
frankbandimitern: from clients perspective you still get some CamelCase fields and other lower-case ones, which feels inconsistent, and consistency is teh only reasoning for this change08:19
dimiternfrankban: agreed, just saying simply tagging all params types/fields explicitly does not apply to the RPC transport layer08:20
thumperbut we could08:28
thumperurulama: correct, there should be a test for that08:29
thumperdimitern: was it an existing controller and a new client?08:29
* thumper should leave08:29
thumperit's late08:29
frankbanthumper: I am starting the GUI API migration today, should I consider all lower-case then? including RPC top level fields?08:30
thumperfrankban: let's say yes, and I'll let you know if I break too much and can't do it08:30
frankbanthumper: sounds good, thanks a good night08:31
urulamanight, thumper08:32
thumpernight08:32
thumperurulama: what days are you at the sprint next week?08:33
urulamathumper: from Sunday evening to Wednesday noon08:35
thumpercool08:37
thumperurulama: see you sunday then08:37
thumperlaters08:37
dimiternthumper: no, newly bootstrapped controller08:37
axwwallyworld: I'm running out of ideas for a quick-fix for gce. I could do a nasty hack in cmd/juju/commands/bootstrap.go, to convert jsonfile to oauth208:42
wallyworldaxw: yeah, i was thinking that may haveto be the temporary answer08:42
wallyworldfrankban: moving DestrroyModel off client facade is a pita - but we need to do it. it will likely miss the beta10 cutoff tomorrow08:43
frankbanwallyworld: ah so it will be beta11 ModelManager.Destroy() ?08:45
wallyworldfrankban: i fear so, i will get it done later tonight but then it needs review etc08:46
wallyworldi will try08:46
frankbanwallyworld: no problem, the GUI will not work for beta10 tomorrow, so there is no rush on our side08:46
wallyworldok, let's aim for beta 11. i'll let you know how i go. i first need to debug another issue as well08:47
dimiternfrobware: when you can, please have a look at http://reviews.vapour.ws/r/5134/08:54
frankbanwallyworld: FYI it seems that also all the mega-watcher fields are still CamelCased: for instance http://pastebin.ubuntu.com/17686685/09:01
wallyworlddamn09:01
wallyworldi'll tell tim09:01
dimiternfrobware, voidspace, jam: standup?09:03
frobwaredimitern: will do09:03
axwwallyworld:  please to be reviewing: github.com/juju/juju/pull/569209:04
axwwallyworld: tested live, bootstrapped gce successfully with a jsonfile cred09:04
wallyworldsure borat09:06
wallyworldaxw: i'm retesting the api port fix on ec2, am seeing both slave controllers stay pending. seems to be intermittent09:07
axwwallyworld: hrm, anything in cloud-init-output.log?09:07
wallyworldjust started looking, added debuggin and trying again09:08
axwwallyworld: ok. I need to go make dinner, will be back in a little while09:08
wallyworldok09:08
=== akhavr1 is now known as akhavr
frobwaredooferlad: please could you try http://reviews.vapour.ws/r/5136/ on your h/w - thanks!09:29
dimiternfrobware: you've got a review btw09:30
frobwaredimitern: ah, yes. will do09:31
dimiternfrobware: ta!09:31
=== akhavr1 is now known as akhavr
dooferladfrobware: on it09:45
babbageclunkdimitern: updated http://reviews.vapour.ws/r/5123/ - have another look?10:17
babbageclunkcherylj: ping?10:18
dimiternbabbageclunk: I did look briefly, looks much better, thanks!10:18
babbageclunkdimitern: cheers!10:18
dimiternbabbageclunk: LGTM10:18
* dimitern is out for a while10:30
axwwallyworld: how goes it?10:41
wallyworldqld behind 2-410:41
wallyworldoh, you mean work10:41
axwwallyworld: heh yeah :)10:42
wallyworldaxw: have interfaces / mocks more or less sorted for moving destory model. having a mix of state.State and interfaces sorta sucks10:43
axwwallyworld: the api-port thing though? sorted?10:44
wallyworldaxw: yeah, so this is an existing issue - config that comes via an api call has ints unmarshalled as float64 and mustInt() fails10:45
wallyworldwe just have never come across it10:46
axwwallyworld: I just saw your change. I'm sure we handle that in schema.Coerce. maybe related to the recent introduction of controller.Config?10:46
axwdoes that *always* go through schema.Coerce, or only at bootstrap time?10:46
wallyworldthe latter i think10:46
wallyworldi can do a better change for beta 11 if needed10:47
axwwallyworld: yeah that's what I thought. I think we can back that change out when controller config is fully separated10:47
wallyworldyep, will do for now to unblock the beta10:47
axwwallyworld: yeah no worries, I'd just like to simplify later if possible. all good for now10:48
wallyworld+110:48
=== akhavr1 is now known as akhavr
babbageclunkdimitern: ping?11:16
dimiternbabbageclunk: pong11:27
babbageclunkdimitern: hey - I was trying to understand the tests in https://github.com/juju/juju/blob/master/cmd/juju/status/status_test.go#L33811:28
babbageclunkdimitern: Why are they written like this (as series of steppers) instead of function calls?11:28
dimiternbabbageclunk: they're almost like defined in their own DSL11:29
dimiternbabbageclunk: well, I did that after getting excited about how the uniter tests were written at that time11:30
dimiternbabbageclunk: but now I wouldn't have done it like this11:30
babbageclunkdimitern: But why not just function calls for the different kinds of steps?11:30
babbageclunkdimitern: ok - I think I follow.11:30
dimiternbabbageclunk: as for debugging tips - since everything is one big table-based test, it's best to comment out all cases you don't care about (temporarily)11:31
babbageclunkdimitern: yeah, that sounds v useful11:31
dimiternto reduce the insane amount of cruft you need to sift through on failure11:32
babbageclunkdimitern: should be ok though - my new fields only show up if they're populated, so adding them shouldn't break any other tests.11:33
dimiternbabbageclunk: yeah, it sounds like you need to add 2 cases only - to exercise application workload-version w/ and w/o '*' suffix11:34
babbageclunkdimitern: Do you think I need to test the suffix again here? I'm not doing any formatting at the command level.11:35
dimiternbabbageclunk: however, if 'workload-version' is not json-tagged as ',omitempty', you'd need to change all existing cases to include an empty w-v11:35
babbageclunkdimitern: It seemed right to tag workload-version as omitempty, though - otherwise it'll be noise for all the charms that don't set it (all of them at the moment).11:37
dimiternbabbageclunk: I think it's good to test both cases, for completeness, and they can act like functional/integration tests for the feature11:37
babbageclunkdimitern: Yeah, fair enough. Not very hard to.11:37
dimiternbabbageclunk: charms won't be affected - mostly tests with pre-canned 'expected' responses could be affected11:38
mupBug #1592101 changed: Error connecting with cached addresses <juju-core:Fix Released> <https://launchpad.net/bugs/1592101>12:03
mupBug #1575940 opened: LXC containers under MAAS get no "search <domain>" entry in resolv.conf when deployed with juju2 <cdo-qa-blocker> <landscape> <juju-core:Incomplete> <https://launchpad.net/bugs/1575940>12:03
mupBug #1595155 opened: new systemd and dbus dependencies are broken <blocker> <juju-core:Triaged> <juju-core 1.25:Triaged> <https://launchpad.net/bugs/1595155>12:03
mupBug #1575448 changed: trusty juju 1.25.5 HA availability issues <canonical-bootstack> <juju-core:Fix Released by anastasia-macmood> <juju-core 1.25:Fix Committed by anastasia-macmood> <https://launchpad.net/bugs/1575448>12:09
frankbanwallyworld: FYI Client.CharmInfo response is still in camel case, maybe I should write an email to Tim with my findings12:24
wallyworldfrankban: that would be most excellent12:26
frankbanwallyworld: doing that, I'll send it before my EOD12:27
dimiternfrankban: try adding a machine as well12:27
frankbandimitern: do you want me to try if it works?12:28
dimiternfrankban: I found that to be broken; e.g. 'juju add-machine --series trusty' or 'add-machine lxd:0'12:28
frankbandimitern: ok I'll look if I can add a machine through the API12:28
dimiternfrankban: yes, please, if you can - I'm still not sure if the above is maas-specific (where I've seen it after thumper's change) or not..12:29
mupBug #1575448 opened: trusty juju 1.25.5 HA availability issues <canonical-bootstack> <juju-core:Fix Released by anastasia-macmood> <juju-core 1.25:Fix Committed by anastasia-macmood> <https://launchpad.net/bugs/1575448>12:30
frankbandimitern: it seems to be working on lxd: http://pastebin.ubuntu.com/17693847/12:33
mupBug #1575448 changed: trusty juju 1.25.5 HA availability issues <canonical-bootstack> <juju-core:Fix Released by anastasia-macmood> <juju-core 1.25:Fix Committed by anastasia-macmood> <https://launchpad.net/bugs/1575448>12:33
dimiternfrankban: hmm.. is that the correct version for 2.0 btw?12:34
dimiternfrankban: thanks for confirming though, it seems it might be maas-specific12:35
frankbandimitern: what do you mean correct version for 2.0?12:35
dimiternfrankban: I though all API facade versions where incremented in juju 2.012:39
dimiternfrankban: so seeing Version: 1 in your paste seemed wrong, but I'm not sure if the Client facade version was also bumped12:40
frankbandimitern: I am not aware of any version bump in juju2, here are the facades returned when logging in: http://pastebin.ubuntu.com/17694260/12:41
perrito666wow the test suite really kills my laptop12:43
dimiternfrankban: well, comparing this to 1.25 you'll notice the bumps12:44
dimiternfrankban: but I've just remembered Client was originally Version: 012:45
frankbandimitern: sure, but Client is version 112:45
frankbandimitern: cool ok12:45
frobwarecherylj: do I need extra extra extra magic runes for landing in 1.25? - https://github.com/juju/juju/pull/569312:58
cheryljfrobware: you just have to really mean it12:59
cherylj$$__JFDI__$$12:59
frobwarecherylj: ohhhhhhhhhh12:59
frobwareduh12:59
frobwareok12:59
cherylj:)12:59
dimiternit still looks like $$__JEDI__$$ to me :D13:00
frobwaredimitern: remind me again... do I care about removing "vlan_id" from the iface options?  Just porting from 1.25 and want to make sure I don't drop anything along the way.13:04
dimiternfrobware: no, because it's invalid anyway and will be ignored13:05
dimiternfrobware: curtin is to blame for adding it13:05
fwereadebabbageclunk, katco: https://github.com/juju/juju/pull/5695 doesn't seem to have been picked up by RB, but should be trivial13:07
dimiternfrobware: updated http://reviews.vapour.ws/r/5134/13:12
dimiternvoidspace, babbageclunk, dooferlad: I'd appreciate a second look on the above as well13:12
frobwaredimitern: done13:21
=== akhavr1 is now known as akhavr
dimiternfrobware: thanks!13:35
perrito666I am getting a lot of timeouts on my tests, did the mongo --nojournal fix land in master?13:58
=== deathpip is now known as ivyyy
=== akhavr1 is now known as akhavr
dimiternfrobware: ping14:31
frobwaredimitern: pong14:31
dimiternfrobware: let me know what you think about my response on your review14:31
frobwaredimitern: does the last or first 'search' win?14:31
dimiternfrobware: the last apparently14:31
frobwaredimitern: <shrug> - ok14:32
dimiternfrobware: how about those 4 points btw?14:32
frobwaredimitern: looking. everthing is so well defined. Not.14:32
dimiternfrobware: yeah, that's the issue I think - not completely defined spec leads to permissive implementations :)14:33
frobwaredimitern: is this valid "nameserver 8.8.4.4 4.4.4.4" without trailing comments?14:33
dimiternfrobware: no14:33
dimiternfrobware: (as far as 'host' is concerned at least.. nslookup as well, haven't tried all dns clients :)14:34
frobwaredimitern: so is search the only one we should then consider as it seems more permissive (e.g., "search foo foo.bar maas. ;baz #bad (baz and bad are ignored)")14:34
frobwaredimitern: any /etc/resolv.conf I edit by hand I always put nameserver entries on a line by themselves.14:36
frobwaredimitern: search not so, hence why I was asking14:36
dimiternfrobware: neither search nor nameserver are defined as allowing comments after the values.. interestingly enough vim's syntax highlighting seems to catch most of the corner cases I tried14:36
frobwaredimitern: whodathunkit!14:37
dimiternfrobware: so, anyway - if those 4 suggestions for changing the behavior seem reasonable, I'll do them and let's get it landed14:38
frobwaredimitern: I responded in the review - ok for some, the others I simply dunno.14:39
dimiternfrobware: '(2.1) disagree' - meaning it should be a parse error out of ParseResolvConf() or we should allow multiple values and not ignore the whole line?14:40
frobwaredimitern: I don't think we should allow multiple values per nameserver entry. separate lines, but this is just based on the way I've always done it.14:41
frobwaredimitern: what a mess14:41
dimitern:)14:41
frobwaredimitern: drop all searches, use 8.8.8.8. :-D14:41
=== tasdomas` is now known as tasdomas
dimiternfrobware: It was surprising for me that IPv6 addresses are not allowed for nameserver btw14:42
* frobware thinks the problem with free form text is you now have two problems14:42
dimiternyeah..14:42
dimiternhttps://xkcd.com/927/14:43
frobwaredimitern: it's missing several orders of magnitude.14:43
dimiternfrobware: hmm.. so re IPv6 it's deeper than that14:44
frobwaredimitern: or wider. :-D14:44
natefinchOMG azure is so slow14:46
dimitern`With BIND 8.3.3, the DNS client can connect to IPv6 DNS servers using an IPv6 transport. To enable such a connection, enter an IPv6 address after nameserver in the resolv.conf file.`14:47
dimiternffs..14:47
dimiternnothing can be easy, can it14:47
frobwaredimitern: what does "after" mean here/14:49
dimiternfrobware: after 'nameserver'14:50
frobwaredimitern: on a new line?14:50
frobwaredimitern: so you need context whilst parsing?14:50
dimiternfrobware: ha:)14:50
dimiternfrobware: well it seems to accept 'nameserver ::1' (it doesn't listen there, so it gets ignored)14:51
frobwaredimitern: given where we are with IPv6 I would concentrate on rock-solid IPv4.14:51
dimiternfrobware: but not '2001:db8::1' (fair enough - it's from the range reserved for examples)14:51
dimiternfrobware: I vote for accepting single value IPv6 nameservers14:52
frobwaredimitern: me too, that catches ::114:52
dimiternfrobware: but return parse errors in the other 3 sub-cases of 2)14:52
frobwaredimitern: how bad/common is 2.3?14:53
dimiternfrobware: rather than ignoring them14:53
frobwaredimitern: 2.4 should be harmless - we do nothing14:53
dimiternfrobware: dunno.. but it can be an honest mistake I guess14:53
frobwaredimitern: but there's nothing for us to add so we accept and move on14:54
frobwaredimitern: if I have 'search    #oops I forgot!' - we add parse but add no domain, correct?14:54
frobwaredimitern: *nix is hard to tool sometimes... :(14:55
dimiternfrobware: so missing values are definitely not allowed (explicitly stated in resolv.conf(5)) and cause parse errors14:56
natefinchwhy oh why do I have to switch to the controller model to run enable-ha?  It's not a model command, it's a controller command :/14:56
frobwaredimitern: well, that helps!14:56
frobwaredimitern: dem da rulez!14:57
dimiternfrobware: re 'search #oops I forgot' - the same as no value as far as 'host' is concerned14:57
dimiternfrobware: and I'd rather return an error in all cases of 2), but still allow 2.2) (ipv6 addrs)14:58
frobwaredimitern: do we consider the "domain" keyword at all?14:58
dimiternfrobware: there are 2 additional limitations, which I won't even bother to handle specifically - more than 3 nameserver and more than 6 domains in 'search' (or len of all values >256)14:59
frobwaredimitern: ah, well I think we should leave the limitations up to resolvconf14:59
dimiternfrobware: not yet ('domain' is mutually exclusive with 'search' per the spec)15:00
frobwaredimitern: if those rules change we would have to change juju - which seems wrong15:00
dimiternfrobware: exactly15:00
dimiternfrobware: and returning parse errors is better than silently ignoring a bad resolv.conf (when we can tell the user about it)15:01
frobwaredimitern: ok, but I think 'domain' is something we should consider - last one wins (either search or domain)15:01
katconatefinch: standup time15:01
dimiternfrobware: yeah, when we add support for 'domain', that's what we should do I think15:01
frobwaredimitern: with the additional DNS support in MAAS 2.0 is this something we can potentially get?15:02
dimiternfrobware: that depends on whether maas/cloud-init/curtin renders resolv.conf including 'domain' (not seen this thus far)15:03
frobwaredimitern: me neither15:04
frobwaredimitern: but I don't use MAAS 2.0 very much15:04
dimiternfrobware: I mostly test on 2.0 now15:06
frobwaredimitern: which is good because between us we cover both15:07
natefinchcherylj: want me to look at https://bugs.launchpad.net/juju-core/+bug/1595155 ?15:49
mupBug #1595155: new systemd and dbus dependencies are broken <blocker> <juju-core:Triaged> <juju-core 1.25:Triaged> <https://launchpad.net/bugs/1595155>15:49
cheryljnatefinch: we're talking about that now and it may not be an issue15:53
cheryljnatefinch: can you backport the fix for bug 1581157?15:55
mupBug #1581157: github.com/juju/juju/cmd/jujud test timeout on windows <blocker> <ci> <regression> <test-failure> <unit-tests> <windows> <juju-core:Fix Committed by natefinch> <juju-core 1.25:Triaged> <https://launchpad.net/bugs/1581157>15:56
natefinchcherylj: sure16:06
perrito666bbl16:08
frobwaredimitern, babbageclunk, dooferlad, voidspace: forward port of the bridge script changes from 1.25: http://reviews.vapour.ws/r/5140/16:21
dimiternfrobware: will look shortly16:22
frobwaredimitern: thanks; will check back later16:23
babbageclunkfrobware: looking now16:23
frobwarebabbageclunk: the essence of the change is 1) revert to using ifdown and 2) that means the real diff is like this: http://pastebin.ubuntu.com/17704158/16:27
frobwarebabbageclunk: the revert to using ifdown is commit http://pastebin.ubuntu.com/17704158/16:27
frobwarebabbageclunk: and the other change is http://pastebin.ubuntu.com/17704233/16:28
frobwaredimitern: ^^16:28
dimiternfrobware: LGTM16:32
=== kwmonroe_ is now known as kwmonroe
mupBug #1595252 opened: regression b8-b9, ERROR empty admin-secret in model configuration <azure-provider> <deploy> <juju-core:New> <https://launchpad.net/bugs/1595252>16:52
natefinchcherylj: backport is pending merge into 1.25.  Anything else I should look at?  I have limited time left today, due to taking a half day, but willing to start work on something that is ok to finish tomorrow.16:57
cheryljnatefinch: I'll find something for you to pick up when you come back tomorrow :)16:58
dimiternfrobware: still there?17:03
frobwaredimitern: nope17:03
frobwaredimitern: well, very briefly17:03
dimiternfrobware: I'm finally done with the changes, pushing hopefully the final version, as discussed - wanna have a last look before I set it to land?17:04
frobwaredimitern: might have to be later - we can land tomorrow17:04
dimiternfrobware: ok17:05
frobwaredimitern: did you push the changes?17:05
dimiternfrobware: any minute now..17:07
dimiternfrobware: done17:07
=== frankban is now known as frankban|afk
mupBug #1595276 opened: TestDestroyControllerErrors failure with out of order errors <azure-provider> <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1595276>17:52
mupBug #1593812 opened: Failed to bootstrap: missing controller UUID <blocker> <bootstrap> <juju-gui> <juju-core:Triaged by wallyworld> <https://launchpad.net/bugs/1593812>18:04
mupBug #1595278 opened: Openstack invalid port range 0:0 <blocker> <ci> <openstack-provider> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1595278>18:04
jhobbsIs there a working juju daily ppa somewhere? https://launchpad.net/~juju/+archive/ubuntu/daily looks like it's out of date. I need to get a close to tip juju and I was hoping for a PPA so I don't need to learn how to build it18:48
mupBug #1595252 changed: regression b8-b9, ERROR empty admin-secret in model configuration <azure-provider> <deploy> <juju-core:Invalid> <https://launchpad.net/bugs/1595252>19:04
cheryljjhobbs: you can get the binaries built from our last CI run:  http://reports.vapour.ws/releases/4092/binaries19:22
jhobbsthanks cherylj19:22
cheryljkatco: would you be able to review this today?  https://github.com/juju/juju/pull/505719:26
katcocherylj: let me see how big it is19:27
katcocherylj: errrr a bash script...19:27
katcocherylj: i'll give it a go19:28
katcocherylj: wow, i'm not well versed enough in bash to do this thing justice19:30
katcocherylj: sorry, someone who knows bash will have to TAL.19:32
mupBug #1593394 changed: model already exists but can't be destroyed because it's not found - lots of "lease manager stopped" errors <v-pil> <juju-core:Triaged> <https://launchpad.net/bugs/1593394>19:34
mupBug #1593812 changed: Failed to bootstrap: missing controller UUID <blocker> <bootstrap> <juju-gui> <juju-core:Fix Released by wallyworld> <https://launchpad.net/bugs/1593812>19:34
mupBug #1593394 opened: model already exists but can't be destroyed because it's not found - lots of "lease manager stopped" errors <v-pil> <juju-core:Triaged> <https://launchpad.net/bugs/1593394>19:40
mupBug #1593812 opened: Failed to bootstrap: missing controller UUID <blocker> <bootstrap> <juju-gui> <juju-core:Fix Released by wallyworld> <https://launchpad.net/bugs/1593812>19:40
mupBug #1593394 changed: model already exists but can't be destroyed because it's not found - lots of "lease manager stopped" errors <v-pil> <juju-core:Triaged> <https://launchpad.net/bugs/1593394>19:43
mupBug #1593812 changed: Failed to bootstrap: missing controller UUID <blocker> <bootstrap> <juju-gui> <juju-core:Fix Released by wallyworld> <https://launchpad.net/bugs/1593812>19:44
mupBug #1595314 opened: maas controller.go:80 read version failed: &errors.Err{message:"", cause:(*json.SyntaxError)(0xc82040a1a0), previous:(*errors.Err)(0xc8202b6c30) <juju-core:New> <https://launchpad.net/bugs/1595314>20:08
cheryljjhobbs: ping?20:13
jhobbshi cherylj20:13
cheryljhey there.  Regarding bug #159495820:13
mupBug #1594958: Bootstrapping on OpenStack fails with juju 2 <v-pil> <juju-core:Incomplete> <https://launchpad.net/bugs/1594958>20:13
cheryljare you using exactly "--config image-metadata-url=<url>" ?20:13
jhobbscherylj: the command i ran is in the pastebin20:14
jhobbshttp://paste.ubuntu.com/17713435/20:14
jhobbsi'm using --config --image-metadata-url20:14
jhobbsi see20:14
jhobbsdoh20:14
jhobbsthanks for pointing that out20:14
cheryljah yeah, sorry.  Missed the link20:14
jhobbsi will try again with the right argument, thanks20:15
cheryljnp, feel free to ping me here if you have other problems.20:16
=== urulama is now known as urulama|__
wallyworldericsnow: it seems there's a core issue about recording last sent id vs timestamp - once sorted out, we're close to being able to land stuff?21:22
ericsnowwallyworld: yep21:23
mupBug #1595330 opened: When deploying a bundle, num_units defaults to zero if not specified <bundles> <juju-release-support> <usability> <juju-core:Triaged> <https://launchpad.net/bugs/1595330>21:23
wallyworldericsnow: i do like id - if they are monotonically increasing, it's unambiguous21:23
ericsnowwallyworld: yep21:24
katcowallyworld: i was ocr today; spent first half reviewing, then worked on observer PR. making good headway there21:28
wallyworldawesome21:28
redirkatco: are you accessing user info anywhere for auditing?21:50
katcoredir: kind of. the observers for auditing hold current api user in state21:51
katcoredir: but just the tag's name21:51
redirkatco and there's no way that you would lookup a user after the fact, IIUC.21:54
redirkatco: making sure there's no impending need to access deleted user information.21:55
redirand auditing is the only place I can think of where that might happen in the near future.21:56
katcoredir: no, i don't think so. the audit message would include the user name as a string, so no dereferencing needed21:57
alexisbthumper, ping22:02
redirgoing for some air. bbiab.22:15
=== redir is now known as redir_afk
anastasiamacnatefinch: ping22:16
wallyworldmenn0: very tiny change to modify slightly a previous fix if you have a sec (blocker for beta 10) http://reviews.vapour.ws/r/5143/22:30
menn0wallyworld: looking22:30
menn0wallyworld: ship it22:32
wallyworldmenn0: tyvm22:33
mgzwallyworld: I think you're misreading the bug22:49
mgzyou don't need to set the port everywhere, you just can't pass an uninitialised int over the api22:50
mgzbecause that's a zero22:50
wallyworldmgz: i just reverted to previous behaviour22:50
mgzwallyworld: yeah, the fix is fine. the review description is just perplexing22:51
mgznon-controllers don't need the api port opened22:51
mgzthey just need to not be told to open an invalid port range22:51
wallyworldwhich we were always doing22:51
wallyworldie opening port22:51
wallyworldso least risk just to go to old behaviour for now22:52
mgzwallyworld: yeah, I agree22:52
wallyworldbut i agree with you too22:52
mgzthe right fix is presumably to change SetUpGroups or something though22:52
mgzbut that doesn't need to happen here22:52
wallyworldmgz: yeah, it's all a bit messed up22:56
* thumper crosses fingers23:07
alexisbthumper, ??23:16
thumperalexisb: trying to get something to work23:17
thumperbtw, it isn't working23:17
alexisbshould I cross my fingers too?23:17
alexisbwould that help23:17
thumpermaybe...23:19
thumperI'm pleased that lxd bootstraps so fast...23:24
thumperif 2 minutes is fast23:24
* thumper waits some more23:24
thumperhmm...23:29
thumperkinda working23:29
thumperbut I have surprising data...23:29
alexisbsurprising how23:30
thumperunexpected23:31
thumperI need to work out how to pull this apart...23:31

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