Note de release pour Newton

10.0.2

Résolutions de Bugs

  • [bug 1618235] User can now delete all characters typed in input search without causing the selected facet to disappear when the last character is deleted.

  • [bug 1635505] Horizon now properly allows to use arrow keys inside of the input search, without triggering a new text search that refreshes the content of the table below.

Other Notes

  • Menu follows the search input position as the user adds more facets

10.0.1

Upgrade Notes

  • The developer enabled files have been moved from openstack_dashboard/enabled to openstack_dashboard/contrib/developer/enabled. To enable them, copy into openstack_dashboard/local/enabled and set DEBUG = True.

Résolutions de Bugs

  • There will no longer be any WARNING messages regarding the developer panels in logs.

10.0.0

Prelude

Les actions Angular devraient retourner une promise qui s’ajuste en fonction d’un objet structuré tel qu’il puisse indiquer le résultat de l’action.

JavaScript can now access the Keystone Token.

Many of Horizons XStatic packages were updated during this cycle.

Une page détaillée pour un type particulier de ressource (I.e. Images) peut maintenant utiliser une application Angular de niveau registre, pour enregistrer les vues et permettre aux développeurs de facilement créer ou ajouter des vues détaillées. Dans cette implementation, ces vues sont presentées sous forme d’onglets au sein de pages détaillées.

In an effort to standarize our HTML class naming conventions, we will be updating various class names to use dashes, instead of underscore or camelcasing, to match with Bootstrap’s convention.

Horizon no longer requires Nova (or Glance) to function; it will run as long as keystone is present (for instance, swift-only deployments).

The Images panel now may be configured to use either the legacy or Angular code.

To aid in continued maintenance of Horizon as a themable and customizable framework, the highly customized “default” styles are being dropped in favor of standard Bootstrap styles. The “default” theme will only house scss variable changes going forward.

Les composants Angular serviront à fournir de simples-à-configurés panneaux et tables, basés sur un registre d’informations sur les resources (i.e. Instances).

Modal sizes now inherit from Bootstrap’s theme variables.

We now automatically determine the static folder location for xstatic packages being used by Horizon.

