Allow adding metadata when launching instance

Registered by Justin Pomeroy

Summary
=======
There is currently no way to add metadata to an instance during creation from horizon. This blueprint will add the ability to add key-value metadata to an instance from the Launch Instance panel.

Motivation
========
Users have the ability to add metadata on the nova boot CLI but this option is not exposed through horizon. This is especially a problem when an image supports configuration options that require certain metadata properties be set on the instance. In this case horizon cannot be used to launch the instance.

Description
=========
A new Metadata tab will be added to the angular Launch Instance workflow. It will be placed as the last tab in the workflow. This tab will use the angular metadata tree widget to allow users to add custom key-value pairs to the instance metadata. The metadata tree widget will also display values from the "OS:Nova:Instance" metadata definitions namespace.

UX
===
The new tab will match the UX of the other tabs in the Launch Instance workflow. The metadata definitions widget is the same one used for managing image metadata and will match that UX.

Testing
======
By default, no metadata is specified when launching an instance and the result should be the same as it is currently, essentially the --meta option is not specified at boot. If metadata is specified then the metadata should be displayed in the Metadata section on the instance details page. If the "OS:Nova:Instance" metadata definitions namespace exists then it should be loaded and displayed in the Available section of the metadata tree on the Launch Instance - Metadata tab.

Outside Dependencies
==================
The glance metadata definitions are already being queried in order to display them when choosing an image as the source. This will just add "OS:Nova:Instance" to the list of namespaces being queried.

Requirements Update Required
========================
None

Doc Impact
=========
None

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Medium
Drafter:
Justin Pomeroy
Direction:
Needs approval
Assignee:
Justin Pomeroy
Definition:
Drafting
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon mitaka-2
Started by
Justin Pomeroy
Completed by
Justin Pomeroy

Related branches

Sprints

Whiteboard

From Travis Tripp: Hi Justin. If you are adding this to the existing launch instance panel, you might want to do this using the update metadata widget. We could talk about how to directly incorporate this into the existing launch instance wizard.

[jpomero 2014-10-15] Hi Travis. Using the metadata widget is part of my plan for this, at least at this early point. I think that makes a lot of sense. I will let you know if / when I run into trouble when I get around to this.

Gerrit topic: https://review.openstack.org/#q,topic:bp/add-server-metadata,n,z

Addressed by: https://review.openstack.org/232234
    Add Metadata page to angular Launch Instance wizard

(?)

Work Items