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

babbageclunkwallyworld: yup, looking at it now00:46
wallyworld\o/00:50
axwmenn0 wallyworld thumper: tech board? anything to talk about?03:32
menn0axw: sorry I missed tech board. things got a little crazy at home.07:31
axwmenn0: no worries07:35
menn0axw: did the meeting end up happening07:35
menn0?07:35
axwmenn0: nah, just had a chat with ian about the sprint last week. john's out, and tim's sick07:35
=== frankban|afk is now known as frankban
rogpeppe1here's a feature branch merge; anyone wanna give it the nod? https://github.com/juju/juju/pull/709909:39
rogpeppe1jam: any chance you could approve this feature-branch merge, please? https://github.com/juju/juju/pull/709910:16
rogpeppe1jam: i'm going to merge it anyway, as all the individual branches have been approved10:28
perrito666good morning11:44
=== petevg is now known as petevg_afk
perrito666wpk: standup?13:02
stokachurogpeppe1: what python library should we be using if we wanted to look into adding macaroon support?14:15
stokachurogpeppe1: apparently go is the only one with these bindings anywhere...14:15
stokachusorry, bakery support14:15
rogpeppe1stokachu: i'm not sure that there is any decent general one yet14:23
rogpeppe1stokachu: people have been talking about it for a while14:24
rogpeppe1stokachu: it also depends whether you want to do server support too, or just client support14:24
stokachurogpeppe1: we just need a seamless experience from conjure-up's ui to be able to connect to jaas controller15:00
stokachuwithout sending them to the browser15:00
rogpeppe1stokachu: personally i think that we shouldn't expect people to type their passwords into arbitrary command-line apps15:01
rogpeppe1stokachu: and AFAIK using a browser login is the only reasonable way to avoid that15:02
stokachurogpeppe1: ok, lemme go back to the boss man and see what we want to do15:02
rogpeppe1stokachu: juju has supported entering a password on the command line15:02
rogpeppe1stokachu: but it's flawed15:02
rogpeppe1stokachu: because it doesn't work the first time (it relies on the user having used the browser-based login previously)15:03
cory_furogpeppe1, stokachu: What about the case where the user is running conjure-up on a machine that isn't running a gui, or if they're ssh'd in?  I thought that's why we were using a terminal UI instead of the GUI in the first place?15:03
rogpeppe1cory_fu: you can still use the browser-based login in that case15:03
cory_furogpeppe1: I should also note that `charm login` prompts for user and password15:03
rogpeppe1cory_fu: just as long as you have access to a browser and can copy/paste the URI15:04
rogpeppe1cory_fu: yes, the charm command is also problematic in that respect15:04
cory_furogpeppe1: Why is a browser-based login required before CLI login will work?  That seems very odd to me.15:04
rogpeppe1cory_fu: because only the browser-based login provides the idm server with the user details it needs15:05
rogpeppe1cory_fu: it can't get those from an oauth token15:05
rogpeppe1cory_fu: (which is what the password-based login provides)15:06
rogpeppe1cory_fu: in the future, i'd like us to be able provide private-key-based login (also known as "agent" login) to arbitrary users.15:07
rogpeppe1cory_fu: so if you want non-interactive login, you associate a private key with your account and use that to log in.15:07
stokachuso tldr; we have to use the browser based login approach?15:20
stokachurogpeppe1: ^15:20
rogpeppe1stokachu: well, you *can* use the user-password approach, but i'd suggest leaving that until last, as we don't have a decent answer to that yet.15:21
stokachurogpeppe1: im talking about we need this done in the next week or so15:21
stokachu:D15:21
rogpeppe1stokachu: and it will always be necessary to support at least the browser-based approach15:21
stokachui see, ok15:22
rogpeppe1stokachu: because you can't do password-based login to non-usso domains15:22
stokachuok thank you15:22
Dmitrii-ShHi, does anybody know a good way to specify series when upgrading a charm to a local version? https://paste.ubuntu.com/24183189/15:24
Dmitrii-Shright now xenial is picked while I need trusty. I don't see any switch to manually select a version15:25
rogpeppe1Dmitrii-Sh: you can't change the series of a deployed application15:25
Dmitrii-Shrogpeppe1: I don't need to change it - that's the thing15:25
Dmitrii-Shrogpeppe1: the problem here is that it thinks that I want to deploy a xenial charm15:26
rogpeppe1Dmitrii-Sh: oh yes, that does seem odd15:26
rogpeppe1Dmitrii-Sh: is this with juju 2?15:26
Dmitrii-Shrogpeppe1: if I remove xenial and yakkety from the yaml it deploys just fine15:26
Dmitrii-Sh2.1.1-xenial-amd6415:26
Dmitrii-Shrogpeppe1: yes15:26
rogpeppe1Dmitrii-Sh: looks like a bug to me15:26
Dmitrii-Shrogpeppe1: ok, will file it now15:26
Dmitrii-Shrogpeppe1: been driving me crazy for some time )15:27
Dmitrii-Shrogpeppe1: thx15:27
rogpeppe1Dmitrii-Sh: try using --force-series15:34
Dmitrii-Shrogpeppe1: I can try that but that's still a bug, right?15:34
rogpeppe1Dmitrii-Sh: but even if that works, it still seems like a bug, yeah15:34
Dmitrii-Shrogpeppe1:15:36
Dmitrii-Shubuntu@maas:~⟫ juju upgrade-charm keystone --force-series --path ~/build/charm-keystone15:36
Dmitrii-ShAdded charm "local:xenial/keystone-4" to the model.15:36
Dmitrii-ShERROR cannot upgrade application "keystone" to charm "local:xenial/keystone-4": cannot change an application's series15:36
Dmitrii-Shrogpeppe1: doesn't look right15:37
rogpeppe1agreed15:37
Dmitrii-Shrogpeppe1: https://bugs.launchpad.net/juju/+bug/167312215:44
mupBug #1673122: Incorrect series used during upgrade to a local charm and no way to specify it manually <juju:New> <https://launchpad.net/bugs/1673122>15:44
Dmitrii-Shrogpeppe1: the order of items in a list matters15:44
Dmitrii-Shrogpeppe1: so yakkety at the bottom didn't trigger an error )15:44
rogpeppe1Dmitrii-Sh: yeah, i see15:44
rogpeppe1Dmitrii-Sh: nice report, thanks15:44
Dmitrii-Shrogpeppe1: np, thanks for the clarification15:45
rogpeppe1Dmitrii-Sh: thanks for the report.15:47
rogpeppe1Dmitrii-Sh: and discovering the issue15:47
rogpeppe1Dmitrii-Sh: i suspect it might be fairly simple to fix15:47
=== frankban is now known as frankban|afk
perrito666bbl18:29
rogpeppe1i'm looking for reviews of this, please: https://github.com/juju/juju/pull/707418:57
=== rogpeppe1 is now known as rogpeppe
thumpermorning20:32
perrito666thumper: hi20:37
babbageclunkwallyworld: ping?21:46
wallyworldhey21:46
babbageclunkFrom this https://cloud.google.com/compute/docs/subnetworks#subnetworks_and_instances, it sounds like subnets in GCE don't have zones.21:47
babbageclunkwallyworld: Should I just leave zones empty in the return from the provider, or get all zones and populate it with them?21:48
wallyworldnot sure offhand. i'm not overtly familiar with the underlying juju network model21:49
wallyworldi'll look into it nd we can discuss21:49
babbageclunkok thanks21:50
babbageclunkwallyworld: also, for our purposes we don't need the instance or subnet filtering of the Subnets method. Should I still implement them now? (Probably, right?)22:37
wallyworldbabbageclunk: would be good to have that method properly implemented22:38
wallyworldlet's try and avoid tech debt22:38
babbageclunkwallyworld: yeah, that's what I was figuring.22:38
rogpeppe1wallyworld: hiya23:12
wallyworldhey23:12
rogpeppe1wallyworld: i've addressed the initial points you made here... fancy taking another look? https://github.com/juju/juju/pull/707423:12
wallyworldsure23:12
rogpeppe1wallyworld: thanks!23:12
wallyworldrogpeppe1: just curious, why are those other seemingly non related dependencies updated?23:14
rogpeppe1wallyworld: mostly because there were some newer dependencies available, i think. i think it's worth keeping up with dependency versions when reasonable.23:15
wallyworldi figured as much. it does seem strange though that devel branch (our tip) is not running latest deps23:16
wallyworldi guess those deps were updated for other branches23:17
rogpeppe1wallyworld: yeah23:17
rogpeppe1wallyworld: BTW the odd-looking AddDate calls are to make some of the tests pass under >go1.8 (which has monotonic clock readings in time.Time)23:18
wallyworldcool, i'm running 1.823:18
wallyworldwe need to fix the url parsing issues also23:18
rogpeppe1wallyworld: yeah, we shouldn't provide invalid URLs :)23:20
wallyworld+1 to that23:20
wallyworldrogpeppe1: i just saw the AddDate() stuff - it would be worth a comment. without your explanation, I had NFI why that was there23:23
rogpeppe1wallyworld: yeah, agreed. please add a comment to remind me for the morning23:23
wallyworldmaybe even a todo to use the clock.Clock23:23
wallyworldwill do23:23
wallyworldrogpeppe1: why remove our clock.Clock from lease manager?23:27
wallyworldand replace with state.clock23:27
wallyworldthat's the opposite of what we are trying to do23:27
rogpeppe1wallyworld: file, line?23:28
wallyworld76 of state/workers.go23:28
wallyworldthe "github.com/juju/utils/clock" import is deleted alsdo23:28
rogpeppe1wallyworld: the lease manager still takes a clock as a parameter23:30
wallyworldthe comment applies to all of those workers23:30
rogpeppe1wallyworld: why would wouldn't you want them all to use the same clock?23:30
wallyworldright, but the state.clock is being passed in, has that been changed to a clock.Clock?23:30
rogpeppe1wallyworld: state.clock has always been a clock.Clock23:30
wallyworldok, makes more sense now, thanks23:31
wallyworldso the removal of workerFactory means we can get the clock from st23:32
rogpeppe1wallyworld: BTW i think that except for low level, "i know everything that's going on" testing, mocking clocks is probably an anti-pattern, as it can make for extremely fragile tests.23:32
wallyworldit's been the exact opposite for us23:33
wallyworldwe've needed to do it to *fix* fragile tests23:33
wallyworldany tests based on wall clock are just plain wrong for us23:33
wallyworldwe need to step through known time increments23:34
wallyworldto trigger various events23:34
wallyworldthat's a pretty standard pattern i would have thought?23:34
wallyworldmany devs on core have certainly commonly used it elsewhere outside canonical23:35
wallyworldeg if something triggers every 30 minutes, you can't use a wall clock for that23:35
wallyworldin a unit test23:35
wallyworldwe've also been victim to waiting say 10ms for something fails on loaded substrates23:36
rogpeppe1wallyworld: yeah, for low level unit tests, it's very useful23:36
wallyworldwe need control of the clock ticks23:36
rogpeppe1wallyworld: but when you've got a bunch of components together, you end up needing to know exactly how many actors there are in the system and when you expect them to wait23:36
rogpeppe1wallyworld: and even then you're vulnerable to races23:37
wallyworldisn't that the point of detailed unit tests :-)23:37
rogpeppe1wallyworld: definitely23:37
rogpeppe1wallyworld: but i'm talking about somewhat higher level tests23:37
wallyworldok, so we're in violent agreement :-)23:37
wallyworldtoo many of our juju core tests should be unit tests but are not :-(23:38
rogpeppe1wallyworld: so where we're using clock in state with all those workers - that for me is probably too far.23:38
wallyworldwe've been actively trying to fix that23:38
wallyworldhow then would you test the interaction between workers?23:38
wallyworldif you don't control the clock in tests?23:39
rogpeppe1wallyworld: i don't like the distinction between unit tests and integration tests. i prefer the distinction they tend to use in google - quick tests and slow tests.23:39
rogpeppe1wallyworld: i'd set the worker timing parameters and poll. And try and have less dependencies in general.23:39
wallyworldunit tests are needed to give coverage; intergration tests more for "does it really work"23:39
rogpeppe1wallyworld: for me, it's all about confidence in the code.23:40
rogpeppe1wallyworld: anyway, gotta run! i am called to bed.23:40
wallyworldlucky you23:40
wallyworldhave fun :-)23:40
rogpeppe1ttfn23:40

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