Configurable setting to allow operators to require admin users provide search criteria first, before loading any data

Registered by Daniel Castellanos on 2016-05-06

Summary
=======
Have a configurable setting to allow operators to require admin users to provide search criteria first before loading any data.

Motivation
========
Currently if there is a large amount of resources in the environment, the admin views take too much time to load. Making a series of API calls to populate the table with the first 20 of say 1000 items is wasteful and has a low likelihood of success.
Horizon needs to have a configurable feature that allows requiring admin users to provide a set of filters before loading the data in the views, so that the user only gets what he/she needs.

Description
=========
- There will be a configurable setting that can be set in the local_settings.py file:
  FILTER_DATA_FIRST={
      'admin.instances': False,
      'admin.volumes': False,
      'admin.networks': False,
      'admin.images': False
  }
- The default value of the dict attributes will be False
- A set of new filter inputs will be displayed in the admin views (Investigate APIs server side filtering first)
- If the FILTER_DATA_FIRST key,value is True; then the admin views will display an empty table and a message notifying the user that a search criteria must be applied first
- The change will target Instances, Volumes, Images, Networks and Routers admin views
- At least one filter must be selected before submitting the search criteria

UX
===
Change targeted views behavior to display an empty table and a message to inform the user about specifying a search criteria first
if the configuration variable is set to True

Wireframes, Mocks, Videos and UI Markup
---------------------------------------------------------
If the FILTER_DATA_FIRST key-value is set to True the targeted view will show an empty table but with an embedded text message saying "Please specify a search criteria first."
A search criteria filtering input(s) will be available to the user as part of the standard table filtering.

Outside Dependencies
==================
collect information about API server side filtering for Instances, Volumes, Images and Networks
and implement available filters

Doc Impact
=========
- Changes to settings file will be required to add the new configuration value. Need to document this new variable
- The data loading behavior of admin views will change when the new configuration value is set to True. Need to document this behavior.
- Release Note item also needs to be added.

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
High
Drafter:
Daniel Castellanos
Direction:
Approved
Assignee:
Daniel Castellanos
Definition:
Approved
Series goal:
Accepted for 10.0.0-newton
Implementation:
Implemented
Milestone target:
milestone icon ocata-1
Started by
Daniel Castellanos on 2016-06-17
Completed by
Daniel Castellanos on 2016-09-16

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/admin-views-filter-first,n,z

Addressed by: https://review.openstack.org/320133
    [WIP] Implement ADMIN_FILTER_DATA_FIRST setting in Admin Views

Addressed by: https://review.openstack.org/329184
    Server-side filtering networks

Addressed by: https://review.openstack.org/353067
    Implements admin_filter_first in networks

Addressed by: https://review.openstack.org/333007
    Server-side filtering routers

Addressed by: https://review.openstack.org/353100
    Implements admin_filter_first in routers

Gerrit topic: https://review.openstack.org/#q,topic:bp/server-side-filtering,n,z

Addressed by: https://review.openstack.org/365032
    Implement admin_filter_first setting in Admin>Volumes

Addressed by: https://review.openstack.org/367512
    Implement admin_filter setting in Project>vpn

Addressed by: https://review.openstack.org/369648
    Update admin filter first setting to a dict

Gerrit topic: https://review.openstack.org/#q,topic:FilterFirstNGUsers,n,z

Addressed by: https://review.openstack.org/435564
    Add server filters to NGusers & enable filter first

Gerrit topic: https://review.openstack.org/#q,topic:FilterFirstNGAdminImages,n,z

Addressed by: https://review.openstack.org/427794
    Implement "FILTER_DATA_FIRST" in angular views

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.