Horizon needs to support filtered pages of users and projects, once it's supported by Keystone

Registered by Paul Karikh on 2015-12-04

This blueprint has been superseded. See the newer blueprint "Consistent Server Side Filtering" for updated plans.

Summary
=======
Horizon needs to support filtered pages of users and projects, once it's supported by Keystone v3 API to provide more user-friendly UI and avoid existing perfomance issues with fetching large datasets from services and rendering these datasets on one page without pagination.

Motivation
=========
1) Currently there is no way to paginate the table of Users fetched from LDAP behind Keystone. When there are a lot of users in LDAP, Keystone will response with timeout error, and when Keystone has a lot of users in mysql, rendering all these users without paging causes Horizon timeout.
2) Fetching a lots of users from Keystone causes Horizon slowness on every pages, where Horizon calls user_list or project_list.
3) Rendering of Identity/Users with more than 500 users takes too much time (more than 10 seconds)
4) It also causes slownes everywhere where Horizon uses api.keystone.user_list() call. For example, some workflows. And in some cases it cause errors (like that: https://bugs.launchpad.net/horizon/+bug/1504190)

Description
=========
First we need to get Keysone truncated flag support get merged. https://review.openstack.org/#/c/234849/
Next we need to get keystone-pythonclient truncated flag support to get merged
https://review.openstack.org/#/c/250473/1

UX
===
When Horizon gets truncated dataset from Keystone, it should show notification in right top corner and ask user to specify his query with filtering.

Wireframes, Mocks, Videos and UI Markup
---------------------------------------------------------------
N/A

Testing
======
Should be covered both with unit and integration tests.

Outside Dependencies
==================
Keystone and python-keystoneclient supporting truncated flag for list() method

Requirements Update Required
========================
N/A

Doc Impact
=========

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
High
Drafter:
Paul Karikh
Direction:
Approved
Assignee:
Paul Karikh
Definition:
Superseded
Series goal:
Accepted for 10.0.0-newton
Implementation:
Good progress
Milestone target:
None
Started by
David Lyle on 2015-12-09
Completed by
David Lyle on 2016-10-28

Related branches

Sprints

Whiteboard

Horizon filtering patch: https://review.openstack.org/#/c/252488/
Horizon support truncated patch: https://review.openstack.org/#/c/250869/
Keystone truncated flag support patch (and all in dependencies): https://review.openstack.org/#/c/234849/
python-keystoneclient patch for support truncated flag: https://review.openstack.org/#/c/250473/1

Gerrit topic: https://review.openstack.org/#q,topic:bp/horizon-filtering-users-and-projects,n,z

Addressed by: https://review.openstack.org/252488
    [WIP] Add identity v3 API filtering to users and projects tables

Addressed by: https://review.openstack.org/250869
    [WIP] Add truncated flag support

[david-lyle | 2015-Dec-9] table summation row will be effected as well, needs to be addressed.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.