New Features

  • Un service action-résultat fournit les méthodes adéquates pour la construction du résultat, et pour l’analyse d’un objet résolu

  • [blueprint admin-neutron-l3-agent] Add support for managing neutron L3 agent hosts. The admin screen for system information now provides links / views to see what routers reside on what hosts. In addition, the admin view of routers now also provides a list of where the router is hosted and the link to see what other routers are sharing the same host.

  • Horizon and Horizon Plugins can access the Keystone Token from JavaScript so that they can make CORS calls directly to other OpenStack Services. This can enable much more responsive UI.

  • Ajout d’un nouveau dictionnaire ANGULAR FEATURES pour le paramétrage. Ceci permet l’activation de nouvelles fonctionnalités AngularJS.

  • Added the Scheduler Hints tab to the new Launch Instance workflow to allow adding scheduler hints to an instance at launch. In addition to adding custom key-value pairs, the user can also choose from properties in the glance metadata definitions catalog that have the OS::Nova::Server resource type and scheduler_hints properties target.

  • Added settings support to the angular workflow service so each step in a workflow can specify a boolean setting that must pass in order for the step to be displayed.

  • [blueprint admin-views-filter-first] This blueprint provides a configurable setting to allow operators require admin users to provide a search criteria first before loading data into admin views.

  • [blueprint angular-table-directive] This blueprint provides a way for developers to programatically declare an Angular table vs writing HTML markup. It reduces the boilerplate HTML code. For a basic table, you need to pass in the data and the column configuration into the hz-dynamic-table directive.

  • [blueprint angular-template-overrides] This blueprint provides a way for deployers to use a theme to override HTML fragments used by Angular code in Horizon. For example, to override the launch instance help panel when the “material” theme is used, create openstack_dashboard/themes/material/static/templates/framework /widgets/help-panel/help-panel.html. All of the client side templates are now compiled into a single JavaScript file that is minified and is given as an additional file in the manifest.json file.

  • [blueprint cinder-consistency-groups] This feature adds 2 new tabs to the Project Volumes panel. The first tab will display Consistency Groups, and the second tab will display Consistency Group Snapshots. Consistency Groups (CG) contain existing volumes, and allow the user to perform actions on the volumes in one step. Actions include: create/update/delete CGs, snapshot all volumes in a CG, clone all volumes in a CG, and create a new CG and volumes from a CG snapshot. Policies associated with Consistency Groups exist in the Cinder policy file, and by default, all actions are disabled.

  • [blueprint configurable-boot-sources] Allows administrators to restrict which sources are available to boot from in the Launch Instance modal by adding 4 new settings to LAUNCH_INSTANCE_DEFAULTS (disable_image, disable_instance_snapshot, disable_volume, disable_volume_snapshot).

  • Create from a local file feature is added to both Angular and Django Create Image workflows. It works either in a “legacy” mode which proxies an image upload through Django, or in a new “direct” mode, which in turn implements [blueprint horizon-glance-large-image-upload]. To use the direct mode HORIZON_IMAGES_UPLOAD_MODE setting should be changed to “direct” value along with changing glance-api.conf cors.allowed_origin parameter to the URL from which Horizon is served.

  • Added ability to render angular row actions with additional details that explain the purpose of the action. These are rendered as tiles and are meant to depict the next steps a user might want to take for a given resource.

  • The port-details page has a new tab for managing Allowed Address Pairs. This tab and its features will only be available when this extension is active in Neutron. The Allowed Address Pairs tab will enable creating, deleting, and listing address pairs for the current port.

  • Support a parameter to specify subnet or fixed IP address when creating port.

  • A directive (hz-details) provides the ability to intelligently display a set of views (typically for a Details context).

  • A generic Details display parses the location to determine the resource type, and displays relevant details views for that type.

  • Un concept descripteur permet le passage adéquat d’informations qui peuvent globalement identifier un objet, pour usage dans les vues et actions communes.

  • Horizon now has a (non-navigational) route in Django so generic details pages are deep-linked.

  • Un modèle partagé de Django est maintenant disponible pour usage par toute page Angular.

  • Adds complete support for Glance v2 so that Horizon no longer depends on having a Glance v1 endpoint in the Keystone catalog. Also provides code compatibility between Glance v1 and v2.

  • Adds a new config value called IMAGES_ALLOW_LOCATION, which allows users to set locations when creating or updating images. Depending on the Glance version, the ability to set locations is controlled by policies and/or configuration values.

  • Nova and Glance are no longer required in order to run Horizon. As long as keystone is present, Horizon will run correctly.

  • the ANGULAR_FEATURES setting now allows for a key images_panel. If set to True, then the Angular Images panel will be used, while the Python version will be used if set to False.

  • Integration tests for Image features may also be toggled in openstack_dashboard/test/integration_tests/horizon.conf using the “panel_type” feature, either set to “legacy” or “angular” to match the enabled panel type.

  • Horizon support for network IP availability feature. Enable Horizon admin network dashboard to be able to display IP availability. Enables 2 columns in the admin network subnets table to display the allocated IPs in a given subnet and unallocated free IPs for each subnet in the network.

  • Neutron network type for Geneve tunneling protocol is now supported.

  • Neutron provider network types for Midonet are now supported. To enable them, specify these network types in supported_provider_types in the configuration file.

  • Neutron provider network configuration now becomes more flexible so that operators can configure various provider network parameters including new network type, segmenatiton ID ranges and so on based on neutron network back-ends they use.

  • Added new setting INTEGRATION_TESTS_SUPPORT, default value is False. This value is used when running manage.py compress command, so by default all static assets and html classes used by integration tests are removed from Horizon production build. Integration tests gate job sets this variable to True and recompresses static assets.

  • The hz-resource-table directive takes in a Heat resource name (e.g. “OS::Nova::Server”) and uses the Angular registry to provide actions, columns, and summary views.

  • The hz-resource-panel directive takes in a Heat resource name (e.g. “OS::Nova::Server”) and displays an appropriate header and allows content to be transcluded to build the panel page.

  • Ajouter une nouvelle configuration OVERVIEW_DAYS_RANGE. Elle définit l’intervalle par défaut de la date dans l’aperçu du panneau de compteurs - soit le jour courant moins N jours (si la valeur est l’entier N), soit du début du mois courant jusqu’au jour courant (si la valeur est fixée à None). Cette configuration est utilisée pour limiter la quantité de données établies par défaut lors de l’affichage de l’aperçu. La valeur par défaut est 1, laquelle est différente du comportement précédent, puisqu’elle causait d’importants décalages au cours de larges déploiements.

  • Modal sizes now inherit their value from theme variables. Two additional sizes are available now for use in Horizon, extra to the standard 3 sizes of Bootstrap Modals, modal-xs and modal-xl.

  • Added the TOKEN_DELETE_DISABLED setting, so that deployers can customise the revocation of a users token on log out.

Known Issues

  • If you set “images_panel” to False for the ANGULAR_FEATURES option (which is not the default) and configure Horizon to use Glance v2, Ramdisk ID and Kernel ID don’t show properly on the « Edit Image » screen.

