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

axwwallyworld: https://github.com/juju/docs/issues/166500:21
perrito666externalreality: hey, feel free to ping me during the day if you need anything ill be during the day on GMT-300:39
menn0axw, wallyworld or thumper: can I bounce some ideas of one or more of you regarding CAAS?01:03
axwmenn0: sure, can you give me 5 mins please?01:03
wallyworldsure01:03
axwjust finishing a review01:03
menn0axw, wallyworld: cheers. i'll set up a hangout01:03
menn0axw, wallyworld: https://hangouts.google.com/hangouts/_/zknvh6oslvc57oppedq6tkfpqae01:05
blahdeblahSuch a cool hangout name01:06
blahdeblahI should make one like it01:06
blahdeblahI think I shall name my hangout fee3och3AiwuNoquohvoo9chohhohche01:06
thumpermenn0, babbageclunk: I'm available now01:31
thumperbabbageclunk: https://hangouts.google.com/hangouts/_/canonical.com/bang-bang-chitty-chitty-bang-bang01:31
menn0thumper: in call above01:31
thumpermenn0: ok, do you want / need me?01:32
externalrealityperrito666 thank you, will reach out if have anything :-D01:32
menn0thumper: just finished all good02:01
thumperack02:01
axwwallyworld: I'm a bit concerned about the performance of that remote relations watcher. apparently those things block the entire watcher infrastructure, so need to keep it as lean as possible03:17
axwwallyworld: can we do a join of sorts on the applications/endpoints collections?03:18
wallyworldaxw: yeah agreed. i can't see  way to do it without a db query though03:18
axwwallyworld: understood, just trying to keep the number of queries down03:18
wallyworldi got it doen to 2 from 303:18
axwcan we get it to 1 :)03:19
wallyworldwithout a join?03:19
axwwallyworld: with a join. is there an aggregation operator we can use.. not sure03:19
wallyworldif it were sql it would be easy03:19
wallyworldi didn't think mgo supported joins03:19
axwwallyworld: apparently mongo 3.2 does: https://www.mongodb.com/blog/post/joins-and-other-aggregation-enhancements-coming-in-mongodb-3-2-part-1-of-3-introduction03:20
wallyworldooh, ok03:20
axwwallyworld: not sure if it's worthwhile, maybe not03:21
wallyworldhopefully mango will play nice then03:21
wallyworldi'll have a look03:21
axwwallyworld: another option would be to get all of the relation entries first, and add/delete to that collection in-memory as the watcher fires03:25
axwwallyworld: that way you only need to query the remote applications collection inside the filter03:26
axwI think that would be neater03:26
axwseeing as we're already watching the relations collection03:26
wallyworldwhat about scale, if there are 1000 of them. i guess it won't take too much memory03:26
wallyworldor 10000 etc03:26
wallyworldalso when the watcher fires, we'd still need to look up the relation doc from the id03:27
wallyworldmaybe i'll see if the join works and go from there03:28
axwwallyworld: don't spend too much time on it, I'm probably worrying about nothing03:31
wallyworldaxw: i'll just finish this gui thing i'm doing and will see if i can get it to one query03:31
axwok03:32
axwthumper: is it known that the depengine report doesn't show model engines? so I can't see the provisioners, for example04:15
axwunless I'm missing a flag or something...04:15
menn0thumper: axw: the model engines are different (child) engines. maybe the report on asks the root engine04:22
axwmenn0: ah, it'll be bundled up in the state workers I guess04:24
axwI think we should probably report on all the model engines too. or at least have a flag to specify a model04:24
menn0axw: don't think the provisioner is bundled in the state workers04:25
menn0axw: it's in the per model engines04:25
axwmenn0: the model engine is bundled into it. the provisioner is in the model engine04:26
axwmenn0: model engine runs under the "model worker manager" worker, which gets added to the runner returned by MachineAgent.startStateWorkers04:27
axwanyway, I think we could weave it in there somehow. a job for another day04:27
menn0axw: yes, it would certainly be useful to see04:30
axwjam: can we defer till quarter past please, still eating lunch04:55
jamaxw: sure04:55
axwjam: I'm there now05:13
wallyworldaxw: after your meeting, here's a GUI related PR https://github.com/juju/juju/pull/699205:18
axwwallyworld: looking06:09
wallyworldty06:09
axwwallyworld: why did the base URL path need to change?06:17
wallyworldbecause otherwise the gui would construct urls with the model path duplicated06:17
wallyworldip:17070/gui/u/admin/controller/u/admin/controller06:18
axwwallyworld: is that due to a change in the GUI code?06:18
wallyworldi'm running with stock 2.3.0 but i think there's an upstream change to do with the new url paths06:19
wallyworldi've asked jeff and co to look at the pr also06:19
axwwallyworld: reviewed. it looks good but I don't understand why the base URL pat change was necessary06:24
wallyworldbecause it seems the gui appends /u/user/model to the base URL. the gui is expecting the base URL to be IP:17070/gui/modeluuid but the gui doesn't realise that juju ignore everything after $uuid06:25
wallyworldwith juju now able to handle gui urls with the model path, any bits after /gui/ are not needed06:26
wallyworldas the gui appends the model path06:26
anastasiamacwallyworld: Huw is in out time zone if u need fast turnaround06:27
anastasiamacour*06:27
wallyworldhe is EOD06:27
wallyworldbut jeff and co aren't :-)06:27
anastasiamacwallyworld: ^^ here is huwshimi \o/06:30
wallyworldit's ok, ihave already been talking to others06:30
wallyworldwho are more immediately acros the issue06:31
wallyworldaxw: i've done some tests and sadly mongo joins ($lookup) don't work with dotted field names eg "endpoints.applicationname". i can only get it to work matching simple scalar fields. so looks like it has to be 2 queries for now07:24
axwwallyworld: no worries, thanks for checking07:24
wallyworldwas interesting to try07:24
wallyworldaxw: i found out those gui changes with regards to the model path in the url are as a result of wanting to use consistent urls for juju and jaas. the gui work landed in gui version 2.3.0. so the fact that juju will now support those paths is actually a very good thing07:27
axwwallyworld: does it break older GUI versions tho?07:28
axwwallyworld: if you upgrade  the controller without upgrading the GUI, is the GUI broken all of a sudden?07:28
jamaxw: have you had conversations about how the storage changes for 2.2 will be reflected with bundles?07:29
axwjam: no. what do the persistent storage changes have to do with bundles?07:30
wallyworldaxw: it suports both old and new clients (both ways), but there's a small glitch that showed up in my testing with old 2.0 cliesnts. the gui guys are looking at it and we'll fix. it could be upstream in the gui, not sure07:30
wallyworldthey'll help root cause it and then we can determine where the fix is needed07:31
axwwallyworld: I saw the old/new juju clients work. but if the controller is serving GUI version 2.2 (or whatever preceded (2.3.0), will it work?07:31
wallyworldit's only  a small issue with login07:31
wallyworldyes because the juju gui CLI probes the controller to see what form of the url to use07:32
axwwallyworld: I'm not talking about the URL the user plugs into the browser07:32
axwwallyworld: you changed the baseURLPath from /gui/uuid to /gui07:32
axwwallyworld: that affects what config gets passed to the GUI07:32
axwwallyworld: will the old version of the GUI be unhappy with the change?07:33
wallyworldright but the gui is downloaded with the controller07:33
wallyworldso new 2.1 controllers will be running gui > 2.3.007:33
axwwallyworld: what if you do upgrade-juju?07:33
axwfrom 2.007:33
axwor 2.1-beta5 for that matter07:33
wallyworldi'll need to check to be sure07:34
wallyworldbut they can upgrade-gui also07:34
wallyworldwe may need to add some doc to release notes07:34
wallyworldas it was, gui 2.3.0 was a bit broken with juju 2.107:34
axwwallyworld: yeah, I just don't want there to be a surprise07:35
axwok07:35
wallyworldso either way we have potential breakage07:35
wallyworldagreed, i'll talk to uros and co07:35
jamaxw: so in all my recent discussions, the only way people are really deploying things is via bundles, at least for many people they are "the way". Which just makes me want to raise the question of how storage interacts with it07:36
jamthings like "deploy gets extra flags", sounds like something we may need to introduce into the bundle stanzas07:36
jamI'm trying to brush up on the topic before bringing it up, and just thinking about edges07:36
axwjam: you can already do "juju deploy bundle --storage app0:store=foo07:37
axwjam: is that what you mean?07:37
jamaxw: so conceptually things continue to use that syntax for --storage-filesystems, etc.07:37
jamI'm a little concerned that it isn't very clear that '--storage ...' means allocate new storage vs "--storage-filesystems" means reuse an existing one.07:38
axwjam: hmm yeah I guess we'll have to support that too. hadn't considered that07:38
jamaxw: also, it feels like you still need to use '--storage' as part of deploy at least, since that's declaring the shape of the storage for future units07:38
jam(add-unit with no flags)07:39
axwjam: yes, that is correct07:39
jamaxw: this sort of thing makes me wonder if we would have been better splitting deploy, or at least introducing a "declare an application but don't give it units yet"07:39
jamprobably not, as what a user really wants is a running application, but it would help with some of the "am I talking about the unit that is being brought up, or about the overall application"07:40
axwjam: it would make it clearer for the latter case, but yeah, probably don't want to push that onto everyone07:41
jamaxw: is there a reason we have to think about "volumes" vs "filesystems" ? Is that actually interesting for the operator?07:41
axwjam: I think so, because you can't assign a filesystem to a block-type store07:42
jamaxw: so that's a true statement, but is that a fundamental flag that you have to supply all the time/07:42
jam?07:42
jamvs "juju deploy --attach-storage foo=bar" and getting a "bar is a volume not a filesystem, see "juju storage --filesystems"07:43
jamor --reuse-storage07:43
axwjam: the problem is that the volumes and filesystems just have numeric IDs07:44
jamaxw: sure, but we can pull them from the same integer counter, couldn't we?07:44
jamas in its just 2 vs 3, but it is still just an arbitrary integer07:44
jamaxw: and fwiw, I have a strong feeling that people are really going to want to be naming these things07:45
axwjam: I suppose so. that doesn't seem like better UX to me. it's not obvious on the command line what the ID is07:45
jamaxw: which is a point for not using just IDs07:45
jamcause they don't mean anything to anyone07:45
jamvolume 10 isn't particularly more descriptive than just 1007:45
jambut "production-db-disk" would be07:45
axwjam: volume-10 tells me what it is, but not what it's used for. it's not nothing, but it's not perfect either07:46
axwjam: I think people have asked for the ability to name things already07:46
jamaxw: well you're propsed syntax is --storage-volume foo=1007:46
jamwhich decouples the "volume" from the 10 by a pretty wide margin07:47
jamand doing07:47
jam--attach-storage foo=volume-1007:47
jamseems better if it is *just* that07:47
jamaxw: on 'list-volumes" (whatever the specific name), how do you figure out what '10' was?07:48
jamwe include information about what the last unit to mount it, and for what named store of that unit?07:48
axwjam: it gives you the name of the machine attached to, the location, the storage instance07:48
jamaxw: the output of "juju storage --filesystem --format=yaml" seems particularly devoid of information that a human needs to know in order to manage that volume07:48
jamcurrent: detached07:49
jamaxw: sorry I'm bringing this up now, just trying to page it in if I'm going to be discussing it and it brought up things I hadn't thought of before07:51
axwjam: there should be more than just "current: detached". that's just the status of the volume. but you're right that we do not show the *last* machine that it was attached to07:53
jamaxw: well last unit+store is probably the most useful07:53
jam'this is what the volume was being used for'07:53
axwjam: that is not available in the model right now. we would need to add it in. might be a bit awkward...07:54
axwstatus history would be straight forward, but won't show up in the listing07:54
jami think fundamentally 'name' is a useful approximation that also lets users set whatever they want, but I can't help but feel if we just do persistent-by-default07:56
jampeople are going to end up with a lot of volumes that are meaningless to them07:56
jamsure they're still around07:56
jambut which one is the critical db07:56
jamand which ones were the throwaway disks that just didn't get thrown away07:56
jam$ juju remove-application postgresql07:57
jamPersistent filesystem “0” remains. You can use “juju remove-filesystem” to remove it.07:57
jamaxw: that is in the right direction, but that line only exists in the terminal for the time that you're looking at it, and then that information is lost.07:58
axwjam: yep, good point07:58
jamaxw: so I think you and I need a round of talking about this before we bring it to mark. sorry I didn't get a chance to look deeply at it before.07:58
axwjam: np07:58
=== jamespag` is now known as jamespage
wallyworldaxw: i'm off to soccer for a bit - can you see what needs doing to get fallback clouds in 2.1 up to date. you may need to pull in reed's gce changes from develop that landed recently and add to your PR. and then try and land and see if they've removed the block08:16
axwwallyworld: ok08:16
wallyworldtyvm08:16
=== frankban|afk is now known as frankban
frankbanhey wallyworld thanks for that branch! looking08:31
frankbanwallyworld: https://github.com/juju/juju/pull/6992 reviewed09:37
axwjam: here's the LXD changes, if you have any time to review: https://github.com/juju/juju/pull/699411:01
axwwallyworld: still can't land clouds.yaml changes FYI. I backported the GCE changes, will come back to see if aaron is around later to find out what's the go11:11
jamaxw: thx, looking11:16
wallyworldfrankban: thanks for review, just got back from soccer, will start making the changes11:42
frankbanwallyworld: cool thanks11:43
wallyworldi didn't reallu know what i was doing in that code :-)11:43
frankbanwallyworld: well, you did incredibly well then ;-)11:44
wallyworldbeginner's luck :-)11:45
wallyworldi tested it a fair bit11:45
wallyworldfrankban: with the password comment - do you mean the output of $juju gui where it prints the login credential?11:47
wallyworldi don't quite follow wht the issue is11:47
frankbanwallyworld: yes, after you "juju change-user-password" you'll see that the paswd is empty11:48
wallyworldok, i'll comeup with something11:48
axwwallyworld: I'm thinking we could have "juju gui" generate a single-use, time-limited password, and encode it into the URL11:57
axwwallyworld: but not for 2.1... too late now11:58
wallyworldcoukd do but i won't have time tonight11:58
frankbanaxw: I think, on the long period, we'll want to support macaroon's based auth for that12:06
axwfrankban: how do you get the cookie from the CLI to the browser?12:14
=== frankban is now known as frankban|afk
=== rvba` is now known as rvba
jamaxw: reviewed lxd, overall lgtm13:20
wallyworldaxw: not sure of exact words to put when password is changed and the CLI uses macaroon based login. i don't think the gui even supports that yet13:30
wallyworldISTM that is you change password you can no longer access the gui13:31
frankban|afkwallyworld: no, I do that all the time13:49
wallyworldfrankban|afk: I tried and it gui would not log me in at all13:49
frankban|afkwallyworld: let me try your branch with the new changes13:49
=== frankban|afk is now known as frankban
axwwallyworld: the only difference is that the password is not on disk any more. you should still be able to log into the GUI (I've also done it before) using the password you gave in change-user-password13:51
axwjam: thanks13:51
wallyworldaxw: exactly. that's what i tried. i may have just mis remembered what i changed it to. but it was only 3 letters13:52
frankbanwallyworld: I just tried and I was able to log into the GUI, after changing the password, with your branch13:55
wallyworldfrankban: ok, maybe i'm just tired and mistyped :-)13:55
wallyworldyou happy for me to land it?13:55
wallyworldi tested the old model uuid urls and they work now13:56
frankbanwallyworld: no, the base URL Juju is providing is now wrong: /gui/b5d3e307-41f5-4131-8f71-40a698c4c38113:56
frankbanwallyworld: that should be the one provided only if you manually visit the UUID url13:56
wallyworldright. i may have made a mistake, let me retest13:57
frankbanwallyworld: maybe that's because the config file is still served by a URL including the uuid13:58
wallyworldfrankban: you talking about the "base" attribute of config.js? that should be correct13:58
wallyworldyes. i keep serving static content from the model uui url13:58
wallyworldand config.js13:58
frankbanwallyworld: it's not13:59
wallyworldok, let me check13:59
frankbanwallyworld: yes, config.js is still served with the uuid url, but it provides the wrong base14:01
wallyworldok, i'll run up a system and look again14:01
frankbanwallyworld: maybe because, even if the index path does not include the uuid, the config.js path always does, so when baseGUIURLPath is calculated it's always the old one, icluding the uuid?14:04
wallyworldnot sure, the TestGUIConfigNewURL unit test seems correct to me14:04
wallyworldalso the logic starting line 147 of apiserver/gui.go seems ok14:05
wallyworldfrankban: yeah, it seems to be getting confused, because of the url used to serve config.js rather than the url used for the gui itself14:20
frankbanwallyworld: yeah, one request for the index, and the one for the config is always a uuid path14:22
wallyworldand it's the one for the config that is used to set the base attribute14:22
frankbanwallyworld: yes14:22
wallyworlddamn, will need to think of a fix14:23
wallyworldbut it's all stateless14:23
frankbanwallyworld: but the one for the index is used to set the configURL, so maybe the configURL can include a hint?14:23
wallyworldmaybe yeah14:23
frankbanwallyworld: like a query (?uuid=true) in case of old-style index14:23
wallyworldi'll try14:24
wallyworldfrankban: i think it's god now, seems to test ok for me15:10
wallyworldgood15:10
frankbanwallyworld: trying again15:10
frankbanwallyworld: bootstrapping now15:13
wallyworldok15:13
wallyworldfrankban: hope it works cause it's after 1am and i'm tired15:14
frankbanwallyworld: yeah, I was wondering if you were a vampire15:14
wallyworldi can be if you want me to be15:14
frankbanlol15:15
frankbanwallyworld: ok, new GUI new URL works well, with direct URL with uuid it works well, with the new GUI it's just wonderful15:21
frankbanwallyworld: the I downgraded to GUI 2.2.715:21
wallyworlduh oh15:22
frankbanwallyworld: I think we are hitting a pat bug there, after logging in the GUI acts weird and then it redirects to "/gui/:modeluuid/" (literally, not a placeholder)15:23
frankbanwallyworld: IIRC with pat all URLs must end with a /15:23
wallyworldfrankban: so it's just new controller, old gui that is abroken?15:24
=== tvansteenburgh1 is now known as tvansteenburgh
frankbanwallyworld: yes, and therefore we could fix that in a follow up 2.1.1 probably15:24
wallyworldsgtm. i will even fix tomorrow15:24
wallyworldfirst up before release is cut15:24
frankbanwallyworld: also, with uuid URL old gui works15:25
frankbanwallyworld: so the only thing slightly broken is: old gui + new URL15:25
wallyworldyeah ok, that will be an easy fix. that's the one thing i didn't test :-)15:25
wallyworldyou ok for me the $$merge$$ then?15:26
frankbanwallyworld: yes!15:26
wallyworldand can you watch it for me in case it fails and try again?15:26
frankbanwallyworld: sure, thanks a lot!15:26
wallyworldthanks for helping test etc15:26
wallyworldi learnt a bit today15:27
wallyworld2.1 will be sweet with these new gui urls15:27
rick_hwallyworld: is sinzui aware of ^ then for 2.1?15:28
wallyworldnot yet. the old urls still work15:28
sinzuiwallyworld: I sort of know...I read the commit15:28
sinzuiyes, the old urls do work15:28
wallyworldrick_h: i sort of stumbled into this work not knowing what i was getting myself into :-) it started as a small fix to juju gui command and sort of grew as a result of a required text change that implied juju core was meant to serve different urls15:29
rick_hwallyworld: like all good deeds :) punishment15:30
wallyworldindeed15:30
=== plars_ is now known as plars
=== externalreality_ is now known as externalreality
perrito666people I need to leave for about 1 to 2 hs, you can mail me if anything requires my attention18:00
=== frankban is now known as frankban|afk
tych0hey guys. what branch do i make PRs against these days?18:40
alexisbtych0, what are you working on?18:47
tych0alexisb: we have a new storage API in LXD 2.9, i have some patches that handle it18:48
tych0this will be zesty onward, and doesn't need to be backported to trusty18:48
alexisbok, tych0 start with devel18:49
tych0sounds good18:49
tych0is that "develop"?18:50
alexisbyou will want to sent a note to thumper and wallyworld to see if they want it in 2.118:50
alexisbyes sorry develop18:50
tych0alexisb: cool, thanks!18:51
alexisbyou bet tych018:51
perrito666Alexisb tych0 i doubt they will want that in 2.1 a day before release19:07
=== mup_ is now known as mup
=== externalreality_ is now known as externalreality
anastasiamacperrito666: thumper: making coffee and coming21:30
perrito666anastasiamac: nice, bring me one21:31
* anastasiamac brings perrito666 vitual coffee21:32
=== frankban|afk is now known as frankban
=== externalreality1 is now known as externalreality
axwthumper wallyworld: seen https://github.com/juju/juju/pull/6996?23:24
thumperaxw: no, but in the middle of something23:26
axwokey dokey23:26
frankbanhey wallyworld thanks for the fix23:32
wallyworldfrankban: no worries. it looks good. the only wrinkle is that you need to click on the canvas after log in. have you seen that?23:34
frankbanwallyworld: yes, I wonder why23:35
wallyworldnot sure, but i didn't see it as a blocker and it is a corner case23:35
wallyworldwe can do that for 2.1.1 if it really is an issue23:35
frankbanwallyworld: +1 it's not a great issue23:37
wallyworldfrankban: and will all that extra effort 2.1 release is delayed a few days :-/23:38
wallyworld*with23:38
frankbanauch23:38
wallyworldat least it is all fixed23:38
wallyworldrc2 will be going out tomorrow23:38
wallyworldor tonight23:38
frankbanok23:38
wallyworldthe hosted juju beta is on 2.1rc1 as that is very stable23:39
wallyworldstaleholders wanted more 2.1 final testing before release23:39
frankbanwallyworld: yeah, cool. it will provide new-new GUI 2.4.0 then, for new bootstraps, we should release that tomorrow23:40
wallyworldgreat23:41
frankbanwell, today...23:41
wallyworldtoday, tomorrow, timezones make that very murky :-)23:44

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