Base Glance Metadata Definitions Admin UI

Registered by Travis Tripp

Summary
=======
Provide a base admin UI for viewing, importing, and associating the metadata definitions that can be used with various resource types such as flavors, images, and host aggregates.

Motivation
========
In Juno, Horizon added a new dynamic widget for updating metadata (key / value pairs) on flavors, images, and host aggregates (with more to come). This widget pulls the available key \ value pairs from the Glance Metadata Definitions Catalog. Adding this UI will make it easy for the Horizon and Glance Admins to modify what metadata definitions are available from the Glance Catalog, and therefore visible in the widgets for things like flavors, images, and host aggregates. It also can be used to set default values for properties.

Description
=========
In Juno, Glance provided a metadata definitions catalog[1][2][3] where users can register the available metadata definitions that can be used on different types of resources (images, artifacts, volumes, flavors, aggregates, etc). This key / value pairs (properties, specs, etc) and will soon include tags (simple word).

This specific blueprint is to bring in the Admin UI for the basic coarse grained actions on the metadata in the catalog. This includes creating (importing) a namespace, viewing and editing the overview details about it, deleting the namespace, and associating the namespace for use with specific resource types.

Additional blueprints will be registered for:
 - CRUD on individual properties and tags within the namespace

[1] Overview in Glance Docs: http://docs.openstack.org/developer/glance/metadefs-concepts.html
[2] Approved Glance Juno Spec: https://github.com/openstack/glance-specs/blob/master/specs/juno/metadata-schema-catalog.rst
[3] Glance PTL Juno Feature Overview: https://www.youtube.com/watch?v=3ptriiw1wK8&t=14m27s

Note: The Glance catalog provides the definition of the available metadata that can be used on different types of resources (images, artifacts, volumes, flavors, aggregates, etc). A definition includes the properties type, its key, it's description, and it's constraints. This catalog will not store the values for specific instance properties. Other Horizon widgets will be added to make use of the definitions:

 - https://blueprints.launchpad.net/horizon/+spec/tagging
 - https://blueprints.launchpad.net/horizon/+spec/glance-metadata-images
 - https://blueprints.launchpad.net/horizon/+spec/glaance-metadata-flavors
 - https://blueprints.launchpad.net/horizon/+spec/host-aggregate-update-metadata
 - https://blueprints.launchpad.net/horizon/+spec/ability-to-add-metadata-to-cinder-volumes-and-snapshots

UX
==
The pattern will follow the typical pattern in Horizon.
 - A table similar to the current Images page with an overview listing, deleting, and resource type association form.
 - There will be an import feature similar to the Images page.
 - A details page that will initially just give the ability to see the raw JSON data that is in the catalog (in the future, will add an ability to actually edit the json data)

Discussion of use cases and actors is encouraged where applicable.
 - Admin wants to ensure that the host aggregate properties and the image properties are the same for scheduling, so they create the properties they care about, import them, and make them visible to both the images and host aggregate metadata actions.
 - Admin wants to remove some properties they show for a specific driver, so they export the current definitions, modify, and import again.
 - Admin wants to annotate software information (like Postgres or MySQL version) properties onto images. So, they import in their own metadata definitions about software and make those visible to be used from the images "update metadata" widget.

Testing
======
Devstack includes loading base metadata definitions. These can be used for verifying behavior. You can test metadefs imports by using the details panel to export metadef file content, modify, and then import using the import feature. When associating metadata definitions to new resource types (e.g. images), you can then click over to Admin/Images and use the Update Metadata action to validate that the available metadata definitions has changed.

Outside Dependencies
=================
The Glance API is fully implemented in Juno and in the released Glance Client which Horizon already has a requirement on.
 - http://docs.openstack.org/developer/glance/glancemetadefcatalogapi.html

Requirements Update Required:
The Glance API is fully implemented in Juno and in the released Glance Client which Horizon already has a requirement on.
 - http://docs.openstack.org/developer/glance/glancemetadefcatalogapi.html

Doc Impact
=========
 Perhaps some discussion of how the admin can customize the visible key /value pairs for images, flavors, host aggregates (others to come), by using this UI.

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Medium
Drafter:
Travis Tripp
Direction:
Approved
Assignee:
Travis Tripp
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Travis Tripp
Completed by
Thierry Carrez

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.