add assertion to heat-keystone-setup script

Defensive check for various critical steps in the script

Change-Id: I9df01011940d80532787c3acaf0cc8ec10e97cc8
closes-bug: #1260561
Added session_persistence property to VIP

Added new property session_persistance to the OS::Neutron::LoadBalancer
resource attribute VIP. Now user can configure session stickness feature
in Neutron LBaaS.

Change-Id: I9afd1a8c222110899a90a940e7a549278c4467b7
Closes-Bug: #1259078
Add test coverage for SignalResponder delete

Add coverage for the case where the user has been deleted out of band
and keystoneclient raises a NotFound exception.  Brings coverage of
SignalResponder up to 100%

Change-Id: I29ea94b052f807072d98e05768e6a1973df5d40d
Filter resource types by support status

Now heat resources haven't support status. We want service providers
to have a way to assign support status metadata to resources. And
then user should be able to filter resource types by support status
when quering the api for resource types.

Add processing of query parameter support_status to list_resource_types
function in heat/api to filter resources by. List_resource_types
returns a list of resources with a certain status or a list of all
resource types by default.

Add filtering on the server.

Add changes to tests:
- test_rpc_client.py
- test_api_openstack_v1.py
- test_engine_service.py

Implements bp filter-resources-by-support

Change-Id: I719c0d690886153adb698aea4695ddd526e7a4af
Fix regression in Rackspace Cloud Servers tests

Commit 63b7f14403 introduced a regression in the Rackspace Cloud Server
tests.  Instance.volumes() now relies on its VOLUME property's default.
Since CloudServer inherits volumes() from Instance but defines its own
VOLUMES property, its VOLUMES property should also have a default.

Closes-Bug: #1265034
Change-Id: Ib17337c5d06aedf65da5497ad48858d649ba4e96
Update log message for scale out/in

When create two stacks with same template with autoscaling group,
then when scale out/in, the log message would be as
(HadoopSlaveScaleUpPolicy is my scale up alarm and HadoopSGroup is
my autoscaling group):

HadoopSlaveScaleUpPolicy Alarm, adjusting Group HadoopSGroup by 1

From above log message, I do not know which stack is being scaled up.

This patch add scale group id to the log message so that we can know
which group is being scale out/in.

Change-Id: Ie4862e9738c652b813b3dae01f9aeb3557e79b9a
Closes-Bug: #1265315
Deleted TEMPDIR on exit

To avoid undeleted tmp.XXXXXXXXX directories left in /tmp, and output
unified style patch for later apply.

Change-Id: I6069c3cf36e345e5101ae3cf884e647c1d42030e
log warning, when $SERVICE_HOST is localhost

Warn users, if heat-keystone-setup can only use localhost as $SERVICE_HOST.
And remove an extra whitespace.

Change-Id: I1b2a1b93212b6ab0ca092bb6c834255ee75176ca
Use oslo db.migration script

Turn Heat's migration script into a simple wrapper around olso's.
The api is a bit different so for now keep ours inplace.
All that our script does is find the path to the migration_repo
and call the oslo code. No point having two implementations in the
same codebase.

Change-Id: I0aa3e10890f924d77268f4118dae53b446e193eb
Fix get_column_num problem in heat-keystone-setup

get_column_num function searches the second line of command output,
to get the field number for a specific field.

But output of 'keystone user-list' may have an extra line: 'WARNING:
Bypassing authentication using a token & endpoint ...'

This messes up the functionality of get_column_num function

Closes-bug: #1260556
Change-Id: I8c6e7f939466154c5e31e6f019e20fb855e15878
Fixes typo of explanation on exception.py

Something like:
unvavailable -> unavailable

Change-Id: I2f94532862e46d2a1371b819fa6adf2eb9cb3992
Closes-Bug: #1265687
I18N support for InvalidContentType exception

The error message of InvalidContentType exception should support i18n as
other exceptions.

Change-Id: I7a4c15eb69fbc1fd6e2caa9c0503685ec8b53941
Closes-Bug: #1265694
Test db migration 31

Add some data into the db and make sure the alter table works.

Change-Id: I13df69198e3dcdc6f4ab562041bfadb890782328
Refactor Instance#_check_active

Currently, Instance#_check_active both checks whether the server is
active and attaches the volume. This commit separates that logic.

blueprint stack-check
Change-Id: I7fe805efc089535667e8d3840d79ade07430040c
Improve tools/uninstall-heat

Inform users that the script doesn't remove related role/user from keystone.

Change-Id: Ia0a7cb37ae568e37c86ff9047361c42186c21ab4
Make LoadBalancer nested stack template configurable

Reviving work originally posted by Angus Salkeld under
https://review.openstack.org/#/c/21405/

This is to enable the various distros to easily override the
hard-coded default nested template (which currently only supports
Fedora 17) with a template approporate to their distro, and
enables deployers to specify their own template (although the
latter use-case will probably be catered for via a provider
template implementation long-term).

Change-Id: I0a4eccb23b2eebbf31b7aabf0fe85ab31f0ca971
Partial-Bug: #1234375
Co-Authored-By: Angus Salkeld <angus@salkeld.id.au>
Add documentation for multi-engine

Describe how to set up Heat for a multi-engine deployment in the
document on scaling Heat.

blueprint multi-engine-docs
Change-Id: I5db28b3bc8f5f5dda2d86d052223159adef5f5f0
Replace try...except...pass block with assertRaises

To make the test logic looks tidy and clean.

Change-Id: Id278524a8d4b8bf953f6c3d250e47be04c5edb55
Add policy enforcement to ReST API

Currently the native API lacks support for enforcing policy via
policy.json, as is possible for the aws-compatible APIs.

So modify and rename the tenant_local decorator to also enforce
policy, and add tests to ensure the API controllers are all
using the decorator on their actions

Change-Id: Id80d576d5ff5e546da42dbf08ebd653005af14ff
blueprint: request-scoping-policy
Introduce a way to trace a resource's implementation

We need a way to know whether a resource is really the
same during update. This is driven by TemplateResource
but not totally specific to it.

The problem is:
if you update a template with no changes (except for environment
or files changes) we need to know which resources to update.

This patch adds a "implementation_signature()" method that gives
us a mechanism to keep track of implementation changes like:
- a change in an environment mapping a resource to a new/different implementation
- a change in the content of a TemplateResource

And can distinguish between schema changes (requiring replacement) and
incremental changes (that can be updated in place).

Change-Id: I780074a827e3f51dede47a81f15e29dbe4d08804
Closes-bug: #1254966