Upgrade Notes

  • Quoique pas requis, il serait mieux de faire retourner des promises par vos actions avec la structure prévue.

  • The TEMPLATE_* settings have been replaced with a TEMPLATE dict. This will likely cause issues when porting settings to this version of Horizon. The TEMPLATE_DEBUG setting has been removed and is tied to the DEBUG setting now. A detailed explanation of this dict can be found at https://docs.djangoproject.com/en/1.10/ref/settings/#templates

  • The is_authenticated() and is_anonymous() functions in Django OpenStack Auth’s User class are properties when running under Django 1.10, and no longer take a margin parameter.

  • Horizon currently supports both Angular 1.3.x and Angular 1.4.x, but will remove 1.3 support in the future. See Migrating from 1.3 to 1.4

  • The breadcrumb navigation inside the details pages now applies across Horizon. A small change in the logic means that custom_breadcrumb items in the context no longer need to specify the panel name and link. See [blueprint navigation-improvements]

  • The final django TEMPLATE_LOADERS configuration will now be generated from TEMPLATE_LOADERS, CACHED_TEMPLATE_LOADERS and ADD_TEMPLATE_LOADERS settings. See the settings documentation for more information.

  • It is no longer necessary to include the version suffix into OPENSTACK_KEYSTONE_URL setting. Thanks to a recent update of django-openstack-auth library as of 2.3.0 release, Horizon will append the proper version suffix to the URL based on the value stored inside OPENSTACK_API_VERSIONS[“identity”] setting.

  • (Optionel) Comme base pour les pages Angular, bien vouloir utiliser le commun modèle Angular, pour minimiser la répétition des codes et s’assurer de l’utilisation de pareilles fonctionnalités.

  • The OPENSTACK_IMAGE_FORMATS variable must be added to the REST_API_REQUIRED_SETTINGS setting in local_settings.py

  • If the “default” theme is still required for legacy overrides to function, simply copy the styles in the “default” theme into a pre-existing theme or create a new custom theme.

  • The status_unknown table row class has been replaced with the default bootstrap warning class.

  • Many Javascript files have moved to new locations in the horizon/lib static folder. Previously the locations of some files were hard-coded but now the locations are determined automatically based on the xstatic package name.

Notes dépréciées

  • HORIZON_IMAGES_ALLOW_UPLOAD setting is deprecated and should be gradually replaced with HORIZON_IMAGES_UPLOAD_MODE setting.

  • Router rules is a horizon extension provided by Big Switch Networks. As part of the horizon-vendor-split work, we drop the extension from upstream horizon. It is now available as a separate plugin at https://github.com/bigswitch/horizon-bsn

  • LBaaS v1 dashboard is now deprecated and will be removed in Ocata release. LBaaS v1 feature was removed from neutron-lbaas in Ocata and this functionality in Horizon is only for backward compatibility so that operators can upgrade Horizon first. Note that the Dashboard support for LBaaS v2 is provided as a Horizon plugin via neutron-lbaas-dashboard project.

  • All instances of HTML class “d3_pie_chart_usage” to “pie-chart-usage” All instances of HTML class “d3_pie_chart_distribution” to “pie-chart-distribution”

  • The “default_ipv4_subnet_pool_label” and “default_ipv6_subnet_pool_label” options were deprecated in the Mitaka release and are no longer valid in the Newton release. Starting with Mitaka you can create one default subnet pool per address family through the Neutron API. These subnet pools will automatically show up in the subnet pool list using the name of the pool as label.

  • Inline Edit functionality for Horizon tables is now deprecated and will be removed in Horizon P (12.0) The functionality was removed from the following tables. Admin Volume Types table, Admin Metadata Definitions table, Identity Projects table and Identity Users table

  • Fullscreen Modals have been deprecated in favor of modal-xl. Currently, it is set to 95% of the viewable screen width.

Security Issues

  • Making Keystone Tokens available to JavaScript slightly increases the risk of a Token being captured. If you don’t need this functionality, it can be disabled by setting the following option in your local_settings: ENABLE_CLIENT_TOKEN = False

Résolutions de Bugs

  • Hardcoded admin role is replaced with RBAC policy check in panels. Now users access to the panels is defined by policies and not user roles. The change affected the Admin dashboard and its panels (Overview, Hypervisors, Instances and Metadata Definitions).

  • LP-1585682 is fixed which grants Horizon the ability to properly version Keystone webpath endpoints (URLs like http://<hostip>/identity instead of http://<hostip>:5000).

Other Notes

  • XStatic-Angular updated from 1.3.7.0 to 1.4.10.1

  • XStatic-Angular-FileUpload updated from 1.4.0.1 to 12.0.4.0

  • XStatic-Bootstrap-SCSS updated from 3.2.0.0 to 3.3.7.0

  • XStatic-Bootswatch updated from 3.3.5.3 to 3.3.6.0

  • XStatic-Font-Awesome updated from 4.3.0.0 to 4.5.0.0

  • XStatic-Jasmine updated from 2.1.2.0 to 2.4.1.1

  • XStatic-MDI updated from 1.1.70.1 to 1.4.57.0

  • XStatic-Rickshaw updated from 1.5.0.0 to 1.5.1.0

  • XStatic-Smart-Table updated from 1.4.5.3 to 1.4.13.1

  • Glance v2 doesn’t support the copy-from feature, so this feature is disabled in Horizon when using Glance v2.