Remove glance id whitespace in build-app

Change-Id: I11b8c3dc8adee2d42282ea6123461e199187344e
Create examples folder and move plan example into examples/plans

We have a folder named example_plans, but we might need to add examples for
language packs and may be for others. So let us have a common folder examples
and sub-folders under that.

Adjust doc to point to new location.

Change-Id: Ic977fb3ca40a8ad45ce76d3b4151115b366d7b69
Fixes-bug: #1301152
Updated Getting Started Guide

Added explanations of the steps and walked
through deploying an example app.

Change-Id: I0cec81246b5a15f9b803db8420465f4b53e46465
Update assembly when heat stack is complete

Poll heat stack and parse server url when stack is ready.
Update assembly status and url with this information.

Added new configuration options.

Change-Id: Id5b37c631c4670a3bbdc6bc08423d29c298641bd
Merge "Update assembly when heat stack is complete"
Merge "Updated Getting Started Guide"
Git push trigger workflow

Added trigger_workflow code to do the following:
  - Using trigger_id get the assemby and plan objects.
  - Call the build service for building the image

Added functional test for TriggerController.
Added unit test for testing the normal operation of trigger_workflow.

Note: Unit test for trigger_workflow failure case is not needed.
The only case where trigger_workflow will not call the _build_artifact()
method is when the plan file has no artifacts in it.
However, this scenario should be tested by assembly create unit tests.
The trigger_workflow will be called only after assembly create is successful.

Change-Id: Ie516306fc1355e2debca8b157c87dca3419956aa
Add configurable handler selection for Worker

Added to solum-worker the configuration value 'handler'
to select which one of the available modules in its
handlers directory to use as its endpoint. The result is
being able to configure exactly how images will be built.

At present we only have shell.py, which uses subprocess
to run the build-app script, but in the future there may
be other handlers to use perhaps Jenkins or another process.

Since worker already had shell.py, I have added default.py
mainly for contract enforcement, and so there is a default
to fall back upon should shell.py be unsuitable to a user.

Change-Id: Ic9a40cbef111ef3c28c6d629dd4209398d1d52ae
support multiple image formats and enable docker driver

this patch allows you to set the image format in config
file and then use either docker or qcow.

There are a few oustanding patches for novadocker driver
but I have it working from my fork which can be used from
https://github.com/rackerlabs/vagrant-solum-dev/tree/docker_driver

Change-Id: Ia8ad6519efa0e0c3a32a787a7ef78895110871f9
Add swift in clients.py

Add swift in clients so we will be able to PUT/GET plan file in Swift

Closes-Bug: #1301792
Change-Id: I134e4a25198f7fa6697cbf28cea7ddd8b38cd8d5
Add max byte size for plan in conf

Added the property max_plan_size in solum.conf which will used when:
* we GET an external plan: we need to interrupt the download if the size
exceeds max_plan_size,
* we store the plan in Swift

Closes-Bug: #1301799
Change-Id: I98e3d6477d2c0461c7042afafd4d8697ac52f8fa
Add urlfetch to download external http resources chunk by chunk

* Added urlfetch from Heat which will be useful to fetch a plan
hosted remotely.
* Urlfetch works with https scheme and also with the file scheme
for local file. We currently do not need file:// in Solum but I
wanted to keep the code very close to Heat in case we try to move
this in oslo.
* Urlfetch does not download the entire file at once but gets the
file chunks by chunks and interrupts the download once max_size
is reached. (e.g property max_plan_size for Solum external plan)
* Units tests have been greatly changed since Heat uses Mox.

Closes-Bug: #1301953
Change-Id: I614a61939b8dd1c4e7fc9a17863a9e4860905338
Add missing new line in test_clients imports

Change-Id: I033156ea8fe1aeaad921c52ba7c297015dbb07da
Merge "Add swift in clients.py"
Merge "Add max byte size for plan in conf"
Merge "Add urlfetch to download external http resources chunk by chunk"
Merge "Add configurable handler selection for Worker"
Add glance client to solum

Glance client will be used to store LanguagePacks into glance using
tags to filter them.

Fixes bug 1301427

Change-Id: I7adc75babb4770976aa1462d45b7e1d01c64adb4
Dissociate LanguagePack and Service objects

To implements bp/store-language-packs-in-glance LP first need to be
standalone objects and not be tied to service.

This patch removes the link between a LanguagePack and its service,
making things much simpler.

It's a first start toward having LP fully into glance

Fixes bug 1301426

Change-Id: Ia7920d288a99dfda8f22a8e987d2ac53197b7e2a
Use glance as a backend for Solum LanguagePack API (GET Method)

Replace the implementation of GET method of LanguagePack API.
A GET on LanguagePack will query glance with the id provided and
retrieve LP attributes from Glance image tags.

This patch also deactivate functionnal tests for LP. They will be
enabled again when the LP API has been fully moved to "Glance".

Fixes bug 1301440

Change-Id: Ied7942da32577eca883d29b06c60a8f0da18e0d5