Spec for Openstack Environment Dashboard
adding a new tab on Fuel UI - an entry point for plugins and a place with OpenStack environment cumulated information, proposed actions, documentation links Blueprint post-deployment-dashboard Change-Id: I5c828db86287dc7ca440e2b51596333d862d0008
This commit is contained in:
parent
b4b03b8730
commit
cd6524b8ea
BIN
images/7.0/fuel-ui-dashboard/deployment_in_progress.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_in_progress.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 258 KiB |
BIN
images/7.0/fuel-ui-dashboard/deployment_success.jpg
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_success.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
BIN
images/7.0/fuel-ui-dashboard/deployment_warnings.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_warnings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 281 KiB |
BIN
images/7.0/fuel-ui-dashboard/new_cluster.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/new_cluster.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 264 KiB |
320
specs/7.0/fuel-ui-dashboard.rst
Normal file
320
specs/7.0/fuel-ui-dashboard.rst
Normal file
@ -0,0 +1,320 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
==========================================
|
||||
OpenStack environment Dashboard
|
||||
==========================================
|
||||
|
||||
https://blueprints.launchpad.net/fuel/+spec/post-deployment-dashboard
|
||||
|
||||
Create a single entry point for user to have access to all the necessary
|
||||
information before, in progress and after deployment.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
It might be quite hard for a newbie user to understand what he should do after
|
||||
OpenStack environment creation. To help user setup the OpenStack environment
|
||||
and show what can be done with it we'll introduce dashboard.
|
||||
Dashboard will accumulate information about the OpenStack environment
|
||||
It also will give the user an idea of what to do next and what in general can
|
||||
be done with OpenStack environment.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Create a separate tab in UI combining all the necessary information and useful
|
||||
links for the user. This tab will also replace current Actions tab, combining
|
||||
data from there.
|
||||
|
||||
The main information should be displayed in the separate block - with
|
||||
instructions what to do next and what currently is wrong.
|
||||
|
||||
For the new just-created OpenStack environment there should be:
|
||||
|
||||
* link to *Add nodes screen* with warning *No nodes added to OpenStack*
|
||||
*environment*
|
||||
* for OpenStack environments with nodes, but no network verification -
|
||||
corresponding warning and link to Networks tab
|
||||
|
||||
To be short - all warnings and errors, shown in Deploy changes dialog should be
|
||||
shown here.
|
||||
|
||||
For deployed OpenStack environment there will be link to Horizon, OSTF tests
|
||||
status with link to Healthcheck tab. For new OpenStack environment Healthcheck
|
||||
block will be shown but disabled.
|
||||
|
||||
For error OpenStack environment here will be error message, replacing
|
||||
the one under OpenStack environment page breadcrumbs.
|
||||
|
||||
The additional content here will be:
|
||||
|
||||
* nodes statistics - number of online nodes in OpenStack environments, in graph
|
||||
view, donut chart. Number of error nodes - just in red (in case of error
|
||||
offline node this node will be counted as an error one)
|
||||
* link to plugins documentation
|
||||
* link to Openstack documentation
|
||||
* storage backend info - what volume and image type is selected (Cinder or
|
||||
Ceph) (is needed to know in order to not search this information
|
||||
through the whole settings tab)
|
||||
* other OpenStack environment information (in one cumulated block) - OpenStack
|
||||
environment name, operating system, OpenStack release, selected compute
|
||||
hypervisors (KVM, QEMU with vCenter or not), network option (Neutron or Nova)
|
||||
* nodes configuration (HDD, CPU, RAM)
|
||||
* urls, provided by plugins(services like Murano, Sahara, Ceilometer are
|
||||
treated as plugins also) via API described in corresponding chapter
|
||||
`REST API impact`_. Plugin entries will be displayed in the order of date
|
||||
creation.
|
||||
|
||||
The suggestion is to have a unified source of truth for either deployed
|
||||
OpenStack environment and a new one, this tab would be the first one and Nodes
|
||||
tab will go after it.
|
||||
|
||||
The proposed mockups of dashboard: for new OpenStack environment:
|
||||
|
||||
.. image:: ../../images/7.0/fuel-ui-dashboard/new_cluster.png
|
||||
|
||||
For new OpenStack environment being deployed:
|
||||
|
||||
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_in_progress.png
|
||||
|
||||
For OpenStack environment already deployed:
|
||||
|
||||
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_success.jpg
|
||||
|
||||
and in case of warnings:
|
||||
|
||||
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_warnings.png
|
||||
|
||||
|
||||
For nailgun
|
||||
-----------
|
||||
|
||||
Provide API with links to all possible necessary resources after OpenStack
|
||||
environment deployment.
|
||||
|
||||
* link to Horizon
|
||||
* link to Zabbix
|
||||
* link to Murano (description and what to do with it)
|
||||
* link to Sahara (description and what to do with it)
|
||||
* link to Ceilometer (description and what to do with it)
|
||||
* any other links provided by plugins
|
||||
|
||||
We'll have special /cluster/:id/dashboard_entries url by GETting which it will
|
||||
be possible to get the list of dashboard entries in the format like this:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
[
|
||||
{
|
||||
title: 'plugin',
|
||||
description: '',
|
||||
url: '',
|
||||
id: Number
|
||||
}
|
||||
]
|
||||
|
||||
with optional 'description' field.
|
||||
|
||||
To solve authentication issues we'll use auth exemption.
|
||||
|
||||
|
||||
For UI
|
||||
-----------
|
||||
|
||||
UX will be affected in several aspects with this change:
|
||||
|
||||
* Actions tab will be substituted with Dashboard tab, providing all the
|
||||
necessary info about the OpenStack environment for the user
|
||||
* Deploy button will be moved to Dashboard
|
||||
* Deployment result message (both success and error or warning-containing) will
|
||||
be moved to dashboard
|
||||
* Deployment/resetting/stopping progress will be displayed on the Dashboard tab
|
||||
* List of changes will be displayed on the dashboard replacing Deploy Changes
|
||||
dialog
|
||||
* Discard changes button will be moved to Dashboard
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
The new table for dashboard entries should be created, containing the
|
||||
following fields:
|
||||
|
||||
+----+--------+-------------+--------+------------+
|
||||
| id | Title | Description | url | cluster_id |
|
||||
+====+========+=============+========+============+
|
||||
| id | String | String | String | id |
|
||||
+-------------+-------------+--------+------------+
|
||||
|
||||
cluster_id field means one cluster may have many dashboard entries for plugin,
|
||||
but it will belong to one cluster (one-to-many relationship)
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
API POST, PUT and DELETE method should be available for plugins in their post-
|
||||
deployment hooks.
|
||||
|
||||
There will be a new REST API url added:
|
||||
|
||||
+--------+--------------------------------+--------------------------+-------+
|
||||
| method | URL | action | auth |
|
||||
| | | | exempt|
|
||||
+========+================================+==========================+=======+
|
||||
| POST | /api/v1/clusters/:cluster_id/ | create a new item | true |
|
||||
| | dashboard_entries | for dashboard entries | |
|
||||
+--------+--------------------------------+--------------------------+-------+
|
||||
| GET | /api/v1/clusters/:cluster_id/ | get a list of | false |
|
||||
| | dashboard_entries | dashboard entries | |
|
||||
+--------+--------------------------------+--------------------------+-------+
|
||||
| PUT | /api/v1/clusters/:cluster_id/ | update a dashboard entry | false |
|
||||
| | dashboard_entries/:entry_id | with specified id | |
|
||||
+--------+--------------------------------+--------------------------+-------+
|
||||
| DELETE | /api/v1/clusters/:cluster_id/ | delete a dashboard | false |
|
||||
| | dashboard_entries/:entry_id | entry with specified id | |
|
||||
+--------+--------------------------------+--------------------------+-------+
|
||||
|
||||
GET returns JSON like this:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
[
|
||||
{
|
||||
title: 'Zabbix',
|
||||
description: 'Zabbix is software that monitors numerous' +
|
||||
+ 'parameters of a network and the health and integrity' +
|
||||
+ ' of servers',
|
||||
url: 'http://www.zabbix.com/',
|
||||
id: Number(identificator)
|
||||
},
|
||||
{
|
||||
title: 'Murano',
|
||||
url: 'https://wiki.openstack.org/wiki/Murano',
|
||||
id: Number(identificator)
|
||||
},
|
||||
{
|
||||
title: 'My plugin',
|
||||
description: 'My awesome plugin',
|
||||
url: '/my_plugin',
|
||||
id: Number(identificator)
|
||||
}
|
||||
]
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
A migration should be created for DashboardEntries model, also
|
||||
migrations are needed to generate dashboard entries for old OpenStack
|
||||
environments - for Horizon, Sahara and Murano entries.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
Unlikely.
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
Will improve user experience.
|
||||
Unlikely to impact python-fuelclient.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None.
|
||||
|
||||
Plugin impact
|
||||
---------------------
|
||||
|
||||
Will provide an entry point for plugins to access post-deployment
|
||||
dashboard.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Aleksandra Morozova <astepanchuk@mirantis.com>
|
||||
Other contributors:
|
||||
* Bogdan Dudko <bdudko@mirantis.com> - designer
|
||||
* Steve Doll <sdoll@mirantis.com> - designer
|
||||
* Vitaly Kramskikh <vkramskikh@mirantis.com> - backend developer
|
||||
Approver:
|
||||
* Nathan Trueblood <ntrueblood@mirantis.com>
|
||||
* Sheena Gregson <sgregson@mirantis.com>
|
||||
Reviewer:
|
||||
* Vitaly Kramskikh <vkramskikh@mirantis.com>
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
Blueprint will be implemented in several stages:
|
||||
|
||||
* Initial design and logic approval
|
||||
* Markup implementation
|
||||
* Javascript React components implementation
|
||||
* Backend implementation
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Tests to be created for new REST API items.
|
||||
UI side of Dashboard implementation should also be covered with
|
||||
functional and unit tests - React components, new UX, new js model.
|
||||
|
||||
Acceptance criteria
|
||||
-------------------
|
||||
|
||||
User can access OpenStack documentation, list of changes, available actions,
|
||||
cumulated information and what is missing for OpenStack environment, also
|
||||
plugin urls will be shown on this separate Dashboard tab.
|
||||
Cumulated environment information, actions that can be done with environment
|
||||
and links to OpenStack documentation should always be visible for the user.
|
||||
Before deployment user can see list of changes, a list of warnings/errors if
|
||||
any in addition to information displayed always.
|
||||
In the process of environment deployment, user can see current deployment
|
||||
progress state, besides the information mentioned above.
|
||||
After OpenStack deployment has successfully completed, the default displayed
|
||||
tab shows links out to all relevant dashboards (Horizon, Murano, plugin
|
||||
UIs). If plugins were included, links should include plugin-relevant UI blocks.
|
||||
Changing plugin settings and/or removing plugins is not a part of this page.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Part about user flow, with new Dashboard tab should be updated.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
1. https://blueprints.launchpad.net/fuel/+spec/post-deployment-dashboard
|
Loading…
Reference in New Issue
Block a user