Implement a Heat-native resource group

This resource allows for creating groups of identically
configured resources via nested stacks. It provides
aggregated as well as indexed access to the nested
resource attributes.

Implements: blueprint native-resource-group
Change-Id: I089e6d2f795d30ebe410df151ebc68639ea7102b
Add a guide to setup standalone mode

Change-Id: If3555ac3b0a95758f3e2ba9c6c716784b61897c8
Fix some docs errors/warnings

Change-Id: I1629f4e335d270aee87d4afc223539c6453dbf88
Remove Component class

Discussion has moved on from implementing components as
top-level template elements, so this can be deleted now.

Change-Id: I8f1b78b8def73da7fb31b7725795f314f962e8b2
Make heat depend on python-heatclient

This will be required soon for one or more of the
following reasons:
* Multi-region invoking stacks on other heat endpoints
* A variant of nested stack which goes through API instead of
  internally
* Orchestrating new heat-based resources (autoscaling, software config)
* Possibly sharing some template parsing and validation between
  client and server by moving this code to client

Change-Id: Ia3e55d1b3bb19e713e4c1ecc341805f3a208844e
Doc usage enhancement

Enable doctest, correct depenencies section, adjust help and build
section.

Change-Id: I6c2f89d64926ee8e32b86299356700446903888b
Fixes bullet list without blank line issue

Change-Id: I56a7b8c33f0a3f03004251897fe6a7177afd7e2d
Fix the middleware MIME type

This is still a hangover from some code coping from glance.

Closes-bug: #1252887
Change-Id: I7e2ebe0a51fc88dff5fb17a5251bb711216f8139
Fix i18N compliance with non-existant keypair

when test stack-create in Japanese language environment,
execute "heat stack-create" with non-existant keypair
"heat_key", UnicodeDecodeError will occur because
exception message has not been decoded correctly for
the following process:
(_("%(message)s") % ('message': ...)).

This patch uses safe_decode function in strutils module
to resolve the error.

Change-Id: I57cddae1b73a95cb9298daf51e49d5d7729467d9
Closes-Bug: #1249224
Added support for Allow-Address-Pairs feature

Added support for feature called Allow-Address-Pairs introduced in
Ie73b3886c5be8e1fc4ade86a0cfb854267f345ac

Change-Id: I29f3555e55df6ad6ba41e7ec503cd05ad2a162df
Implements: blueprint allowed-address-pairs
Add a missing mock to rackspace cloud server test

A few tests were missing a mock call, which led the tests into an
infinite loop

Change-Id: I66ba612ec2d7eec561f6a0de97e7d3811fbd1f60
Closes-Bug: #1252333
Add exact filter support to SQL API list stacks

Uses a dict of KEY:VALUE to compare values of VALUE against database
attribute KEY and return matching stacks.  If VALUE is a list, tuple,
set, or frozenset, this will evaluate to an IN clause instead.

blueprint: filter-stacks
Change-Id: If68edd9eaad3fe2ec4d11831d9eda9798a490e89
FaultWrapper error mapping supports parent classes

Now the FaultWrapper middleware maps exceptions to webob ones using
a recursive method: if the exception itself is not in the error_map
dictionary, the method searches the first parent exception that has a
match in the same dictionary.
Without this change "any exception that subclasses an exception mapped
in FaultWrapper.error_map will raise an http 500 error instead of the
mapped http error. FaultWrapper should also map against all parent
types of an exception."
Two unit test were added: one to reproduce the bug and another to test
the fix when remote exceptions are handled.

Change-Id: I387e0acf35a4d6361494117218d5129f00d77eb7
Closes-Bug: #1232885
Add filter support to stack API

Accepts multiple request params ATTR=VALUE to filter the listed
stacks.  Stacks will be matched against all whitelisted filters
passed in the request.  Whitelisted filters for stacks are NAME
and STATUS.

If the same ATTR is passed multiple times, stacks matching ANY of the
values will be returned.

blueprint: filter-stacks
Change-Id: Ic9421a827e99793448c23a841006fb8c03819030
Define deletion policy constants

Defining resource deletion policies 'Delete', 'Retain',
'Snapshot' as constants because these values are used more
than once and also in multiple modules.

Change-Id: I53596f17d49ce7512b70ba9652d8dea290dbed83
Merge "Remove Component class"
Merge "Make heat depend on python-heatclient"
Merge "Doc usage enhancement"
Merge "Add a missing mock to rackspace cloud server test"
Adds ability to configure various clients used by the Heat

This commit adds config sections [clients_nova], [clients_swift],
[clients_neutron], [clients_cinder], [clients_ceilometer] and
[clients_keystone]. These sections contain additional configuration
options for corresponding OpenStack clients.
Currently those are only SSL-related setting ca_file, cert_file,
key_file and insecure. Note, than not every client library is
currently capable of utilizing all of the SSL settings.

There is also a plain [clients] section that holds shared client
options. Each option searched first at specific group (clients_xxx)
and if it not found there then the value from [clients] group
are taken (or default values if there is no such setting in this
group). This allows defining shared configuration that would be
used by most (or all) clients without repeating the same settings
for each and every client separately

Closes-Bug: #1213122
Implements: blueprint clients-ssl-options

Change-Id: Id9ccbffce0d5c266202fdb1cf24a9ffb63e507e6