20:00:08 #startmeeting horizon 20:00:09 Meeting started Wed Jun 14 20:00:08 2017 UTC and is due to finish in 60 minutes. The chair is robcresswell. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:00:10 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:00:13 The meeting name has been set to 'horizon' 20:00:17 o/ 20:00:19 o/ 20:00:20 o/ 20:00:34 hi 20:00:52 Hi everyone 20:01:07 o/ 20:01:36 We've an empty agenda again :) 20:02:06 so I've got a chance to ask a question today:) 20:02:31 I don't have any notices either, other than Pike-2 was tagged and released last week. There's also been a few more stable backports, so I'll tag new stables too. 20:02:40 #topic Open Discussion 20:02:58 If you have any questions, blueprints, bugs, patches, feel free to ask 20:03:00 I'll appreciate any feedback on my thread in openstack-dev: Poorly Pagination UX 20:03:04 #link http://lists.openstack.org/pipermail/openstack-dev/2017-June/118352.html 20:03:40 o/ 20:03:58 e0ne: I disagree with the assessment that they "can't be fixed" 20:04:09 e0ne, I think the long and the short is without something like searchlight it won't get better 20:04:10 I have a question about the federation and regions 20:04:27 How stable is that feature, actually? Has anybody been using it? 20:04:36 robcresswell: it's good 20:04:46 Its just not a trivial solution, because the delete is done via client side and ajax iirc, while the page (with back/next) is generated by the server 20:04:50 So they get out of sync 20:05:25 until the apis have robust paging support, horizon will continue to be in trouble. searchlight could have fixed that 20:05:25 robcresswell: if I understand correct, deletion causes full page reload 20:05:47 e0ne: Oh, does it? I can't remember off the top of my head 20:05:53 rdopiera, federation and regions? 20:05:55 rdopiera: federation and regions??? more details please 20:06:08 Hang on, lets talk pagination first. 20:06:10 get out of my head ducttape_ 20:06:15 Too much crosstalk. 20:06:27 So Horizn has this AVAILABLE_REGIONS feature, where you can have several Keystone addresses defined 20:06:30 pagination, you're stuck 20:06:36 end of story 20:06:37 and then you can switch between them in the UI 20:06:38 robcresswell: I don't have working env now, but it did GET and re-load all js files after delete call on my fresh devstack today 20:06:53 david-lyle: :) 20:06:53 yeah, not much to do to really fix paging. says the inside of david-lyle's head 20:07:09 e0ne: Basically; those bugs can be fixed. I've done it locally with angular. The logic isn't terribly nice, and its a big change from what we have now. 20:07:23 It also has to be done on a per-API basis because they all do things differently 20:07:29 and then it has web sso, which lets you share the logins between those multiple keystones 20:07:45 robcresswell: could you please submit that code to the gerrit? 20:07:53 You *also* have to do a lot of the tracking yourself as the next/prev links aren't reliable from the API (they often show up even if "next" is empty, for example) 20:08:08 e0ne: It wasn't part of Horizon, totally separate investigation. 20:08:31 rdopiera It's been a couple of years, but that multi region / login thing was kind of working for a deployment we had 20:09:17 robcresswell: TBH, I don't know how to fix everything with current APIs without additional API calls 20:09:25 I would not be shocked if the multi region login thing is partially broken right now, as I'm not sure if anyone is still using it 20:09:27 rdopiera, if you're wanting federated keystone between those regions that went in two cycles ago, should work 20:09:45 if you're wanting separate logins, that should work still too 20:09:56 but the UX is different 20:10:23 david-lyle: I think they want common logins 20:10:46 so why not just have multi region and single login rdopiera??? 20:11:04 I suppose you could set multiple REGIONS and use federation 20:11:17 ducttape_: I have no idea, I didn't even KNOW about this feature until they came to me asking how stable it is :) 20:11:26 so I promised to ask upstream 20:11:26 e0ne: This is what I mean; its not an easy solution :) 20:11:28 and here I am 20:11:55 but the intended usage was provide a keystone REGION then your service catalog will contain the endpoints for the other federated keystones 20:11:58 here we all are. indeed. ;) 20:12:12 when you login, then you will get a drop down of other keystones to switch to 20:12:19 robcresswell: I'm glad to help with it if you share your ideas 20:12:37 robcresswell: here is a case what I can't resolve for now: http://paste.openstack.org/show/612591/ 20:13:19 rdopiera: I was using the keystone federation plugin 20:13:22 it works well 20:13:48 e0ne: The only sensible way to do that is probably to drop on to the first page after a refresh :/ 20:13:52 thanks you all for the feedback 20:13:57 thank you* 20:14:08 rdopiera, I think you're mixing two ways of using multiple keystones which is confusing things 20:14:13 robcresswell: it's a bad idea from UX perspective if you've got a lot of pages :( 20:14:31 david-lyle: it's possible I simply didn't understand what they are doing 20:14:37 e0ne: You shouldnt be trying to manipulating large amounts of data by paging through it. Use filtering. 20:14:41 david-lyle: I will try to clarify 20:14:50 david-lyle: thanks for the hints 20:15:00 Or up the page size. But going to page 10 to get something done is not productive. 20:15:07 robcresswell, e0ne I think storing the previous page marker in the session is what you would want 20:15:44 you can store previous markers and page back 20:15:49 if back is all you want 20:16:00 but it's baggage to carry around 20:16:59 Yeah, the only option would be to load the page, check its [], then load the page before 20:17:11 or the next page 20:17:32 but in corner case, we still will get [] :( 20:17:37 you should get an API error if you ask for a missing marker, no? 20:17:54 david-lyle: that's what is supposed to be 20:18:08 david-lyle: No, most APIs will return a Next link for an empty page. 20:18:15 Cinder definitely does this. 20:18:19 I think I have bug open for it 20:18:30 an empty result with a next link? 20:18:34 *result set 20:18:57 how does it know what next is? 20:19:05 if you're asking for a missing ID? 20:19:10 So if I'm looking at page of items 5 - 10, with marker 4 (the last item in the previous page) 20:19:11 it depends on your pagination order: we need prev or next link 20:19:20 And I deleted 5 - 10 20:19:46 hmm, there are prev and next links already 20:19:54 you have to genereate them for the page 20:19:55 and I request 1 - 4, for example, I'll get a "next" link even though there is nothing there 20:20:11 if you are going to have partially supported pagination apis underneath the UI, this seems pretty futile to have a consistent pagination experience 20:20:14 so we don't need to store the last marker 20:20:14 Because the "next" link is always the last item on your current page, not the first item on the next one. 20:20:21 yeah, I gave up on pagination 4+ years ago in OpenStack 20:20:47 have washed away most of the painful memories 20:20:51 rdopiera: Right, this is what Im saying; those links aren't reliable, because they will still generate them even if the next page is empty. 20:20:56 Also most APIs dont do Prev 20:21:07 bummer 20:21:14 the real answer is filtering to reduce the result set and store all the results on the client and handle pagination there 20:21:26 for the handful of pages 20:21:42 that was part of the Paris accord IIRC 20:21:56 not the famous Paris accord of course 20:22:03 but the summit 20:22:12 what is the sense of pagination then, if you have the whole list anyways 20:22:16 just display it all 20:22:22 instead of showing pre and next, would it be better if we just show a link for more and just keep adding more rows to the table? 20:22:25 it's a web page, it can be scrolled, you know 20:22:32 doesn't have to fit on the screen 20:22:47 because throwing more people into the pagination volcano hasn't quieted the pagination volcano's anger yet 20:22:48 ying_zuo: that's an idea 20:22:49 that will solve the problem for apis don't have pre 20:22:57 maybe we can just post all the cloud resources to twitter. they do scrolling pretty well 20:23:00 ying_zuo: and it's popular these days 20:23:05 hm... we can't always show all but links like "show more" are an option for me 20:23:16 rdopiera, status checks can kill performance 20:23:28 and that would also encourage filtering 20:23:30 there were reasons, they may no longer be valid 20:23:38 david-lyle: I see 20:24:14 we didn't limit the thread pool for polling previously 20:24:22 Show more works, but that has its own issues. Like how much data you hold in the client, and what your JS is doing 20:24:32 it was 10 requests for polling I thought 20:24:34 that has been fixed, so showing all may not make things fall over any more 20:24:48 that's why filtering 20:24:59 1000 pages isn't really useful, ever 20:25:42 probably the biggest problem for show more is the update 20:25:46 polling for 100 items statuses per page is also not a good idea from the performance PoV 20:25:57 ying_zuo: +1 20:25:58 update for the deleted resources 20:26:02 that's why the # of threads has been limited 20:26:03 robcresswell: that's where filtering comes in 20:27:08 let's just agree to agree to filter 20:27:10 :) 20:27:15 :) 20:27:42 personally, when there are more results than one page, I would just display "there are XXX results, that's too much to show, enter some filtering criteria" 20:27:56 rdopiera: How do you know how many results there are? 20:27:57 or make searchlight ubiquitous 20:27:59 the next item I'd like to talk about is the lack of a consistent search / filter feature on pages. ;) 20:28:13 robcresswell: you stop reading them as soon as you get one pagefull 20:28:29 Ah, I see your point. 20:28:31 * david-lyle throws the search icon at ducttape_ 20:28:52 ducttape_: Its not toooo bad now. Davids minions improve it a lot. 20:30:04 by the way, I wanted to ask about one more thing 20:30:20 I asked Richard about https://review.openstack.org/#/c/410860/ 20:30:36 and he said that he can't do it, but that it really needs to be done soon 20:30:56 and I'm familiar with the microversions code already... 20:31:13 Oh yeah, that was the feature Cinder supported for ~1 cycle that I spent ages reviewing. 20:31:13 rdopiera, you win 20:31:40 rdopiera: +1 20:31:45 Well volunteered :) 20:32:05 however, that patch is supposed to have subsequent patches 20:32:11 and that's not something I am up for 20:32:37 robcresswell: TBH, we removed consistency groups in Pike in flavor of generic groups 20:33:00 e0ne: Yeah, that was the issue I was mentioning :) 20:34:21 e0ne: We spent a fair bit of time adding support only for it to be immediately deprecated. That's not really ideal when reviewer bandwidth is low. 20:34:53 robcresswell: I have to agree with you :( 20:35:26 on the plus side, no one must have been using it 20:35:32 * david-lyle ducks 20:36:01 david-lyle: I don't think anyone's upgraded past Mitaka yet to notice 20:36:25 so if we remove it quickly, we should be fine? 20:36:37 no 20:36:42 thats now how it works 20:36:45 not* 20:36:49 aww 20:37:03 customers will be on Newton / whatever in another 6-9 months etc 20:37:22 can we have such features implemented as plugins? 20:37:25 IIUC it was a proprietary extension disguised as a Cinder API feature 20:37:33 but there are many of those 20:37:47 so there may be a limited set of people that used it 20:38:02 david-lyle: +1 20:38:24 and now it's migrated to generic groups 20:38:51 so in a pike release, it would be good to have generic groups support instead of CGs 20:39:01 this isn't allowed I think, but in an ideal world you'd change the docs for old releases and tell people to avoid features like this 20:39:03 agreed 20:39:31 Well, microversions means its around forever now 20:40:06 yay, microversions 20:40:13 :( 20:40:14 robcresswell: it's crazy world 20:40:38 every time a microversion is added, a kitten feels pain. I hope upstream is happy with this path 20:40:43 e0ne: Regardless, its unlikely to get done unless somebody wants to really push for it. 20:41:52 guarding CG with microversions seems straightforward and volunteered for 20:42:04 the support for Groups less so 20:42:19 unless that's happening somewhere already? 20:42:49 Not until someone new volunteers to do it 20:42:54 I've got enough to get done for now :) 20:43:03 even if we do that, should there be a migration path then? 20:43:19 from cg to gg 20:43:33 rdopiera, I would have to think that falls in Cinder's boat 20:43:34 I guess that's cinder's problem 20:43:38 right 20:43:45 yeah 20:44:06 see, could have been worse ;) 20:44:19 cinder did migration from CGs to generic groups 20:44:36 there problem solved 20:44:39 :) 20:45:22 the problem is, by the time the users realise they need gg support, it will be too late to add it in Pike 20:45:44 :( 20:47:05 #link http://lists.openstack.org/pipermail/openstack-dev/2016-November/106720.html 20:48:06 by Pike-1, haha 20:48:12 when was that 20:48:28 * rdopiera cries a little 20:49:05 e0ne: is the api very different? 20:49:39 rdopiera: I have to check a code to answer 20:49:52 rdopiera: I didn't use CGs at all 20:50:05 * rdopiera reads https://docs.openstack.org/admin-guide/blockstorage-groups.html 20:51:26 generic groups work for all backends, so everybody can use it 20:52:36 looks similar to https://specs.openstack.org/openstack/cinder-specs/specs/kilo/consistency-groups-kilo-update.html 20:52:41 functionality-wise 20:55:06 thanks everyone, I have to run, #endmeeting robcresswell 20:55:22 Yeah I was just reading 20:55:29 I will ask our pm about this, maybe I will get a go ahead for it 20:55:32 ah, thought you went for a pint 20:55:47 nah, just didn't have much to add 20:56:12 rdopiera: I can review it if you get the time to work on it 20:56:18 thanks! 20:56:19 ..reluctantly. 20:56:44 reluctant reviews are the best ;) 20:56:50 robcresswell: I'll send a notes about paging to openstack-dev tomorrow as a follow-up of discussion 20:57:21 e0ne: The page numbers part will never get done, but the rest should be viable. The APIs should provide prev links, IMO, but many dont. 20:58:04 Anyway, we've 2 minutes left 20:58:06 any final remarks? 20:58:09 robcresswell: page numbers is not a bug. I more care about current bugs than features 20:58:45 Sure 20:59:18 Okay well, thanks for your time everyone :) 20:59:24 bye 20:59:49 #endmeeting