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

Registered by Paul Karikh

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
Completed by
David Lyle

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.