Allow upload of Provider templates

Registered by Zane Bitter on 2013-05-02

From http://lists.openstack.org/pipermail/openstack-dev/2013-April/007989.html

* Modify the resource instantiation to search among multiple named
definitions (either Custom or Plugin) for a resource type, according to
the "Provider" name.
* Add an API for posting multiple named implementations of a resource type.

Blueprint information

Status:
Complete
Approver:
Zane Bitter
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Angus Salkeld
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
Angus Salkeld on 2013-06-24
Completed by
Angus Salkeld on 2013-08-14

Related branches

Sprints

Whiteboard

Allow the user to POST a provider template to:

    /v1/{tenant_id}/resources_types/{type_name}/providers

whose schema can then be accessed at:

    /v1/{tenant_id}/resources_types/{type_name}/providers/{provider}

Then modify the creation of custom resources to allow the template to be read from a named, existing provider as well as from a URL.

*NOTE*
I've been rethinking the wisdom of having Heat act as a store for templates... it makes version control difficult. So we may scrap the details of this proposal in favour of uploading providers along with the template at stack create/update time. See this mailing list post (starting about mid-way down) for details:
http://lists.openstack.org/pipermail/openstack-dev/2013-May/009551.html

Gerrit topic: https://review.openstack.org/#q,topic:bp/provider-upload,n,z

Addressed by: https://review.openstack.org/33008
    Initial template resources (aka provider resources)

Addressed by: https://review.openstack.org/31151
    Make template_format.parse usable by environments

Addressed by: https://review.openstack.org/30983
    Remove unused parameter.user_parameters()

Addressed by: https://review.openstack.org/30982
    Use the Environment from within the engine

Addressed by: https://review.openstack.org/30866
    Initial Environment class and test

Addressed by: https://review.openstack.org/31153
    Cleanup the doc strings in heat/rpc/client.py

Addressed by: https://review.openstack.org/31152
    API support for Environments

Gerrit topic: https://review.openstack.org/#q,topic:bp/environments,n,z

Gerrit topic: https://review.openstack.org/#q,topic:provider-templates,n,z

(?)

Work Items

Work items:
I have committed a "lite" version that uploads the templates at stack create time: DONE
the uploading via a separate rest API is: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.