Admin dashboard shows too many panels now.
This commit introduces panel groups for Admin dashboard
as we do for Project dashboard.
The new order of admin panel groups are:
Compute, Volume, Network and System.
Note that the slug of "System" panel group is not changed
to avoid breaking horizon plugins which register panels to
Admin System panel group.
Implements blueprint reorganize-admin-dashboard
Change-Id: I533e60f7cbfab2539b9f8aa7044f7234165f2518
This edit unfortunately contains more changes than the others
because it effectively merges a bunch of files under
admin/volumes/*.py
Change-Id: I52f3444a92fc83982a95760673419b4b4d746ad3
Implements: blueprint reorganise-volumes
Note that there was state leaking from one of the existing
tests that was relied upon in other tests and moving that test
in the run order caused the others to fail. All related tests
have been altered to not leak state.
Change-Id: I972bc5650fa77044de8a027f570cf2cb41febef8
Implements: blueprint reorganise-volumes
Notes on enabling consistency groups in devstack:
http://docs.openstack.org/admin-guide/blockstorage-consistency-groups.html
You'll also need to modify the local cinder policy file.
Though that's not actually enough to make it work since
devstack only provides the LVM volume type and CGs don't
work with LVM. You can attempt to create CGs, but they
will error.
Change-Id: I0ab541c81570cd5f67bb7d04c01bc92bc5cc3ab5
Implements: blueprint reorganise-volumes
In doing this I found that the permission check on the
project Volume Snapshots table was incorrectly defined,
resulting in always-denied. Removing a level of nesting
in the permission structure fixed it.
Change-Id: I1bc5bd4820700d29861ec1dcd6c87a41b5230266
Implements: blueprint reorganise-volumes
This patch moves the Security Groups tab from the Access and Security
panel into its own panel under the Network panel group. As this is the
last tab in Access and Security, that panel is also removed by this
patch.
Change-Id: Id29c7ce635d46383742aec140def265d4b249aa5
Implements: blueprint reorganise-access-and-security
This patch makes the Floating IPs tab in Access & Security its own panel
under Project > Network
Change-Id: Ibb83ae5a0448d2824c10f867e620cec8219b7b72
Implements: blueprint reorganise-access-and-security
This panel was added in the old style (whole new "ng" panel with its own
enabled file), and since there's no additional code added to it since
then, we should be safe in removing this stub and starting afresh using
our current style (extending the existing panel with ANGULAR_FEATURES setting).
This reverts commit 3b5d9764fe0a93498993124379ea9e95fa58430b.
Change-Id: Ic8c4bffb44126c69fecd56cce6adfb16d30b4e85
This patch moves the API Access view, from a tab on the Access
& Security panel to its own panel under the Compute panel group
Change-Id: I1e523ba2e7e959474c0fc77f8b6c42994a481081
Implements: blueprint reorganise-access-and-security
As part of the breaking up of Access and Security, move the Key Pairs
tab to a new panel under Compute. Separate patches will address Floating
IPs, Security Groups, and API Access.
Fixes include:
- Should be significantly faster to access Key Pairs, as we are no
longer running multiple API calls for the other Access & Security tabs
at the same time. Hooray for speed!
- Should be easier for new users to find where Key Pairs are located.
- Reduce reuse of identical translatable strings
- Use common templates instead of duplication
- Updated policy rules and added missing rules to table get_data
- Small cleanup of the Key Pair download page, which was previously
using modal classes despite not being a modal.
Change-Id: I66f1f65a2cb49bd10e0364b12efba4346f373ed3
Implements: blueprint reorganise-access-and-security
The move to the angularJS based UI for swift as the default occurred
two releases ago in Mitaka. This patch removes the dead code.
Change-Id: I0322808aeacab5406c0dd3f4b19bed50bc0ff089
This patch updates an angular users table.
To be added in subsequent patches:
- Detail Table
- Actions
- filterFacets
- Integration to Searchlight
To Test
- change 'users_panel' to True in settings.py
Change-Id: I3c4cb39d80adc9aa207e56dc72a936f567f5b4d1
Partially-Implements: blueprint ng-users
LBaaS v1 feature was removed from neutron-lbaas in Newton.
There is no reason we have LBaaS v1 dashboard in Ocata or later.
Change-Id: Ic7d4ceea1943c3721500ce4b7f769b9dba28a359
Closes-Bug: #1624655
This patch enables all of the features for the Flavors panel to use Angular but
disables it, so that it is easy to switch on/off.
Note that we add integration test switches since it can't read the Django
conf.
Note that I changed the common tests to allow for testing of api calls that
don't produce error toasts, because we needed better branch coverage, and
the deleteFlavor api wasn't fully branch-tested.
Change-Id: I92b1b57bd486e5eb87179cb8d44b7551e9de2e0f
Partially-Implements: blueprint ng-flavors
This patch moves the developer panel enabled files to contrib, to stop
any strange behaviour when interacting with settings from enabled files
and prevent warning logs when DEBUG is False.
Change-Id: If7a2d023afe418b6dd90edf8a4a1d3bc9646c7ad
Now system administrators have CRUD abilities to manage floating IP.
1.floating IP list table
2.allocate floating IP to specific tenant
3.release/delete floating IP
Partially implements blueprint: manage-ips
Partially implements blueprint: syspanel-floating-ip-list
Change-Id: Ie5ec59740887d3845b933b37e6e875dbf08a4918
This patch follows on the example that the Containers set, providing
a 'switch' in the panel-enablement file that currently defaults to
'legacy' (Python-based Images panel) and allows for 'angular' (Angular-
based Images panel).
To be clear, this does NOT enable Angular Images. It's just setting the
stage to do so at some point, or to allow deployers/devs to easily switch
between the two.
A switch both for HORIZON_CONFIG and for integration tests is necessary
due to the way integration tests operate.
Co-Authored-By: Timur Sufiev <tsufiev@mirantis.com>
Change-Id: I12cd33552218ed1082d2d9a2ae8982639a217a6a
Partially-Implements: blueprint angularize-images-table
Developer dashboard panel which shows:
- resource types currently in the resource registry browser
- the details that are set for each resource type
- links to generic table views (if available)
- available actions (with WIP mechanism to exercise the action)
To test:
- Open Developer -> Resources
- notice how Images item is green
- exercise some of the global actions (create image)
- enter an image id to exercise the item actions
- batch actions not currently testable
- click the images "Generic Table View" link
Partially-Implements: blueprint angular-registry
Change-Id: Ib931fac9917a50c268b2e63ff7a0de42052c62c8
This patch creates a blank Volumes panel in the project dashboard.
It follows the pattern established by the following merged commits:
https://review.openstack.org/#/c/200324/
To be added in subsequent patches:
- Actions
- Tables
- Filters via Magic Search
- Integration to Searchlight
To test:
It doesn't work with only this one.
You can test volumes panel and table with this patch.
https://review.openstack.org/#/c/319051/
Partially-Implements: blueprint angularize-volumes-table
Change-Id: I17fdf46162187cd127d645370673fe3a3fe39db4
This patch provides the ability for the registered detail views for
any resource type to be generically presented.
This patch does the following:
* Adds a directive that displays a set of views (i.e. details sub-views)
* Adds a Generic Detail display for routed pages
* Adds the concept of a Descriptor which contains a resource type name
and an identifier. The identifier can be something as simple as
a string, but may also be an object (if the resource type needs more
than one value to look up its data, e.g. Pool Members)
* Adds the ability for a resource type to have knowledge about how one
of its items may be loaded, so any detail page can fetch the information
given a basic context
* Adds a generic Angular page (since they all just route to ng-views).
We will see this used in subsequent patches as well.
* Sets up a Django route to a non-navigational panel for the Details
Change-Id: Ie116b52ba196f9240fdc6bbc4a12d37beb9b9fcf
Partially-Implements: blueprint angular-registry
This patch set adds a separate panel for Heat template versions and
template functions.
Depends on: Id9718bb5d1c2b70664a9c27c67e91436e5489dd6
Partially implements blueprint: heat-template-versions
Change-Id: I44bfd72a7d4147d48ffa999c93de0e41e591d5c1
Replace the old Swift UI with the new AngularJS implementation
by default.
Use setting in the enabled file to switch routing between the
two, allowing HEAT interface to seamlessly work with both.
Updated the release note with the new configuration information.
Removed the unnecessary additional "ngcontainers" panel.
Hard-coded the test suite to use the legacy panel - since they
are all testing the legacy panel and those tests will be removed
(or altered in the case of the stacks MappingTests) when
the legacy panel is removed.
Finally, I had to add a copyright notice to the enabled file
because flake8 noticed because I touched it or something. Very
random.
Change-Id: Ie4325185f57654522f9331d617f142687effb70b
Partially-Implements: blueprint angularize-swift
Co-Author: Travis Tripp <travis.tripp@hpe.com>
Co-Authored-By: Matt Borland <matt.borland@hpe.com>
This patch adds listing of containers and objects in selected
containers, but not additional functionality. That additional
functionality will be added in subsequent patches.
To test set DISABLED = False in _1921_project_ng_containers_panel.py
Change-Id: I37980a7b84dbddb99d8f1d4d8235cc11917da30e
Co-Author: Neill Cox <neill@ingenious.com.au>
Partially-Implements: blueprint angularize-swift
This patch makes the new angular Launch Instance workflow mostly
themeable. Most of the existing CSS has been deleted, and this now
follows bootstraps markup. This is not intended to solve all edge cases
given the size of the work, but is a big step in the right direction.
Changes:
- Use stacked nav tabs for navigation. Move base nav tabs toward
bootstrap default. Style primary side nav as before.
- Use bootstraps form markup for modal
- Use bootstraps form markup for form fields and their errors
- Make pie charts and tables inherit any missing theme variables. A more
thorough pass will be done on this next release cycle.
Closes-Bug: 1538491
Change-Id: Ic20b7f4341a2853ca334824c6a811125b04e88cc
This patch unifies the Python and Angular table styles (there is no
reason for them to look drastically different).
- Clean up table header in _data_table.html
- Remove page_header styling for default theme, as it causes the angular
panels to shift downwards on the page
- Removed styling workarounds from default themes
- Removed several chunks of angular specific scss code, including the
'modern' class
- Removed the "Actions" header in python tables, to match Angular
- Removed duplicate 'no items to display' info in footer, when table is
empty.
- Also fixes the Containers header, which was different to all the
others
Closes-Bug: 1517081
Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>
Change-Id: Id71aab6e8bbbcd1f7fa4d5575156e4d3c6aa990d
This patch adds the scaffolding for the new angular Swift
interface, but none of the static files for that interface.
The body of the interface will be added in a follow-on
patch.
To test set DISABLED = False in _1921_project_ng_containers_panel.py
Co-Author: Neill Cox <neill@ingenious.com.au>
Change-Id: Icc11167f82554dee31edc465a14be8ebbe435403
Horizon themes are now configurable at a user level, through the use
of cookies. The themes that can be set are configurable at a
deployment level through settings.py. Horizon can be configured to
run with multiple themes, and allow users to choose which themes
they wish to run.
Django Compressor:
In order to support dynamic themes, each theme configuration must
be pre-compiled through the Django compressor. By making use of its
built in COMPRESS_OFFLINE_CONTEXT, we now return a generator to
create each of the theme's necessary offline contexts.
Templates:
Horizon themes allowed template overrides via their 'templates'
subfolder. In order to maintain this parity, a custom theme template
loader was created. It is run before the other loads, and simply
looks for a Django template in the current theme (cookie driven)
before diverting to the previous template loaders.
Static Files:
Horizon themes allowed static overrides of the images in
'dashboard/img' folder. A template tag, 'themable_asset' was created
to maintain this parity. Any asset that is wished to be made themable,
given that it is located in Horizon's 'static/dashboard' folder, can
now be made ot be themable. By making this a template tag, this
gives the developers more granular control over what branders can
customize.
Angular and Plugins:
By far, the trickiest part of this task, Angular and Plugins are
dynamic in the files that they 'discover'. SCSS is not flexible in
this manner at ALL. SCSS disallows the importation of a variable
name. To get around this, themes.scss was created as a Django
template. This template is the top level import file for all styles
within Horizon, and therefore, allows ALL the scss files to share a
common namespace and thus, can use shared variables as well as extend
shared styles.
Other:
This change is fundamental, in that it changes the method by which
Horizon ingests its SCSS files. Many problems existing in the
previous implementation, in an effort to make Horizon flexible, its
SCSS was made very inflexible. This patch corrects those problems.
Change-Id: Ic48b4b5c1d1a41f1e01a8d52784c9d38d192c8f1
Implements: blueprint horizon-dynamic-theme
Closes-Bug: #1480427
Display the identity provider panel when the setting
OPENSTACK_KEYSTONE_FEDERATION_MANAGEMENT is set to True.
Change-Id: Iadf92eb7542013f9c212eccfa372c6335a319841
Implements: blueprint keystone-federation-idp
Themers need an easy way to see how customizations in
the new themeing mechanism will affect known bootstrap
elements.
While DEBUG is True, the developer dashboard will be present in the
Horizon nav sidebar. This currently displays the Bootstrap Theme Preview
page, and will also be used for Angular widget demos etc in the future.
Documentation on SCSS and the preview page are being provided in a
separate patch to coordinate with the theming work
(https://bugs.launchpad.net/horizon/+bug/1514869)
Note: The SECRET_KEY block in settings.py is moved before the enabled
files setup, so that importing settings in the enabled file doesn't
cause errors.
Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>
Implements: blueprint bootstrap-theme-preview
Change-Id: I44bc52d4dcfbbdc60a27879e638d78c4b508b2e9
Adding a new panel to the admin dashboard that will use angular js
instead of the django templates
To test set DISABLED = False in _2081_admin_flavors_panel.py
Co-Authored-By: Rajat Vig<rajatv@thoughtworks.com>
Co-Authored-By: Errol Pais<epais@thoughtworks.com>
Co-Authored-By: Kristine Brown<kbrown@thoughtworks.com>
Change-Id: I9394ddfe3791aeb7a52194f37e1e668e33c0325b
Partially-Implements: blueprint ng-flavors
This enables admin angular plugins to be developed. It will be needed
for 3rd party integrators to create out of tree angular panel plugins.
It also is needed for in tree plugins like admin images, system
information, defaults, and flavors panel. Without this patch, all of
these panels require a common parent dependency.
Change-Id: I5a8232a1f1f3075f65ee742df84223aed7af3d92
Partially-Implements: blueprint ng-defaults-panel
Partially implements: blueprint angularize-images-table
Partially implements: blueprint plugin-sanity