Cinder Backend Usage Reporting

Registered by Nate Potter

Summary
=======
Implement Newton released feature Backend Usage Reporting into
Horizon administrative dashboard. It is the ability for an admin
to see within the dashboard the amount of free and used storage
in their Cinder-managed backends.
Motivation
========
Operators have requested an new API support an existing feature to
easily determine the storage usage in Cinder. By implementing in
Horizon operators can quickly determine if more storage is needed
and allocate new volumes as needed.
Description
=========
Add to the admin dashboard to display block storage hosts and their
amount of free and used storage.

This information will specifically be implemented into a new Panel
labeled "Block Storage", where all future Cinder host or backend
information can be placed. The API will be called over all the Cinder
hosts to get information from the backends.
UX
===
This feature will be added to the admin tabs under "Block Storage". It will
display a series of pie charts for each storage host displaying their free and used space.
This panel could be expanded upon to provide a table with other host information if
needed, such as storage protocol or driver version.

Outside Dependencies
==================
Functionality is being implemented in Cinder and python-cinderclient
and is nearing completion:
https://blueprints.launchpad.net/cinder/+spec/backend-usage-reporting
https://review.openstack.org/#/c/301445/
https://review.openstack.org/#/c/301444/
Doc Impact
=========
Documentation will be made for api-site and openstack-manuals

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Undefined
Drafter:
Nate Potter
Direction:
Needs approval
Assignee:
Ankur
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Rob Cresswell

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/302455
    WIP: Enable Backend Usage Reporting

[david-lyle] I am a little unclear if this requires driver support. Does adding this API in cinder then require additional driver work to support? Or, is the data already available in Cinder and this is just a means to expose it? The cinder bp does not really provide any greater detail than this bp. So without looking through all the patches it's not apparent.

Other than utilization is there any other information that will be displayed for storage hosts? If not, would a series of pie charts possibly be a more accessible visualization?

[ntpttr] This won't require driver support, the info was already being kept track of behind the scenes for scheduling and things like that, but I'm adding a new API that will allow it to be externally accessed. The spec provides more detail on the cinder side https://review.openstack.org/#/c/301946/.

Right now the scope of this BP is only to display usage, which would definitely be better handled by a series of pie charts. There is other information that could be added, such as some things in the output of the 'cinder get-capabilities <host>' command like the protocol, driver version, and replication targets.

[ankur-gupta-f] Won't be possible till Microversions is available in Horizon. Most likely. Will have to put on pause/hold till until Cinder patches are merged to verify if this is the case.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.